Module: LetMeSendEmail::Models
- Defined in:
- lib/letmesendemail/models.rb
Overview
Plain-data wrappers for API responses.
Defined Under Namespace
Classes: Model
Class Method Summary collapse
-
.unwrap(value) ⇒ Object
Recursively converts models into plain mutable Ruby data.
-
.wrap(value) ⇒ Object
Recursively wraps hashes returned by the API.
Class Method Details
.unwrap(value) ⇒ Object
Recursively converts models into plain mutable Ruby data.
90 91 92 93 94 95 96 97 |
# File 'lib/letmesendemail/models.rb', line 90 def unwrap(value) return value.dup if value.is_a?(String) return value.to_h if value.is_a?(Model) return value.to_h { |key, item| [key.dup, unwrap(item)] } if value.is_a?(Hash) return value.map { |item| unwrap(item) } if value.is_a?(Array) value end |
.wrap(value) ⇒ Object
Recursively wraps hashes returned by the API.
79 80 81 82 83 84 85 |
# File 'lib/letmesendemail/models.rb', line 79 def wrap(value) return value.dup.freeze if value.is_a?(String) return Model.new(value) if value.is_a?(Hash) return value.map { |item| wrap(item) }.freeze if value.is_a?(Array) value end |