watir_model 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|