bogo 0.1.22 → 0.1.24

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: 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: