data_steroid 0.5.4 → 0.5.5

Sign up to get free protection for your applications and to get access to all the features.
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