8000 [VarDumper] adjust caster for NumberFormatter · symfony/symfony@f87589b · GitHub
[go: up one dir, main page]

Skip to content

Commit f87589b

Browse files
committed
[VarDumper] adjust caster for NumberFormatter
- add dump output for getAttribute - add dump output for getTextAttribute - dump output for getSymbol
1 parent 33a3971 commit f87589b

File tree

2 files changed

+111
-0
lines changed

2 files changed

+111
-0
lines changed

src/Symfony/Component/VarDumper/Caster/IntlCaster.php

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,66 @@ public static function castNumberFormatter(\NumberFormatter $c, array $a, Stub $
4040
$a += array(
4141
Caster::PREFIX_VIRTUAL.'locale' => $c->getLocale(),
4242
Caster::PREFIX_VIRTUAL.'pattern' => $c->getPattern(),
43+
Caster::PREFIX_VIRTUAL.'attributes' => new EnumStub(
44+
array(
45+
'PARSE_INT_ONLY' => $c->getSymbol(\NumberFormatter::PARSE_INT_ONLY),
46+
'GROUPING_USED' => $c->getSymbol(\NumberFormatter::GROUPING_USED),
47+
'DECIMAL_ALWAYS_SHOWN' => $c->getSymbol(\NumberFormatter::DECIMAL_ALWAYS_SHOWN),
48+
'MAX_INTEGER_DIGITS' => $c->getSymbol(\NumberFormatter::MAX_INTEGER_DIGITS),
49+
'MIN_INTEGER_DIGITS' => $c->getSymbol(\NumberFormatter::MIN_INTEGER_DIGITS),
50+
'INTEGER_DIGITS' => $c->getSymbol(\NumberFormatter::INTEGER_DIGITS),
51+
'MAX_FRACTION_DIGITS' => $c->getSymbol(\NumberFormatter::MAX_FRACTION_DIGITS),
52+
'MIN_FRACTION_DIGITS' => $c->getSymbol(\NumberFormatter::MIN_FRACTION_DIGITS),
53+
'FRACTION_DIGITS' => $c->getSymbol(\NumberFormatter::FRACTION_DIGITS),
54+
'MULTIPLIER' => $c->getSymbol(\NumberFormatter::MULTIPLIER),
55+
'GROUPING_SIZE' => $c->getSymbol(\NumberFormatter::GROUPING_SIZE),
56+
'ROUNDING_MODE' => $c->getSymbol(\NumberFormatter::ROUNDING_MODE),
57+
'ROUNDING_INCREMENT' => $c->getSymbol(\NumberFormatter::ROUNDING_INCREMENT),
58+
'FORMAT_WIDTH' => $c->getSymbol(\NumberFormatter::FORMAT_WIDTH),
59+
'PADDING_POSITION' => $c->getSymbol(\NumberFormatter::PADDING_POSITION),
60+
'SECONDARY_GROUPING_SIZE' => $c->getSymbol(\NumberFormatter::SECONDARY_GROUPING_SIZE),
61+
'SIGNIFICANT_DIGITS_USED' => $c->getSymbol(\NumberFormatter::SIGNIFICANT_DIGITS_USED),
62+
'MIN_SIGNIFICANT_DIGITS' => $c->getSymbol(\NumberFormatter::MIN_SIGNIFICANT_DIGITS),
63+
'MAX_SIGNIFICANT_DIGITS' => $c->getSymbol(\NumberFormatter::MAX_SIGNIFICANT_DIGITS),
64+
'LENIENT_PARSE' => $c->getSymbol(\NumberFormatter::LENIENT_PARSE),
65+
)
66+
),
67+
Caster::PREFIX_VIRTUAL.'text_attributes' => new EnumStub(
68+
array(
69+
'POSITIVE_PREFIX' => $c->getTextAttribute(\NumberFormatter::POSITIVE_PREFIX),
70+
'POSITIVE_SUFFIX' => $c->getTextAttribute(\NumberFormatter::POSITIVE_SUFFIX),
71+
'NEGATIVE_PREFIX' => $c->getTextAttribute(\NumberFormatter::NEGATIVE_PREFIX),
72+
'NEGATIVE_SUFFIX' => $c->getTextAttribute(\NumberFormatter::NEGATIVE_SUFFIX),
73+
'PADDING_CHARACTER' => $c->getTextAttribute(\NumberFormatter::PADDING_CHARACTER),
74+
'CURRENCY_CODE' => $c->getTextAttribute(\NumberFormatter::CURRENCY_CODE),
75+
'DEFAULT_RULESET' => $c->getTextAttribute(\NumberFormatter::DEFAULT_RULESET),
76+
'PUBLIC_RULESETS' => $c->getTextAttribute(\NumberFormatter::PUBLIC_RULESETS),
77+
)
78+
),
79+
Caster::PREFIX_VIRTUAL.'symbols' => new EnumStub(
80+
array(
81+
'DECIMAL_SEPARATOR_SYMBOL' => $c->getSymbol(\NumberFormatter::DECIMAL_SEPARATOR_SYMBOL),
82+
'GROUPING_SEPARATOR_SYMBOL' => $c->getSymbol(\NumberFormatter::GROUPING_SEPARATOR_SYMBOL),
83+
'PATTERN_SEPARATOR_SYMBOL' => $c->getSymbol(\NumberFormatter::PATTERN_SEPARATOR_SYMBOL),
84+
'PERCENT_SYMBOL' => $c->getSymbol(\NumberFormatter::PERCENT_SYMBOL),
85+
'ZERO_DIGIT_SYMBOL' => $c->getSymbol(\NumberFormatter::ZERO_DIGIT_SYMBOL),
86+
'DIGIT_SYMBOL' => $c->getSymbol(\NumberFormatter::DIGIT_SYMBOL),
87+
'MINUS_SIGN_SYMBOL' => $c->getSymbol(\NumberFormatter::MINUS_SIGN_SYMBOL),
88+
'PLUS_SIGN_SYMBOL' => $c->getSymbol(\NumberFormatter::PLUS_SIGN_SYMBOL),
89+
'CURRENCY_SYMBOL' => $c->getSymbol(\NumberFormatter::CURRENCY_SYMBOL),
90+
'INTL_CURRENCY_SYMBOL' => $c->getSymbol(\NumberFormatter::INTL_CURRENCY_SYMBOL),
91+
'MONETARY_SEPARATOR_SYMBOL' => $c->getSymbol(\NumberFormatter::MONETARY_SEPARATOR_SYMBOL),
92+
'EXPONENTIAL_SYMBOL' => $c->getSymbol(\NumberFormatter::EXPONENTIAL_SYMBOL),
93+
'PERMILL_SYMBOL' => $c->getSymbol(\NumberFormatter::PERMILL_SYMBOL),
94+
'PAD_ESCAPE_SYMBOL' => $c->getSymbol(\NumberFormatter::PAD_ESCAPE_SYMBOL),
95+
'INFINITY_SYMBOL' => $c->getSymbol(\NumberFormatter::INFINITY_SYMBOL),
96+
'NAN_SYMBOL' => $c->getSymbol(\NumberFormatter::NAN_SYMBOL),
97+
'SIGNIFICANT_DIGIT_SYMBOL' => $c->getSymbol(\NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL),
98+
'MONETARY_GROUPING_SEPARATOR_SYMBOL' => $c->getSymbol(\NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL),
99+
)
100+
),
43101
);
102+
44103
if ($errorCode = $c->getErrorCode()) {
45104
$a += array(
46105
Caster::PREFIX_VIRTUAL.'error_code' => $errorCode,

src/Symfony/Component/VarDumper/Tests/Caster/IntlCasterTest.php

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,58 @@ public function testCastNumberFormatter()
4141
NumberFormatter {
4242
locale: "en"
4343
pattern: "#,##0.###"
44+
attributes: {
45+
PARSE_INT_ONLY: "."
46+
GROUPING_USED: ","
47+
DECIMAL_ALWAYS_SHOWN: ";"
48+
MAX_INTEGER_DIGITS: "%"
49+
MIN_INTEGER_DIGITS: "0"
50+
INTEGER_DIGITS: "#"
51+
MAX_FRACTION_DIGITS: "-"
52+
MIN_FRACTION_DIGITS: "+"
53+
FRACTION_DIGITS: "¤"
54+
MULTIPLIER: "¤¤"
55+
GROUPING_SIZE: "."
56+
ROUNDING_MODE: "E"
57+
ROUNDING_INCREMENT: "‰"
58+
FORMAT_WIDTH: "*"
59+
PADDING_POSITION: "∞"
60+
SECONDARY_GROUPING_SIZE: "NaN"
61+
SIGNIFICANT_DIGITS_USED: "@"
62+
MIN_SIGNIFICANT_DIGITS: ","
63+
MAX_SIGNIFICANT_DIGITS: "1"
64+
LENIENT_PARSE: "2"
65+
}
66+
text_attributes: {
67+
POSITIVE_PREFIX: ""
68+
POSITIVE_SUFFIX: ""
69+
NEGATIVE_PREFIX: "-"
70+
NEGATIVE_SUFFIX: ""
71+
PADDING_CHARACTER: " "
72+
CURRENCY_CODE: ""
73+
DEFAULT_RULESET: false
74+
PUBLIC_RULESETS: false
75+
}
76+
symbols: {
77+
DECIMAL_SEPARATOR_SYMBOL: "."
78+
GROUPING_SEPARATOR_SYMBOL: ","
79+
PATTERN_SEPARATOR_SYMBOL: ";"
80+
PERCENT_SYMBOL: "%"
81+
ZERO_DIGIT_SYMBOL: "0"
82+
DIGIT_SYMBOL: "#"
83+
MINUS_SIGN_SYMBOL: "-"
84+
PLUS_SIGN_SYMBOL: "+"
85+
CURRENCY_SYMBOL: "¤"
86+
INTL_CURRENCY_SYMBOL: "¤¤"
87+
MONETARY_SEPARATOR_SYMBOL: "."
88+
EXPONENTIAL_SYMBOL: "E"
89+
PERMILL_SYMBOL: "‰"
90+
PAD_ESCAPE_SYMBOL: "*"
91+
INFINITY_SYMBOL: "∞"
92+
NAN_SYMBOL: "NaN"
93+
SIGNIFICANT_DIGIT_SYMBOL: "@"
94+
MONETARY_GROUPING_SEPARATOR_SYMBOL: ","
95+
}
4496
}
4597
EOTXT;
4698
$this->assertDumpEquals($expected, $var);

0 commit comments

Comments
 (0)
0