data_steroid 0.5.4 → 0.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 59842d190176ed422fb4baa089f77b1dbb2ba9cf
4
- data.tar.gz: 02c1e18b97161ead5132dd70eedeff68c497f6f2
3
+ metadata.gz: d21c1b531a84b0697685ee26a421b7a56be967ab
4
+ data.tar.gz: 2b5ff75e423fde47636072d39bee636c2ad05204
5
5
  SHA512:
6
- metadata.gz: fcccfc7abdd22fc883a8f9057b0f93e1a1090c68f95ccab24def10b70f43c0bdf592404c6433e0f19102a3a0f223fa17f9bf23f2853256373c53d76f44df7519
7
- data.tar.gz: 351c9e24e803548c9171840cfa22e7d7d790a8d0b2eb84be0942169590fd52c4efa50562a3e35de7fd7373c0280c037c5cbae55d7e6c9b57022b6893953e741b
6
+ metadata.gz: b91bd9dadb3913ee1bb4986d8966446258c1df86970b55d3ae11e4f48eefbc5836a285acc22b65694769f97b14275e53ed359a36b1b4826bb565b0a87dc1fb4b
7
+ data.tar.gz: 1a8395bc413bbd51d3dff61e3b02fe55bd06cf6abc8f5776efffe544a7ffaed8d3e6d8eeab6b86d95587353f49141addcc3bf46ceb05541c5ce251a42eb35a47
@@ -62,7 +62,7 @@ module DataSteroid
62
62
  def coerce_array(value, type)
63
63
  # type: generic Array
64
64
  if type == Array
65
- coerce(element, type)
65
+ coerce_other(value, type)
66
66
  # type: Array[Something]
67
67
  elsif value.respond_to?(:map)
68
68
  value.map do |element|
@@ -76,11 +76,11 @@ module DataSteroid
76
76
  def coerce_hash(value, type)
77
77
  # type: generic Hash
78
78
  if type == Hash
79
- coerce(element, type)
79
+ coerce_other(value, type)
80
80
  # type: Hash[Something => Other thing]
81
- elsif value.is_a?(Hash)
81
+ elsif value.respond_to?(:to_h)
82
82
  k_type, v_type = type.to_a[0]
83
- value.map{ |k, v| [ coerce(k, k_type), coerce(v, v_type) ] }.to_h
83
+ value.to_h.map{ |k,v| [ coerce(k, k_type), coerce(v, v_type) ] }.to_h
84
84
  else
85
85
  raise ArgumentError.new "Invalid coercion: #{value.class} => #{type}"
86
86
  end
@@ -107,7 +107,7 @@ module DataSteroid
107
107
  # or like this:
108
108
  # property :time_field, type: Time, default: -> { Time.now }
109
109
  def add_property(name, *args)
110
- options = args[-1].is_a?(Hash) ? args[-1] : {}
110
+ options = args[-1].is_a?(Hash) ? args[-1].slice(:default, :type) : {}
111
111
  options[:type] = args[0] if args[0] && !(args[0].is_a?(Hash) && args[0].key?(:default))
112
112
  properties[name.to_s] = options
113
113
  create_accessors(name, options)
@@ -1,5 +1,5 @@
1
1
  module DataSteroid
2
2
  # version string
3
3
  # @api public
4
- VERSION = '0.5.4'
4
+ VERSION = '0.5.5'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data_steroid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fabio Tomio