hermod 1.2.9 → 2.1.0
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 +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +8 -1
- data/Gemfile +8 -4
- data/README.md +1 -0
- data/gemfiles/activesupport-3.2 +6 -0
- data/gemfiles/activesupport-4.0 +6 -0
- data/gemfiles/activesupport-4.2 +6 -0
- data/hermod.gemspec +1 -3
- data/lib/hermod/input_mutator.rb +6 -2
- data/lib/hermod/version.rb +1 -1
- data/lib/hermod/xml_section_builder.rb +1 -1
- data/spec/hermod/xml_section_builder/string_node_spec.rb +17 -0
- metadata +7 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f734b2b05f6e0c454ade409a61f9eb18da49d9ca
|
4
|
+
data.tar.gz: b5feefa69f5f93cc380c7841248b2a30b947b43e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0caa25fac9dc0cc74b4f624b480bb7d900f6d625910af7c39758e62ca1d217b96643e8733deefd63a781c41c77460fb6058ee23d75c20d82f22c8c773bc4b4a1
|
7
|
+
data.tar.gz: d680e1797b1316cd5af0ed76b7d4f0c74f25c7147e2e51b99fb7e8d1c0387d6ca0c39b38d3bdd59e90cf14f22e40ca6d4c8634993a0bb289fcffa53bdbeadb5d
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -3,7 +3,11 @@ source 'https://rubygems.org'
|
|
3
3
|
# Specify your gem's dependencies in xml-section.gemspec
|
4
4
|
gemspec
|
5
5
|
|
6
|
-
|
7
|
-
gem "
|
8
|
-
gem "
|
9
|
-
gem "
|
6
|
+
group :test do
|
7
|
+
gem "guard", "~> 2.6.1"
|
8
|
+
gem "guard-minitest", "~> 2.3.1"
|
9
|
+
gem "pry-byebug", "~> 1.3.3", platform: [:mri_20, :mri_21]
|
10
|
+
gem "pry-debugger", "~> 0.2.3", platform: :mri_19
|
11
|
+
gem "pry-doc", "~> 0.6.0"
|
12
|
+
gem "bond", "~> 0.5.1"
|
13
|
+
end
|
data/README.md
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
[](https://codeclimate.com/github/fac/hermod)
|
5
|
+
[](https://travis-ci.org/fac/hermod)
|
5
6
|
|
6
7
|
This gem makes it easier to talk to HMRC through the [Government Gateway][1] by
|
7
8
|
providing a DSL you can use to create Ruby classes to build the XML required in
|
data/hermod.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
21
21
|
spec.require_paths = ["lib"]
|
22
22
|
|
23
|
-
spec.required_ruby_version = ">=
|
23
|
+
spec.required_ruby_version = ">= 2.0.0"
|
24
24
|
|
25
25
|
spec.add_runtime_dependency "libxml-ruby", "~> 2.7", ">= 2.7.0"
|
26
26
|
spec.add_runtime_dependency "activesupport", "> 3.2", "< 5"
|
@@ -29,7 +29,5 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_development_dependency "rake", "~> 10.3"
|
30
30
|
spec.add_development_dependency "minitest", "~> 5.3"
|
31
31
|
spec.add_development_dependency "minitest-reporters", "~> 1.0", ">= 1.0.16"
|
32
|
-
spec.add_development_dependency "guard", "~> 2.6", ">= 2.6.1"
|
33
|
-
spec.add_development_dependency "guard-minitest", "~> 2.3", ">= 2.3.1"
|
34
32
|
spec.add_development_dependency "nokogiri", "~> 1.5"
|
35
33
|
end
|
data/lib/hermod/input_mutator.rb
CHANGED
@@ -6,8 +6,12 @@ module Hermod
|
|
6
6
|
@mutator_proc = mutator_proc
|
7
7
|
end
|
8
8
|
|
9
|
-
def mutate!(values, attributes)
|
10
|
-
mutator_proc.
|
9
|
+
def mutate!(values, attributes, instance)
|
10
|
+
if mutator_proc.arity == 2
|
11
|
+
mutator_proc.call(values, attributes)
|
12
|
+
else
|
13
|
+
mutator_proc.call(values, attributes, instance)
|
14
|
+
end
|
11
15
|
end
|
12
16
|
end
|
13
17
|
end
|
data/lib/hermod/version.rb
CHANGED
@@ -192,7 +192,7 @@ module Hermod
|
|
192
192
|
xml_name = options.fetch(:xml_name, name.to_s.camelize)
|
193
193
|
|
194
194
|
@new_class.send :define_method, name do |value, attributes = {}|
|
195
|
-
mutators.each { |mutator| value, attributes = mutator.mutate!(value, attributes) }
|
195
|
+
mutators.each { |mutator| value, attributes = mutator.mutate!(value, attributes, self) }
|
196
196
|
begin
|
197
197
|
validators.each { |validator| validator.valid?(value, attributes) }
|
198
198
|
rescue InvalidInputError => ex
|
@@ -11,6 +11,17 @@ module Hermod
|
|
11
11
|
builder.string_node :gender, input_mutator: (lambda do |value, attributes|
|
12
12
|
[value == "Male" ? "M" : "F", attributes]
|
13
13
|
end)
|
14
|
+
builder.string_node :status, input_mutator: (lambda do |value, attributes, instance|
|
15
|
+
adjective = case instance.nodes[:mood].first.value
|
16
|
+
when "Happy"
|
17
|
+
"joyously"
|
18
|
+
when "Sad"
|
19
|
+
"dejectedly"
|
20
|
+
when "Hangry"
|
21
|
+
"furiously"
|
22
|
+
end
|
23
|
+
["#{value} #{adjective}", attributes]
|
24
|
+
end)
|
14
25
|
builder.string_node :mood, allowed_values: %w(Happy Sad Hangry)
|
15
26
|
end
|
16
27
|
|
@@ -45,6 +56,12 @@ module Hermod
|
|
45
56
|
value_of_node("Gender").must_equal "M"
|
46
57
|
end
|
47
58
|
|
59
|
+
it "should allow input_mutators to access nodes the instance" do
|
60
|
+
subject.mood "Hangry"
|
61
|
+
subject.status "Eating cookies"
|
62
|
+
value_of_node("Status").must_equal "Eating cookies furiously"
|
63
|
+
end
|
64
|
+
|
48
65
|
it "should restrict values to those in the list of allowed values if such a list is provided" do
|
49
66
|
subject.mood "Hangry"
|
50
67
|
value_of_node("Mood").must_equal "Hangry"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hermod
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Harry Mills
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-06-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: libxml-ruby
|
@@ -112,46 +112,6 @@ dependencies:
|
|
112
112
|
- - ">="
|
113
113
|
- !ruby/object:Gem::Version
|
114
114
|
version: 1.0.16
|
115
|
-
- !ruby/object:Gem::Dependency
|
116
|
-
name: guard
|
117
|
-
requirement: !ruby/object:Gem::Requirement
|
118
|
-
requirements:
|
119
|
-
- - "~>"
|
120
|
-
- !ruby/object:Gem::Version
|
121
|
-
version: '2.6'
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: 2.6.1
|
125
|
-
type: :development
|
126
|
-
prerelease: false
|
127
|
-
version_requirements: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - "~>"
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '2.6'
|
132
|
-
- - ">="
|
133
|
-
- !ruby/object:Gem::Version
|
134
|
-
version: 2.6.1
|
135
|
-
- !ruby/object:Gem::Dependency
|
136
|
-
name: guard-minitest
|
137
|
-
requirement: !ruby/object:Gem::Requirement
|
138
|
-
requirements:
|
139
|
-
- - "~>"
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: '2.3'
|
142
|
-
- - ">="
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
version: 2.3.1
|
145
|
-
type: :development
|
146
|
-
prerelease: false
|
147
|
-
version_requirements: !ruby/object:Gem::Requirement
|
148
|
-
requirements:
|
149
|
-
- - "~>"
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
version: '2.3'
|
152
|
-
- - ">="
|
153
|
-
- !ruby/object:Gem::Version
|
154
|
-
version: 2.3.1
|
155
115
|
- !ruby/object:Gem::Dependency
|
156
116
|
name: nokogiri
|
157
117
|
requirement: !ruby/object:Gem::Requirement
|
@@ -183,6 +143,9 @@ files:
|
|
183
143
|
- LICENSE
|
184
144
|
- README.md
|
185
145
|
- Rakefile
|
146
|
+
- gemfiles/activesupport-3.2
|
147
|
+
- gemfiles/activesupport-4.0
|
148
|
+
- gemfiles/activesupport-4.2
|
186
149
|
- hermod.gemspec
|
187
150
|
- lib/hermod.rb
|
188
151
|
- lib/hermod/input_mutator.rb
|
@@ -233,7 +196,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
233
196
|
requirements:
|
234
197
|
- - ">="
|
235
198
|
- !ruby/object:Gem::Version
|
236
|
-
version:
|
199
|
+
version: 2.0.0
|
237
200
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
238
201
|
requirements:
|
239
202
|
- - ">="
|
@@ -241,7 +204,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
241
204
|
version: '0'
|
242
205
|
requirements: []
|
243
206
|
rubyforge_project:
|
244
|
-
rubygems_version: 2.
|
207
|
+
rubygems_version: 2.4.8
|
245
208
|
signing_key:
|
246
209
|
specification_version: 4
|
247
210
|
summary: A Ruby library for talking to the HMRC Government Gateway.
|