datagnan 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/datagnan.rb +39 -35
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f425736e18d39486f8e1fc680fd8450bde7a4d1a
|
4
|
+
data.tar.gz: 46b8bdba14ff01e2dd64cedf69828fe7acb8458a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96bd8819def16e59acc2223cdb23bdea2bf16cd9089238f1ddd3b9d6142fd06082e56fe526acab30f0a9f470d2bacdcdfeedf4b0c8f87e2a5dd813edb23167c1
|
7
|
+
data.tar.gz: 01eaa06ae0cd544c99123af7757e93e0ddea66dab4b7f97ed119e60e23fbf2d4ba5c5fe35c96b3fa4004852d923642cafeab19971495e81eafc960ec481a9765
|
data/lib/datagnan.rb
CHANGED
@@ -75,22 +75,44 @@ class Datagnan
|
|
75
75
|
|
76
76
|
private
|
77
77
|
|
78
|
+
## find value in vars and scope
|
79
|
+
def find_value(path, vars)
|
80
|
+
## recursive access to property
|
81
|
+
## debug
|
82
|
+
# puts "-- Datagnan.find_value ( path = #{path} )"
|
83
|
+
# puts "-- Datagnan.find_value ( vars = #{vars} )"
|
84
|
+
var = vars
|
85
|
+
path.split('.').each do |key|
|
86
|
+
## var exist
|
87
|
+
# puts "-- Datagnan.find_value split ( key = #{key} )"
|
88
|
+
# puts "-- Datagnan.find_value split ( @scope.respond_to?(key) = #{@scope.respond_to?(key)} )"
|
89
|
+
# puts "-- Datagnan.find_value split ( @scope.send(key) = #{@scope.send(key)} )" if @scope.respond_to?(key)
|
90
|
+
var = ( var.is_a?(Hash) ?
|
91
|
+
( var[key].nil? ?
|
92
|
+
( @scope.respond_to?(key) ?
|
93
|
+
@scope.send(key) :
|
94
|
+
nil
|
95
|
+
) :
|
96
|
+
var[key]
|
97
|
+
) :
|
98
|
+
( var.respond_to?(key) ?
|
99
|
+
var.send(key) :
|
100
|
+
nil
|
101
|
+
)
|
102
|
+
)
|
103
|
+
end
|
104
|
+
# puts "-- Datagnan.find_value ( var = #{var} )"
|
105
|
+
var
|
106
|
+
end
|
107
|
+
|
78
108
|
## node content
|
79
109
|
def data_var(vars, root)
|
80
110
|
## debug
|
81
111
|
# puts "-- Datagnan.data_var ( vars = #{vars} )"
|
82
112
|
# puts "-- Datagnan.data_var ( root.to_xml = #{root.to_xml} )"
|
83
113
|
root.css('*[data-var]').each do |node|
|
84
|
-
|
85
|
-
|
86
|
-
# puts "-- Datagnan.data_var each ( vars = #{vars} )"
|
87
|
-
# puts "-- Datagnan.data_var each ( node.to_xml = #{node.to_xml} )"
|
88
|
-
var = vars
|
89
|
-
node.get('data-var').split('.').each do |key|
|
90
|
-
## var exist
|
91
|
-
var = ( var.is_a?(Hash) ? var[key] : (var.respond_to?(key) ? var.send(key) : nil ) )
|
92
|
-
end
|
93
|
-
# puts "-- Datagnan.data_var each ( var = #{var} )"
|
114
|
+
|
115
|
+
var = find_value(node.get('data-var'), vars)
|
94
116
|
|
95
117
|
unless var.nil?
|
96
118
|
node.children = Oga.parse_html(var.to_s).children
|
@@ -118,12 +140,8 @@ private
|
|
118
140
|
val = key_val.size.odd? ? key_val[0] : key_val[1]
|
119
141
|
## debug
|
120
142
|
# puts "-- Datagnan.data_attrs each attr ( key = #{key}, val = #{val} )"
|
121
|
-
var = vars
|
122
|
-
|
123
|
-
## var exist
|
124
|
-
var = ( var.is_a?(Hash) ? var[val_part] : (var.respond_to?(val_part) ? var.send(val_part) : nil ) )
|
125
|
-
end
|
126
|
-
# puts "-- Datagnan.data_attrs each ( var = #{var} )"
|
143
|
+
var = find_value(val, vars)
|
144
|
+
|
127
145
|
unless var.nil?
|
128
146
|
node.attributes.insert(
|
129
147
|
node.attributes.index(node.attribute('data-attrs')),
|
@@ -144,15 +162,9 @@ private
|
|
144
162
|
# puts "-- Datagnan.data_each ( root = #{root.to_xml} )"
|
145
163
|
# puts "-- Datagnan.data_each ( root.css('[data-each]') = #{root.css('[data-each]').inspect} )"
|
146
164
|
root.css('*[data-each]').each do |node|
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
node.get('data-each').split('.').each do |key|
|
151
|
-
## var exist
|
152
|
-
var = ( var.is_a?(Hash) ? var[key] : (var.respond_to?(key) ? var.send(key) : nil ) )
|
153
|
-
end
|
154
|
-
# puts "-- Datagnan.data_each each ( var = #{var} )"
|
155
|
-
# puts "-- Datagnan.data_each each ( node = #{node.to_xml} )"
|
165
|
+
|
166
|
+
var = find_value(node.get('data-each'), vars)
|
167
|
+
|
156
168
|
unless var.nil?
|
157
169
|
# --------
|
158
170
|
node.unset('data-each')
|
@@ -186,16 +198,8 @@ private
|
|
186
198
|
# puts "Datagnan.data_when ( vars = #{vars} )"
|
187
199
|
# puts "Datagnan.data_when ( root = #{root} )"
|
188
200
|
root.css('*[data-when]').each do |node|
|
189
|
-
|
190
|
-
|
191
|
-
# puts "-- Datagnan.data_when each ( vars = #{vars} )"
|
192
|
-
# puts "-- Datagnan.data_when each ( node = #{node} )"
|
193
|
-
var = vars
|
194
|
-
node.get('data-when').split('.').each do |key|
|
195
|
-
## var exist
|
196
|
-
var = ( var.is_a?(Hash) ? var[key] : (var.respond_to?(key) ? var.send(key) : nil ) )
|
197
|
-
end
|
198
|
-
# puts "-- Datagnan.data_when each ( var = #{var} )"
|
201
|
+
|
202
|
+
var = find_value(node.get('data-when'), vars)
|
199
203
|
|
200
204
|
unless var.nil?
|
201
205
|
var ? node.unset('data-when') : node.remove
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datagnan
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Popov
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-04-
|
12
|
+
date: 2015-04-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: oga
|