Module: Moonclerk::Util
- Defined in:
- lib/moonclerk/util.rb
Class Method Summary collapse
- .convert_to_moonclerk_object(resp, class_name = nil) ⇒ Object
- .normalize_id(id) ⇒ Object
- .object_classes ⇒ Object
- .symbolize_names(object) ⇒ Object
Class Method Details
.convert_to_moonclerk_object(resp, class_name = nil) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/moonclerk/util.rb', line 11 def self.convert_to_moonclerk_object(resp, class_name = nil) case resp when Array resp.map { |i| convert_to_moonclerk_object(i, class_name) } when Hash # Try converting to a known object class. If none available, fall back to generic MoonclerkObject object_classes.fetch(class_name, MoonclerkObject).construct_from(resp) else resp end end |
.normalize_id(id) ⇒ Object
23 24 25 26 27 28 29 30 31 |
# File 'lib/moonclerk/util.rb', line 23 def self.normalize_id(id) if id.kind_of?(Hash) # overloaded id params_hash = id.dup id = params_hash.delete(:id) else params_hash = {} end [id, params_hash] end |
.object_classes ⇒ Object
3 4 5 6 7 8 9 |
# File 'lib/moonclerk/util.rb', line 3 def self.object_classes @object_classes ||= { 'customer' => Customer, 'form' => Form, 'payment' => Payment } end |
.symbolize_names(object) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/moonclerk/util.rb', line 33 def self.symbolize_names(object) case object when Hash new_hash = {} object.each do |key, value| key = (key.to_sym rescue key) || key new_hash[key] = symbolize_names(value) end new_hash when Array object.map { |value| symbolize_names(value) } else object end end |