Module: Framed::Utils
Instance Method Summary collapse
- #flattened_hash(h, namespace = '', init = {}) ⇒ Object
- #serialize_date(dt) ⇒ Object
-
#try(o, *a, &b) ⇒ Object
Adapted from Rails in case it isn’t available.
- #try!(o, *a, &b) ⇒ Object
- #uuid ⇒ Object
Instance Method Details
#flattened_hash(h, namespace = '', init = {}) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/framed/utils.rb', line 42 def flattened_hash(h, namespace = '', init = {}) h.reduce(init) do |memo, (key, value)| value = value.to_h if value.respond_to?(:to_h) if value.instance_of?(Hash) memo.merge!(flattened_hash(value, "#{namespace}#{key}_", memo)) else memo["#{namespace}#{key}"] = value end memo end end |
#serialize_date(dt) ⇒ Object
38 39 40 |
# File 'lib/framed/utils.rb', line 38 def serialize_date(dt) dt.utc.iso8601 end |
#try(o, *a, &b) ⇒ Object
Adapted from Rails in case it isn’t available.
22 23 24 |
# File 'lib/framed/utils.rb', line 22 def try(o, *a, &b) try!(o, *a, &b) if a.empty? || o.respond_to?(a.first) end |
#try!(o, *a, &b) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/framed/utils.rb', line 26 def try!(o, *a, &b) if a.empty? && block_given? if b.arity.zero? o.instance_eval(&b) else yield o end else o.public_send(*a, &b) end end |
#uuid ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/framed/utils.rb', line 13 def uuid begin UUID.new.generate rescue NameError SecureRandom.uuid end end |