Class: I18nliner::Extractors::TranslateCall
- Inherits:
-
Object
- Object
- I18nliner::Extractors::TranslateCall
- Includes:
- CallHelpers
- Defined in:
- lib/i18nliner/extractors/translate_call.rb
Constant Summary
Constants included from CallHelpers
CallHelpers::ALLOWED_PLURALIZATION_KEYS, CallHelpers::REQUIRED_PLURALIZATION_KEYS
Instance Attribute Summary collapse
-
#default ⇒ Object
readonly
Returns the value of attribute default.
-
#key ⇒ Object
readonly
Returns the value of attribute key.
Instance Method Summary collapse
-
#initialize(scope, line, method, args, meta = {}) ⇒ TranslateCall
constructor
A new instance of TranslateCall.
- #normalize ⇒ Object
- #translations ⇒ Object
- #validate ⇒ Object
- #validate_default ⇒ Object
- #validate_key ⇒ Object
Methods included from CallHelpers
#infer_arguments, #infer_key, #infer_pluralization_hash, #key_provided?, #keyify, #keyify_underscored, #keyify_underscored_crc32, #normalize_default, #normalize_key, #normalize_whitespace, #pluralization_hash?
Constructor Details
#initialize(scope, line, method, args, meta = {}) ⇒ TranslateCall
Returns a new instance of TranslateCall.
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/i18nliner/extractors/translate_call.rb', line 13 def initialize(scope, line, method, args, = {}) @scope = scope @line = line @method = method @meta = normalize_arguments(args) validate normalize end |
Instance Attribute Details
#default ⇒ Object (readonly)
Returns the value of attribute default.
11 12 13 |
# File 'lib/i18nliner/extractors/translate_call.rb', line 11 def default @default end |
#key ⇒ Object (readonly)
Returns the value of attribute key.
11 12 13 |
# File 'lib/i18nliner/extractors/translate_call.rb', line 11 def key @key end |
Instance Method Details
#normalize ⇒ Object
31 32 33 34 |
# File 'lib/i18nliner/extractors/translate_call.rb', line 31 def normalize @key = normalize_key(@key, @scope, @options[:i18nliner_inferred_key], @options[:scope]) @default = normalize_default(@default, @options || {}, {:remove_whitespace => @scope.remove_whitespace?}) end |
#translations ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/i18nliner/extractors/translate_call.rb', line 36 def translations return [] unless default keys = Array(key) keys.inject([]) do |result, key| if default.is_a?(String) result << [key, default] else result.concat default.map { |dk, dv| ["#{key}.#{dk}", dv] } end end end |
#validate ⇒ Object
25 26 27 28 29 |
# File 'lib/i18nliner/extractors/translate_call.rb', line 25 def validate validate_key validate_default end |
#validate_default ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/i18nliner/extractors/translate_call.rb', line 51 def validate_default return unless @default.is_a?(Hash) if (keys = @default.keys - ALLOWED_PLURALIZATION_KEYS).size > 0 raise InvalidPluralizationKeyError.new(@line, keys) elsif REQUIRED_PLURALIZATION_KEYS & (keys = @default.keys) != REQUIRED_PLURALIZATION_KEYS raise MissingPluralizationKeyError.new(@line, keys) else @default.values.each do |value| raise InvalidPluralizationDefaultError.new(@line, value) unless value.is_a?(String) end end unless I18nliner.infer_interpolation_values if @default.is_a?(String) validate_interpolation_values(@key, @default) else @default.each_pair do |sub_key, default| validate_interpolation_values("#{@key}.#{sub_key}", default) end end end end |
#validate_key ⇒ Object
48 49 |
# File 'lib/i18nliner/extractors/translate_call.rb', line 48 def validate_key end |