condition 0.0.1 → 0.0.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/README.md +9 -0
- data/lib/condition/param.rb +76 -0
- data/lib/condition/{table.rb → param_item.rb} +19 -7
- data/lib/condition/version.rb +1 -1
- data/lib/condition.rb +2 -4
- data/spec/condition_spec.rb +16 -4
- data/spec/files/t_user.ods +0 -0
- metadata +4 -6
- data/lib/condition/post.rb +0 -24
- data/lib/condition/pre.rb +0 -23
- data/lib/condition/reader.rb +0 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2cc74fd455a5c5272d28fdf6ed278b6b3f2790dd
|
4
|
+
data.tar.gz: 8a7cffd879fd0c3cab7c0f77490896e0f1645edf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b01d271d559b2d76f8f5ef336e8a63f86c396ab3b5e945079f82ea96e8133ce01e3cbdb0cbc149bf3200d562b5c26d39ed5fd1dd0af75d57cf6e7140e37baa61
|
7
|
+
data.tar.gz: eadf6a040442e6ad2be58c69a6064a6c0a5d0830b90f292938e94cf24ed219dc7adfe615937a54f2da208a812bd56a24d10935396483c7da9ebb16d895973e36
|
data/README.md
CHANGED
@@ -27,3 +27,12 @@ TODO: Write usage instructions here
|
|
27
27
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
28
28
|
4. Push to the branch (`git push origin my-new-feature`)
|
29
29
|
5. Create new Pull Request
|
30
|
+
|
31
|
+
## Changes
|
32
|
+
|
33
|
+
2013-04-11 0.0.2
|
34
|
+
add param, param_item
|
35
|
+
delete pre, post, reader, table
|
36
|
+
|
37
|
+
2013-04-10 0.0.1
|
38
|
+
first release
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
require 'roo'
|
3
|
+
|
4
|
+
module Condition
|
5
|
+
class Param
|
6
|
+
def initialize(path, sheet_index=0)
|
7
|
+
blocks = read_sheet(path, sheet_index)
|
8
|
+
@item_map = {}
|
9
|
+
blocks.each do |rows|
|
10
|
+
item = Condition::ParamItem.new(rows)
|
11
|
+
@item_map[item.name] = item
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def read_sheet(path, sheet_index)
|
16
|
+
ss = Roo::Spreadsheet.open(path)
|
17
|
+
ss.default_sheet = ss.sheets[sheet_index]
|
18
|
+
row_index = 1
|
19
|
+
res = []
|
20
|
+
while true
|
21
|
+
break if nil == ss.cell(row_index, 1)
|
22
|
+
table = []
|
23
|
+
while true
|
24
|
+
row = read_row(ss, row_index)
|
25
|
+
row_index += 1
|
26
|
+
break if 0 == row.size
|
27
|
+
table << row
|
28
|
+
end
|
29
|
+
res << table
|
30
|
+
end
|
31
|
+
res
|
32
|
+
end
|
33
|
+
|
34
|
+
def read_row(ss, row_index)
|
35
|
+
column_index = 1
|
36
|
+
result = []
|
37
|
+
while true
|
38
|
+
value = ss.cell(row_index, column_index)
|
39
|
+
return result if nil == value
|
40
|
+
result << value
|
41
|
+
column_index += 1
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def get(name)
|
46
|
+
@item_map[name].values
|
47
|
+
end
|
48
|
+
|
49
|
+
def get_one(name)
|
50
|
+
@item_map[name].value
|
51
|
+
end
|
52
|
+
|
53
|
+
def check(name, data)
|
54
|
+
item = @item_map[name]
|
55
|
+
data.each do |line|
|
56
|
+
item.check_line(line)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def pre(db)
|
61
|
+
@item_map.each_value do |item|
|
62
|
+
item.delete(db)
|
63
|
+
item.insert(db)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def post(db)
|
68
|
+
@item_map.each_value do |item|
|
69
|
+
list = item.all(db)
|
70
|
+
list.each do |line|
|
71
|
+
item.check_line(line)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -2,9 +2,9 @@
|
|
2
2
|
require 'time'
|
3
3
|
|
4
4
|
module Condition
|
5
|
-
class
|
5
|
+
class ParamItem
|
6
6
|
def initialize(rows)
|
7
|
-
@
|
7
|
+
@name = rows[0][0]
|
8
8
|
@keys = rows[0].size > 1 ? rows[0][1..rows.size - 1] : []
|
9
9
|
body = rows[1..rows.size - 1]
|
10
10
|
@values = []
|
@@ -24,16 +24,28 @@ module Condition
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
+
def name
|
28
|
+
@name
|
29
|
+
end
|
30
|
+
|
31
|
+
def value
|
32
|
+
@values[0]
|
33
|
+
end
|
34
|
+
|
35
|
+
def values
|
36
|
+
@values
|
37
|
+
end
|
38
|
+
|
27
39
|
def all(db)
|
28
|
-
db["SELECT * FROM #{@
|
40
|
+
db["SELECT * FROM #{@name}"].all
|
29
41
|
end
|
30
42
|
|
31
43
|
def delete(db)
|
32
|
-
db["DELETE FROM #{@
|
44
|
+
db["DELETE FROM #{@name}"].delete
|
33
45
|
end
|
34
46
|
|
35
47
|
def insert(db)
|
36
|
-
ds = db[@
|
48
|
+
ds = db[@name.to_sym].prepare(:insert, :insert_with_name, @params)
|
37
49
|
@values.each do |it|
|
38
50
|
ds.call(it)
|
39
51
|
end
|
@@ -63,7 +75,7 @@ module Condition
|
|
63
75
|
elsif !targetFlag
|
64
76
|
return false
|
65
77
|
else
|
66
|
-
raise "#{@
|
78
|
+
raise "#{@name} not match " + real.to_s
|
67
79
|
end
|
68
80
|
end
|
69
81
|
|
@@ -71,7 +83,7 @@ module Condition
|
|
71
83
|
@values.each do |value|
|
72
84
|
return if check_value(real, value)
|
73
85
|
end
|
74
|
-
raise "#{@
|
86
|
+
raise "#{@name} not found " + real.to_s
|
75
87
|
end
|
76
88
|
|
77
89
|
end
|
data/lib/condition/version.rb
CHANGED
data/lib/condition.rb
CHANGED
data/spec/condition_spec.rb
CHANGED
@@ -6,9 +6,21 @@ describe Condition do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
it 'pre and post' do
|
9
|
-
|
10
|
-
pre
|
11
|
-
|
12
|
-
post
|
9
|
+
param = Condition::Param.new(FILES + '/t_user.ods')
|
10
|
+
param.pre(DB)
|
11
|
+
param = Condition::Param.new(FILES + '/t_user.ods', 1)
|
12
|
+
param.post(DB)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'pre and params' do
|
16
|
+
param = Condition::Param.new(FILES + '/t_user.ods')
|
17
|
+
param.pre(DB)
|
18
|
+
|
19
|
+
param = Condition::Param.new(FILES + '/t_user.ods', 2)
|
20
|
+
ds = DB[:t_user].prepare(:insert, :insert_with_name, {user_id: :$user_id, user_name: :$user_name})
|
21
|
+
ds.call(param.get_one('ins'))
|
22
|
+
|
23
|
+
list = DB["SELECT * FROM t_user"].all
|
24
|
+
param.check('list', list)
|
13
25
|
end
|
14
26
|
end
|
data/spec/files/t_user.ods
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- aoyagikouhei
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-04-
|
11
|
+
date: 2013-04-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -108,10 +108,8 @@ files:
|
|
108
108
|
- Rakefile
|
109
109
|
- condition.gemspec
|
110
110
|
- lib/condition.rb
|
111
|
-
- lib/condition/
|
112
|
-
- lib/condition/
|
113
|
-
- lib/condition/reader.rb
|
114
|
-
- lib/condition/table.rb
|
111
|
+
- lib/condition/param.rb
|
112
|
+
- lib/condition/param_item.rb
|
115
113
|
- lib/condition/version.rb
|
116
114
|
- spec/condition_spec.rb
|
117
115
|
- spec/files/t_user.ods
|
data/lib/condition/post.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
module Condition
|
4
|
-
class Post
|
5
|
-
include Condition::Reader;
|
6
|
-
|
7
|
-
def initialize(path, sheet_index=0)
|
8
|
-
tables = read_sheet(path, sheet_index)
|
9
|
-
@tables = []
|
10
|
-
tables.each do |rows|
|
11
|
-
@tables << Condition::Table.new(rows)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
def exec(db)
|
16
|
-
@tables.each do |table|
|
17
|
-
list = table.all(db)
|
18
|
-
list.each do |line|
|
19
|
-
table.check_line(line)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
data/lib/condition/pre.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
module Condition
|
4
|
-
class Pre
|
5
|
-
include Condition::Reader;
|
6
|
-
|
7
|
-
def initialize(path, sheet_index=0)
|
8
|
-
tables = read_sheet(path, sheet_index)
|
9
|
-
@tables = []
|
10
|
-
tables.each do |rows|
|
11
|
-
@tables << Condition::Table.new(rows)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
def exec(db)
|
16
|
-
@tables.each do |table|
|
17
|
-
table.delete(db)
|
18
|
-
table.insert(db)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
23
|
-
end
|
data/lib/condition/reader.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require 'roo'
|
3
|
-
|
4
|
-
module Condition
|
5
|
-
module Reader
|
6
|
-
def read_sheet(path, sheet_index)
|
7
|
-
ss = Roo::Spreadsheet.open(path)
|
8
|
-
ss.default_sheet = ss.sheets[sheet_index]
|
9
|
-
row_index = 1
|
10
|
-
res = []
|
11
|
-
while true
|
12
|
-
break if nil == ss.cell(row_index, 1)
|
13
|
-
table = []
|
14
|
-
while true
|
15
|
-
row = read_row(ss, row_index)
|
16
|
-
row_index += 1
|
17
|
-
break if 0 == row.size
|
18
|
-
table << row
|
19
|
-
end
|
20
|
-
res << table
|
21
|
-
end
|
22
|
-
res
|
23
|
-
end
|
24
|
-
|
25
|
-
def read_row(ss, row_index)
|
26
|
-
column_index = 1
|
27
|
-
result = []
|
28
|
-
while true
|
29
|
-
value = ss.cell(row_index, column_index)
|
30
|
-
return result if nil == value
|
31
|
-
result << value
|
32
|
-
column_index += 1
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|