condition 0.0.5 → 0.0.6
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/README.md +11 -0
- data/condition.gemspec +2 -0
- data/lib/condition/param_item.rb +37 -3
- data/lib/condition/version.rb +1 -1
- data/spec/condition_spec.rb +6 -0
- data/spec/files/t_user.ods +0 -0
- metadata +29 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e3eb00ca6c24ba6ae12cd36c71d7e90c9dcbf1be
|
4
|
+
data.tar.gz: a610828831e5f8bf184fde0ced8e7ae492684b23
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b956d6a735d1768218b04442dc5a1c247c4019fbf3e817afe3cf5ea228e6d869906e13d11206f197540091168a73176bc3159376b13bce94e3cceec6ce0a29e
|
7
|
+
data.tar.gz: ba048d48feb07537cdb30bc3f3e351fff2827facaa012938082d49d3cc475e3713219ac05755bf49952e69312bc3f450498e4f3bf378332695bf736926292cd2
|
data/README.md
CHANGED
@@ -30,6 +30,17 @@ TODO: Write usage instructions here
|
|
30
30
|
|
31
31
|
## Changes
|
32
32
|
|
33
|
+
2013-04-17 0.0.6
|
34
|
+
modify symbol or string
|
35
|
+
check hash and ary
|
36
|
+
modify check_value raise
|
37
|
+
|
38
|
+
2013-04-17 0.0.5
|
39
|
+
add pre_after exec
|
40
|
+
|
41
|
+
2013-04-15 0.0.4
|
42
|
+
add default to precondition
|
43
|
+
|
33
44
|
2013-04-15 0.0.3
|
34
45
|
add default to precondition
|
35
46
|
|
data/condition.gemspec
CHANGED
data/lib/condition/param_item.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
require 'time'
|
3
|
+
require 'json'
|
4
|
+
require 'active_support/all'
|
3
5
|
|
4
6
|
module Condition
|
5
7
|
class ParamItem
|
@@ -69,7 +71,36 @@ module Condition
|
|
69
71
|
if Time === real
|
70
72
|
real == Time.parse(expected)
|
71
73
|
elsif nil == real
|
72
|
-
expected == nil
|
74
|
+
expected == nil || expected == "#NULL"
|
75
|
+
elsif Hash === real
|
76
|
+
ex = expected
|
77
|
+
if !(Hash === expected)
|
78
|
+
ex = JSON.parse(expected)
|
79
|
+
end
|
80
|
+
ex = ex.symbolize_keys
|
81
|
+
result = true
|
82
|
+
ex.each_pair do |k, v|
|
83
|
+
res = value_match?(v, real[k])
|
84
|
+
result = false if !res
|
85
|
+
end
|
86
|
+
result
|
87
|
+
elsif Array === real
|
88
|
+
ex = expected
|
89
|
+
if !(Array === expected)
|
90
|
+
ex = JSON.parse(expected)
|
91
|
+
end
|
92
|
+
false if Array === ex
|
93
|
+
size = ex.size()
|
94
|
+
true if size == 0 && real.size() == 0
|
95
|
+
false if size != real.size()
|
96
|
+
index = 0
|
97
|
+
while true
|
98
|
+
break if index >= size
|
99
|
+
result = value_match?(ex[index], real[index])
|
100
|
+
return false if !result
|
101
|
+
index = index + 1
|
102
|
+
end
|
103
|
+
true
|
73
104
|
else
|
74
105
|
real.to_s == expected
|
75
106
|
end
|
@@ -78,8 +109,11 @@ module Condition
|
|
78
109
|
def check_value(real, value)
|
79
110
|
targetFlag = true
|
80
111
|
matchFlag = true
|
112
|
+
unmatch_info = []
|
113
|
+
real = real.symbolize_keys
|
81
114
|
value.each_pair do |k, v|
|
82
|
-
match = value_match?(v,
|
115
|
+
match = value_match?(v, real[k])
|
116
|
+
unmatch_info << v.to_s + " <> " + real[k].to_s if !match
|
83
117
|
whereKeyFlag = nil != @keys.index(k.to_s)
|
84
118
|
matchFlag = false if !match
|
85
119
|
targetFlag = false if whereKeyFlag && !match
|
@@ -89,7 +123,7 @@ module Condition
|
|
89
123
|
elsif !targetFlag
|
90
124
|
return false
|
91
125
|
else
|
92
|
-
raise "#{@name} not match " + real.to_s
|
126
|
+
raise "#{@name} not match " + real.to_s + "\n" + unmatch_info.join("\n")
|
93
127
|
end
|
94
128
|
end
|
95
129
|
|
data/lib/condition/version.rb
CHANGED
data/spec/condition_spec.rb
CHANGED
@@ -28,5 +28,11 @@ describe Condition do
|
|
28
28
|
list = DB["SELECT * FROM t_user"].all
|
29
29
|
param.check('list', list)
|
30
30
|
param.check('list', [{"user_id" => 1, "user_name" => "aaax"}])
|
31
|
+
param.check('ary', [{name: "a", val1: {a: "b"}, val2: [{a: {c: "d"}}], val3: [], val4: nil}])
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'unmatch' do
|
35
|
+
param = Condition::Param.new(FILES + '/t_user.ods', 2)
|
36
|
+
lambda{param.check('unmatch', [{id: 1, name: "bbb", val: 456}])}.should raise_error
|
31
37
|
end
|
32
38
|
end
|
data/spec/files/t_user.ods
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: condition
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- aoyagikouhei
|
@@ -94,6 +94,34 @@ dependencies:
|
|
94
94
|
- - '>='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: json
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: activesupport
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
97
125
|
description: Condition Test
|
98
126
|
email:
|
99
127
|
- aoyagi.kouhei@gmail.com
|