watir_model 0.4.1 → 0.4.2
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/CHANGES.md +4 -0
- data/lib/watir_model.rb +25 -3
- data/watir_model.gemspec +1 -1
- 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: 4904880adbf6b85baeeff411bb114b8c643d1aa3
|
|
4
|
+
data.tar.gz: 4e631bd91990116e3dd870bbb2fab80d3e2b8c03
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6967901d8c92c031591f026f99de26320a97007b3f10dbbac1389f554e6f929e2856c9a080f516c952f5a44de8e3d6a726f1787bbfdd8c40d21d7e59d80a6ae5
|
|
7
|
+
data.tar.gz: 4e7b64c250dfb22c02c7fc22cfc07fb525d88618af86b2af062c0bc437150f6bd26820536b280950a0d66ff2dd0274f0970ee0552aaeb01b001bc98bca676165
|
data/CHANGES.md
CHANGED
data/lib/watir_model.rb
CHANGED
|
@@ -8,7 +8,7 @@ class WatirModel
|
|
|
8
8
|
class << self
|
|
9
9
|
include YmlReader
|
|
10
10
|
|
|
11
|
-
attr_writer :keys, :aliases, :data_types, :defaults
|
|
11
|
+
attr_writer :keys, :aliases, :data_types, :defaults, :apis
|
|
12
12
|
|
|
13
13
|
def keys
|
|
14
14
|
@keys ||= []
|
|
@@ -22,6 +22,10 @@ class WatirModel
|
|
|
22
22
|
@data_types ||= {}
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
+
def apis
|
|
26
|
+
@apis ||= {}
|
|
27
|
+
end
|
|
28
|
+
|
|
25
29
|
def defaults
|
|
26
30
|
@defaults ||= {}
|
|
27
31
|
end
|
|
@@ -29,14 +33,16 @@ class WatirModel
|
|
|
29
33
|
def inherited(subclass)
|
|
30
34
|
subclass.keys = keys.dup
|
|
31
35
|
subclass.aliases = aliases.dup
|
|
36
|
+
subclass.apis = apis.dup
|
|
32
37
|
subclass.defaults = defaults.dup
|
|
33
38
|
subclass.data_types = data_types.dup
|
|
34
39
|
end
|
|
35
40
|
|
|
36
|
-
def key(symbol, data_type: nil, aliases: [], &block)
|
|
41
|
+
def key(symbol, data_type: nil, aliases: [], api: nil, &block)
|
|
37
42
|
keys << symbol unless @keys.include? symbol
|
|
38
43
|
aliases.each { |alias_key| self.aliases[alias_key] = symbol }
|
|
39
44
|
attr_accessor symbol
|
|
45
|
+
apis[api] = symbol if api
|
|
40
46
|
data_types[symbol] = data_type if data_type
|
|
41
47
|
defaults[symbol] = block if block
|
|
42
48
|
end
|
|
@@ -78,7 +84,7 @@ class WatirModel
|
|
|
78
84
|
|
|
79
85
|
def convert(hash, *args)
|
|
80
86
|
hash.deep_symbolize_keys!
|
|
81
|
-
filtered = hash.select { |k| keys
|
|
87
|
+
filtered = hash.select { |k| (keys + aliases.keys + apis.keys).include?(k) }
|
|
82
88
|
model = new(filtered)
|
|
83
89
|
args.each do |key|
|
|
84
90
|
model.instance_eval do
|
|
@@ -129,6 +135,10 @@ class WatirModel
|
|
|
129
135
|
hash[aliases[alias_key]] = hash.delete(alias_key)
|
|
130
136
|
end
|
|
131
137
|
|
|
138
|
+
(hash.keys & apis.keys).each do |api_key|
|
|
139
|
+
hash[apis[api_key]] = hash.delete(api_key)
|
|
140
|
+
end
|
|
141
|
+
|
|
132
142
|
unknown = hash.keys - keys
|
|
133
143
|
if unknown.count > 0
|
|
134
144
|
raise ArgumentError, "unknown keyword#{'s' if unknown.count > 1}: #{unknown.join ', '}"
|
|
@@ -146,6 +156,10 @@ class WatirModel
|
|
|
146
156
|
self.class.aliases
|
|
147
157
|
end
|
|
148
158
|
|
|
159
|
+
def apis
|
|
160
|
+
self.class.apis
|
|
161
|
+
end
|
|
162
|
+
|
|
149
163
|
def [] key
|
|
150
164
|
send key
|
|
151
165
|
end
|
|
@@ -164,6 +178,14 @@ class WatirModel
|
|
|
164
178
|
end
|
|
165
179
|
end
|
|
166
180
|
|
|
181
|
+
def to_api
|
|
182
|
+
hash = to_hash
|
|
183
|
+
apis.each do |key, value|
|
|
184
|
+
hash[key] = hash.delete(value)
|
|
185
|
+
end
|
|
186
|
+
hash.to_json
|
|
187
|
+
end
|
|
188
|
+
|
|
167
189
|
private
|
|
168
190
|
|
|
169
191
|
def default_value(key, block)
|
data/watir_model.gemspec
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: watir_model
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Titus Fortner
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-12-
|
|
11
|
+
date: 2017-12-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|