foraneus 0.0.9 → 0.0.10

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: 976c68b16acbcc76530fda47381d9ab002e2af0e
4
- data.tar.gz: 3c76aa959fc3e5677a75479b11b153de3e6126a3
3
+ metadata.gz: 7b3cc51401c2bcc207999c402d0609b07e8ccd83
4
+ data.tar.gz: 8ef4b2c5d0bf8c600c9f1c936e7c6ecaca077539
5
5
  SHA512:
6
- metadata.gz: ef995adf323dd314630b41305a9ba4ca6744cad7fe8e0b8a1a02eb72dc491f0124c7f49ae9b94f301f6fb7afba8d5a130949a62dd370c8a19dd45678f0bde6f6
7
- data.tar.gz: 035ad2c188843583faf6dd2313ba263e9c94493263037964f584419c6693b28d14c778dfa64bacd4388d2b369b1cd0d1261aefd1feebef1d08e1c056c56877ac
6
+ metadata.gz: f78d1e12309ae8dd947f353218efc74f1458e92f24a88de0d5246a074e60fad6b823ef9a6e942419483ff41adc5d16d61dc9819fa635ee8de26f6b43f18f3aa1
7
+ data.tar.gz: a84ae675a7f26b4d8027d436ef4dbc6371af391b2a505f05655e6a296bd1528c9858fa5488f0f3b9c99e6aae43068c0af1b160f1094db7a71524632cfda70f4d
@@ -18,13 +18,6 @@ class Foraneus
18
18
 
19
19
  join(left, right)
20
20
  end
21
-
22
- private
23
- def add_trailing_zeros(s, n)
24
- zeros = '0' * n
25
-
26
- "#{s}#{zeros}"
27
- end
28
21
  end
29
22
 
30
23
  end
data/lib/foraneus.rb CHANGED
@@ -107,11 +107,26 @@ class Foraneus
107
107
  # @param [Hash<Symbol, String>] raw_data
108
108
  #
109
109
  # @return [Foraneus] An instance of a form.
110
- def self.parse(raw_data)
110
+ def self.parse(raw_data = {})
111
111
  instance = self.new
112
112
 
113
+ parsed_keys = []
114
+
115
+ @fields.each do |k, _|
116
+ given_key = k
117
+ v = raw_data.fetch(given_key) do |k|
118
+ given_key = k.to_sym
119
+ raw_data.fetch(given_key, nil)
120
+ end
121
+
122
+ parsed_keys << given_key
123
+ __parse_raw_datum(instance, given_key, v)
124
+ end
125
+
113
126
  raw_data.each do |k, v|
114
- __parse_raw_datum(instance, k, v)
127
+ unless parsed_keys.include?(k)
128
+ __parse_raw_datum(instance, k, v)
129
+ end
115
130
  end
116
131
 
117
132
  instance
@@ -122,7 +137,7 @@ class Foraneus
122
137
  # @param [Hash<Symbol, Object>] data
123
138
  #
124
139
  # @return [Foraneus] An instance of a form.
125
- def self.raw(data)
140
+ def self.raw(data = {})
126
141
  instance = self.new
127
142
 
128
143
  data.each do |k, v|
@@ -125,7 +125,7 @@ describe Foraneus do
125
125
  its(:data) { should include(:delay => '') }
126
126
  end
127
127
 
128
- shared_examples 'an absent parameters handler' do |missing_value|
128
+ shared_examples 'an absent parameters value handler' do |missing_value|
129
129
  subject(:form) { form_spec.parse(:delay => missing_value) }
130
130
 
131
131
  it { should be_valid }
@@ -162,11 +162,23 @@ describe Foraneus do
162
162
  end
163
163
 
164
164
  context 'with nil values' do
165
- it_behaves_like 'an absent parameters handler', nil
165
+ it_behaves_like 'an absent parameters value handler', nil
166
166
  end
167
167
 
168
168
  context 'with empty values' do
169
- it_behaves_like 'an absent parameters handler', ''
169
+ it_behaves_like 'an absent parameters value handler', ''
170
+ end
171
+
172
+ context 'when required field' do
173
+ let(:converter) { Foraneus::Converters::Integer.new(:required => true) }
174
+
175
+ context 'when missing input parameter' do
176
+ subject(:form) { form_spec.parse }
177
+
178
+ it { should_not be_valid }
179
+
180
+ its(:delay) { should be_nil }
181
+ end
170
182
  end
171
183
  end
172
184
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foraneus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gianfranco Zas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-05 00:00:00.000000000 Z
11
+ date: 2014-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec