nom-xml 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
@@ -15,6 +15,9 @@ module Nom::XML::Decorators::Terminology
|
|
15
15
|
|
16
16
|
xpath = t.local_xpath
|
17
17
|
|
18
|
+
xpath += "[#{t.options[:if]}]" if t.options[:if]
|
19
|
+
xpath += "[not(#{t.options[:unless]})]" if t.options[:unless]
|
20
|
+
|
18
21
|
xpath += "[#{args.join('][')}]" unless args.empty?
|
19
22
|
|
20
23
|
result = case self
|
@@ -30,9 +33,9 @@ module Nom::XML::Decorators::Terminology
|
|
30
33
|
when m.nil?
|
31
34
|
result
|
32
35
|
when m.is_a?(Symbol)
|
33
|
-
result.collect { |r| r.send(m) }
|
36
|
+
result.collect { |r| r.send(m) }.compact
|
34
37
|
when m.is_a?(Proc)
|
35
|
-
result.collect { |r| m.call(r) }
|
38
|
+
result.collect { |r| m.call(r) }.compact
|
36
39
|
else
|
37
40
|
raise "Unknown accessor class: #{m.class}"
|
38
41
|
end
|
data/lib/nom/xml/version.rb
CHANGED
@@ -25,6 +25,8 @@ describe "Nutrition" do
|
|
25
25
|
t.c do |c|
|
26
26
|
c.nested
|
27
27
|
end
|
28
|
+
|
29
|
+
t.d :if => 'my-custom-function()'
|
28
30
|
end
|
29
31
|
|
30
32
|
xml.nom!
|
@@ -111,6 +113,24 @@ describe "Nutrition" do
|
|
111
113
|
|
112
114
|
subject.asdf.should == 1
|
113
115
|
end
|
116
|
+
|
117
|
+
it "should evaluate if" do
|
118
|
+
mock_term = mock(:local_xpath => '//asdf', :options => {:if => 'my-custom-function()' })
|
119
|
+
@term_accessors = { :asdf => mock_term }
|
120
|
+
|
121
|
+
subject.should_receive(:xpath).with('//asdf[my-custom-function()]', anything).and_return([1])
|
122
|
+
|
123
|
+
subject.asdf.should == [1]
|
124
|
+
end
|
125
|
+
|
126
|
+
it "should evaluate unless" do
|
127
|
+
mock_term = mock(:local_xpath => '//asdf', :options => {:unless => 'my-custom-function()' })
|
128
|
+
@term_accessors = { :asdf => mock_term }
|
129
|
+
|
130
|
+
subject.should_receive(:xpath).with('//asdf[not(my-custom-function())]', anything).and_return([1])
|
131
|
+
|
132
|
+
subject.asdf.should == [1]
|
133
|
+
end
|
114
134
|
end
|
115
135
|
|
116
136
|
describe "#terms" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nom-xml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-11-
|
12
|
+
date: 2012-11-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -174,7 +174,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
174
174
|
version: '0'
|
175
175
|
segments:
|
176
176
|
- 0
|
177
|
-
hash:
|
177
|
+
hash: -2240857808020887200
|
178
178
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
179
179
|
none: false
|
180
180
|
requirements:
|
@@ -183,7 +183,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
183
183
|
version: '0'
|
184
184
|
segments:
|
185
185
|
- 0
|
186
|
-
hash:
|
186
|
+
hash: -2240857808020887200
|
187
187
|
requirements: []
|
188
188
|
rubyforge_project:
|
189
189
|
rubygems_version: 1.8.23
|