bogo 0.1.22 → 0.1.24

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: eacb7f10b81571c766b7759aa06a996ab4ec27e3
4
- data.tar.gz: 09e823bcc4bba8a285e77dab4b447b206d22ca30
3
+ metadata.gz: a0ca167fdd60981d76b2fc29178e9f5ebdb31dd5
4
+ data.tar.gz: 44b90c260e3099cdc593db60aac12fd146c48d65
5
5
  SHA512:
6
- metadata.gz: ce3eb6340472885af82320813bb344df09fbf3ce7d5c343df5544c4413b971f89f53d374d9a040c9c47fb2f4daebf654afc138ac4b691b5f01fe1ac98cda1222
7
- data.tar.gz: 309fed02b6250c5dafe73388aa2851bd0a7370f13779ae28be0b94b045bd5b79fa70f9f32e5632806ae5a9d9293676fe7510b50962c0ebf7297d932d1d3eed30
6
+ metadata.gz: 19c043fd999d61d5ee2abe1dfb1b20db13f07a0aa22b206a91d08175c8847d903c6294bd919e4d5c73816c871c8872f9459c3314fdbf6732b241c28b79115e81
7
+ data.tar.gz: 487018eaaf832cd79e7b318454f6c56cb624b2a9334f258c9fe47a3c27c7805340873cb91bbecc86ff0c70b5a098504f17a4f082f8fc6f9f7fed7bf1bec91312
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## v0.1.24
2
+ * [Lazy] Allow multiple results from coercion output
3
+
1
4
  ## v0.1.22
2
5
  * Fix CONNECT requests for HTTPS endpoints to properly include port
3
6
 
data/lib/bogo/lazy.rb CHANGED
@@ -149,20 +149,33 @@ module Bogo
149
149
  end
150
150
  if(coerce && !valid_type)
151
151
  item = coerce.arity == 2 ? coerce.call(item, self) : coerce.call(item)
152
+ if(item.is_a?(Hash) && item[:bogo_multiple])
153
+ item = item[:bogo_multiple]
154
+ else
155
+ item = [item]
156
+ end
157
+ else
158
+ item = [item]
152
159
  end
153
- valid_type = valid_types.detect do |klass|
154
- item.is_a?(klass)
160
+ invalid_type = item.detect do |_item|
161
+ valid_types.none? do |klass|
162
+ _item.is_a?(klass)
163
+ end
155
164
  end
156
- unless(valid_type)
157
- raise TypeError.new("Invalid type for `#{name}` (#{item} <#{item.class}>). Valid - #{valid_types.map(&:to_s).join(',')}")
165
+ if(invalid_type)
166
+ raise TypeError.new("Invalid type for `#{name}` (#{invalid_type} <#{invalid_type.class}>). Valid - #{valid_types.map(&:to_s).join(',')}")
158
167
  end
159
168
  if(allowed_values)
160
- unless(allowed_values.include?(item))
161
- raise ArgumentError.new("Invalid value provided for `#{name}` (#{item.inspect}). Allowed - #{allowed_values.map(&:inspect).join(', ')}")
169
+ unallowed = item.detect do |_item|
170
+ !allowed_values.include?(_item)
171
+ end
172
+ if(unallowed)
173
+ raise ArgumentError.new("Invalid value provided for `#{name}` (#{unallowed.inspect}). Allowed - #{allowed_values.map(&:inspect).join(', ')}")
162
174
  end
163
175
  end
164
176
  item
165
177
  end
178
+ values.flatten!(1)
166
179
  if(!multiple_values && !val.is_a?(Array))
167
180
  dirty[name] = values.first
168
181
  else
data/lib/bogo/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Bogo
2
2
  # Current library version
3
- VERSION = Gem::Version.new('0.1.22')
3
+ VERSION = Gem::Version.new('0.1.24')
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bogo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.22
4
+ version: 0.1.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Roberts
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-28 00:00:00.000000000 Z
11
+ date: 2015-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashie
@@ -113,4 +113,3 @@ signing_key:
113
113
  specification_version: 4
114
114
  summary: Helper libraries
115
115
  test_files: []
116
- has_rdoc: