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