Class: Sparrow::Strategies::KeyTransformation::CamelizeKey
- Inherits:
-
Object
- Object
- Sparrow::Strategies::KeyTransformation::CamelizeKey
- Defined in:
- lib/sparrow/strategies/key_transformation/camelize_key.rb
Overview
Strategy class for converting JSON to a camelized format. Meaning snake_case => snakeCase
Instance Attribute Summary collapse
-
#camelize_ignore_uppercase_keys ⇒ Boolean
Defines whether complete uppercased keys will be transformed.
-
#strategy ⇒ Symbol
The camelizing strategy.
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ CamelizeKey
constructor
Initialize a new CamelizeKey strategy.
-
#transform_key(key) ⇒ String
Transform the given key to camelCase based on the configuration options set on initialization.
Constructor Details
#initialize(options = {}) ⇒ CamelizeKey
Initialize a new CamelizeKey strategy
32 33 34 35 36 |
# File 'lib/sparrow/strategies/key_transformation/camelize_key.rb', line 32 def initialize( = {}) self.strategy = .fetch(:strategy, :lower) self.camelize_ignore_uppercase_keys = .fetch(:camelize_ignore_uppercase_keys, true) end |
Instance Attribute Details
#camelize_ignore_uppercase_keys ⇒ Boolean
Returns Defines whether complete uppercased keys will be transformed.
17 18 19 |
# File 'lib/sparrow/strategies/key_transformation/camelize_key.rb', line 17 def camelize_ignore_uppercase_keys @camelize_ignore_uppercase_keys end |
#strategy ⇒ Symbol
Returns the camelizing strategy.
11 12 13 |
# File 'lib/sparrow/strategies/key_transformation/camelize_key.rb', line 11 def strategy @strategy end |
Instance Method Details
#transform_key(key) ⇒ String
Transform the given key to camelCase based on the configuration options set on initialization.
44 45 46 47 48 49 50 51 |
# File 'lib/sparrow/strategies/key_transformation/camelize_key.rb', line 44 def transform_key(key) key = key.to_s if camelize_ignore_uppercase_keys && key.upcase == key key else key.camelize(strategy) end end |