pokotarou 1.1.5 → 1.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pokotarou/additional_methods.rb +30 -4
- data/lib/pokotarou/additional_variables/additional_variables.rb +18 -9
- data/lib/pokotarou/additional_variables/def_variable.rb +3 -0
- data/lib/pokotarou/data_register.rb +13 -9
- data/lib/pokotarou/data_structure.rb +9 -0
- data/lib/pokotarou/expression_parser.rb +26 -6
- data/lib/pokotarou/p_tool.rb +38 -0
- data/lib/pokotarou/version.rb +1 -1
- data/lib/pokotarou.rb +17 -6
- metadata +4 -3
- data/lib/pokotarou/additional_variables/def_const.rb +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f260f6c90328001a3c729c61542b44c05074d7c411956d5664252503fbac7823
|
4
|
+
data.tar.gz: 87fe8c2c794c6d005ec1a6d55f92c15ceb955ffea329459c7817eb08a785f9fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be2671c30d814129c9dd1e813bdff9c807555ca1ca57edaeea5a5dd23d770ce52d341314fb2a8d4d3f07926e4e95d36e6a457be0ba08345ac29c27ba96010560
|
7
|
+
data.tar.gz: d3f264b79c5fc9e8e6c910e819a2fb9b43bb477934bb2686a8abbd60f56750abd7297662c65abcc3f549d038029ccfef008b91a6995df7a3e0167c131daf8b51
|
@@ -1,14 +1,40 @@
|
|
1
1
|
module AdditionalMethods
|
2
2
|
class << self
|
3
|
-
|
4
|
-
attr_reader :
|
3
|
+
attr_reader :filepathes
|
4
|
+
attr_reader :filepathes_from_yml
|
5
|
+
|
6
|
+
@filepathes = []
|
7
|
+
@filepathes_from_yml = []
|
8
|
+
|
9
|
+
def init
|
10
|
+
@filepathes ||= []
|
11
|
+
@filepathes_from_yml = []
|
12
|
+
end
|
5
13
|
|
6
14
|
def import filepath
|
7
|
-
@
|
15
|
+
add(@filepathes, filepath)
|
16
|
+
end
|
17
|
+
|
18
|
+
def import_from_yml filepath
|
19
|
+
add(@filepathes_from_yml, filepath)
|
8
20
|
end
|
9
21
|
|
10
22
|
def remove
|
11
|
-
@
|
23
|
+
@filepathes = []
|
24
|
+
@filepathes_from_yml = []
|
25
|
+
end
|
26
|
+
|
27
|
+
def remove_filepathes_from_yml
|
28
|
+
@filepathes_from_yml = []
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
def add filepath_arr, filepath
|
33
|
+
if filepath.instance_of?(Array)
|
34
|
+
filepath_arr.concat(filepath)
|
35
|
+
else
|
36
|
+
filepath_arr.push(filepath)
|
37
|
+
end
|
12
38
|
end
|
13
39
|
end
|
14
40
|
end
|
@@ -1,24 +1,33 @@
|
|
1
1
|
module AdditionalVariables
|
2
2
|
class << self
|
3
3
|
CONST_KEY = :"const'"
|
4
|
-
@const =
|
4
|
+
@const = {}
|
5
5
|
attr_reader :const
|
6
|
-
|
7
|
-
def
|
8
|
-
|
6
|
+
|
7
|
+
def set_const data
|
8
|
+
set_const_variables(data)
|
9
|
+
end
|
10
|
+
|
11
|
+
def remove
|
12
|
+
@const = {}
|
13
|
+
end
|
14
|
+
|
15
|
+
def filepath
|
16
|
+
"pokotarou/additional_variables/def_variable.rb"
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
def set_const_variables data
|
21
|
+
return {} unless data.has_key?(CONST_KEY)
|
9
22
|
@const = data[CONST_KEY]
|
10
23
|
|
11
24
|
# parse expression configlation
|
12
25
|
@const.each do |key, val|
|
13
|
-
@const[key] =
|
26
|
+
@const[key] = ConstParser.parse(val)
|
14
27
|
end
|
15
28
|
|
16
29
|
data.delete(CONST_KEY)
|
17
30
|
end
|
18
31
|
|
19
|
-
def filepath
|
20
|
-
"pokotarou/additional_variables/def_const.rb"
|
21
|
-
end
|
22
|
-
|
23
32
|
end
|
24
33
|
end
|
@@ -1,12 +1,14 @@
|
|
1
|
-
|
1
|
+
require "pokotarou/additional_variables/additional_variables.rb"
|
2
|
+
|
3
|
+
class RegisterError < StandardError; end
|
2
4
|
class SeedError < StandardError; end
|
3
5
|
|
4
6
|
class DataRegister
|
5
7
|
class << self
|
6
8
|
def register data
|
7
9
|
# init maked to accumulate maded data
|
8
|
-
maked = {}
|
9
|
-
maked_col = {}
|
10
|
+
maked = Hash.new { |h,k| h[k] = Hash.new(&h.default_proc) }
|
11
|
+
maked_col = Hash.new { |h,k| h[k] = {} }
|
10
12
|
# init model_data to cache data of model
|
11
13
|
model_cache = {}
|
12
14
|
ActiveRecord::Base.transaction do
|
@@ -56,7 +58,7 @@ class DataRegister
|
|
56
58
|
print "\e[0m"
|
57
59
|
puts ""
|
58
60
|
|
59
|
-
raise
|
61
|
+
raise RegisterError.new
|
60
62
|
end
|
61
63
|
end
|
62
64
|
end
|
@@ -155,6 +157,13 @@ class DataRegister
|
|
155
157
|
end
|
156
158
|
end
|
157
159
|
|
160
|
+
def update_let_key let, maked, maked_col
|
161
|
+
let.each do |key, val|
|
162
|
+
# TODO: run only maked_col or make key
|
163
|
+
AdditionalVariables.let[key] = ExpressionParser.parse(val, maked, maked_col)
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
158
167
|
def apply_autoincrement? autoincrement_flg
|
159
168
|
# default true
|
160
169
|
return true if autoincrement_flg.nil?
|
@@ -199,17 +208,12 @@ class DataRegister
|
|
199
208
|
|
200
209
|
def update_maked_data maked, sym_block, sym_model, col, seed
|
201
210
|
# maked: { key: Model, value: {key: col1, val: [col1_element, col1_element]} }
|
202
|
-
maked[sym_block] ||= {}
|
203
|
-
maked[sym_block][sym_model] ||= {}
|
204
211
|
maked[sym_block][sym_model][col] = seed
|
205
212
|
end
|
206
213
|
|
207
214
|
def update_maked_col maked_col, sym_model, column, vals
|
208
|
-
maked_col[sym_model] ||= {}
|
209
215
|
maked_col[sym_model][column] ||= []
|
210
216
|
maked_col[sym_model][column].concat(vals)
|
211
|
-
|
212
|
-
maked_col
|
213
217
|
end
|
214
218
|
|
215
219
|
def output_log log
|
@@ -1,7 +1,10 @@
|
|
1
|
+
require "pokotarou/additional_methods.rb"
|
2
|
+
|
1
3
|
class DataStructure
|
2
4
|
class << self
|
3
5
|
def gen data
|
4
6
|
execute_template_option_setting(data)
|
7
|
+
execute_import_setting(data)
|
5
8
|
# return data structure bellow
|
6
9
|
# [{ block_name => { model_name => { column_configration }}}, ...]
|
7
10
|
data.reduce({}) do |acc, r|
|
@@ -17,6 +20,12 @@ class DataStructure
|
|
17
20
|
|
18
21
|
private
|
19
22
|
|
23
|
+
def execute_import_setting data
|
24
|
+
return unless data.has_key?(:"import'")
|
25
|
+
AdditionalMethods.import_from_yml(data[:"import'"])
|
26
|
+
data.delete(:"import'")
|
27
|
+
end
|
28
|
+
|
20
29
|
def execute_template_option_setting data
|
21
30
|
return unless data.has_key?(:"template'")
|
22
31
|
templates = data[:"template'"]
|
@@ -1,12 +1,22 @@
|
|
1
1
|
require "pokotarou/additional_methods.rb"
|
2
2
|
require "pokotarou/additional_variables/additional_variables.rb"
|
3
3
|
require "pokotarou/arguments/arguments.rb"
|
4
|
+
require "pokotarou/p_tool.rb"
|
5
|
+
|
6
|
+
def load_filepath
|
7
|
+
require AdditionalVariables.filepath
|
8
|
+
require Arguments.filepath
|
9
|
+
AdditionalMethods.filepathes.each do |filepath|; require filepath end
|
10
|
+
AdditionalMethods.filepathes_from_yml.each do |filepath|; require filepath end
|
11
|
+
end
|
12
|
+
|
4
13
|
class ParseError < StandardError; end
|
5
14
|
FOREIGN_KEY_SYMBOL = "F|"
|
6
15
|
COLUMN_SYMBOL = "C|"
|
7
16
|
|
8
17
|
class ExpressionParser
|
9
18
|
class << self
|
19
|
+
|
10
20
|
def parse config_val, maked = nil, maked_col = nil
|
11
21
|
begin
|
12
22
|
case
|
@@ -29,6 +39,10 @@ class ExpressionParser
|
|
29
39
|
# Integer
|
30
40
|
when is_integer?(config_val)
|
31
41
|
integer_process(config_val)
|
42
|
+
|
43
|
+
# NeedUpdate
|
44
|
+
when is_need_update?(config_val)
|
45
|
+
need_update_process(config_val, maked, maked_col)
|
32
46
|
|
33
47
|
# Nil
|
34
48
|
when is_nil?(config_val)
|
@@ -66,9 +80,7 @@ class ExpressionParser
|
|
66
80
|
def expression_process val, maked, maked_col
|
67
81
|
# remove '<>'
|
68
82
|
expression = val.strip[1..-2]
|
69
|
-
|
70
|
-
require AdditionalMethods.filepath if AdditionalMethods.filepath.present?
|
71
|
-
require Arguments.filepath if Arguments.filepath.present?
|
83
|
+
load_filepath()
|
72
84
|
return self.parse(eval(expression), maked, maked_col)
|
73
85
|
end
|
74
86
|
|
@@ -76,6 +88,10 @@ class ExpressionParser
|
|
76
88
|
nothing_apply_process(val)
|
77
89
|
end
|
78
90
|
|
91
|
+
def need_update_process val, maked, maked_col
|
92
|
+
return self.parse(val[:NeedUpdate], maked, maked_col)
|
93
|
+
end
|
94
|
+
|
79
95
|
def nil_process val
|
80
96
|
nothing_apply_process(val)
|
81
97
|
end
|
@@ -160,14 +176,13 @@ class LoopExpressionParser < ExpressionParser
|
|
160
176
|
end
|
161
177
|
|
162
178
|
# for const variables
|
163
|
-
class
|
179
|
+
class ConstParser < ExpressionParser
|
164
180
|
class << self
|
165
181
|
private
|
166
182
|
def expression_process val, _, _
|
167
183
|
# remove '<>'
|
168
184
|
expression = val.strip[1..-2]
|
169
|
-
|
170
|
-
require Arguments.filepath if Arguments.filepath.present?
|
185
|
+
load_filepath()
|
171
186
|
return self.parse(eval(expression))
|
172
187
|
end
|
173
188
|
|
@@ -208,6 +223,11 @@ def is_integer? val
|
|
208
223
|
val.instance_of?(Integer)
|
209
224
|
end
|
210
225
|
|
226
|
+
def is_need_update? val
|
227
|
+
return false unless val.kind_of?(Hash)
|
228
|
+
val.has_key?(:NeedUpdate)
|
229
|
+
end
|
230
|
+
|
211
231
|
def is_nil? val
|
212
232
|
val.nil?
|
213
233
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Ptool
|
2
|
+
class << self
|
3
|
+
def gen_br_text
|
4
|
+
["text\ntext"]
|
5
|
+
end
|
6
|
+
|
7
|
+
def gen_created_at n = 7, datetime_str = DateTime.now.to_s, with_random_time = false
|
8
|
+
datetime = DateTime.parse(datetime_str)
|
9
|
+
n.times.reduce([]) do |acc, index|
|
10
|
+
hours_num = 0
|
11
|
+
minutes_num = 0
|
12
|
+
hours_num, minutes_num = get_random_time() if with_random_time
|
13
|
+
|
14
|
+
acc.push(datetime + index.day + hours_num.hours + minutes_num.minutes)
|
15
|
+
|
16
|
+
acc
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def gen_updated_at created_arr, with_random_time = false
|
21
|
+
created_arr.each.reduce([]) do |acc, created_datetime|
|
22
|
+
hours_num = 5
|
23
|
+
minutes_num = 10
|
24
|
+
hours_num, minutes_num = get_random_time() if with_random_time
|
25
|
+
|
26
|
+
acc.push(created_datetime + hours_num.hours + minutes_num.minutes)
|
27
|
+
|
28
|
+
acc
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def get_random_time
|
35
|
+
[ rand(24) + 1, second_num = rand(59) + 1]
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/lib/pokotarou/version.rb
CHANGED
data/lib/pokotarou.rb
CHANGED
@@ -9,15 +9,24 @@ module Pokotarou
|
|
9
9
|
|
10
10
|
class << self
|
11
11
|
def execute input
|
12
|
+
AdditionalMethods.init()
|
13
|
+
|
12
14
|
# if input is filepath, generate config_data
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
return_val =
|
16
|
+
if input.kind_of?(String)
|
17
|
+
DataRegister.register(gen_config(input))
|
18
|
+
else
|
19
|
+
DataRegister.register(input)
|
20
|
+
end
|
21
|
+
|
22
|
+
AdditionalMethods.remove_filepathes_from_yml()
|
23
|
+
|
24
|
+
return_val
|
18
25
|
end
|
19
26
|
|
20
27
|
def pipeline_execute input_arr
|
28
|
+
AdditionalMethods.init()
|
29
|
+
|
21
30
|
return_vals = []
|
22
31
|
input_arr.each do |e|
|
23
32
|
handler = gen_handler_with_cache(e[:filepath])
|
@@ -37,6 +46,7 @@ module Pokotarou
|
|
37
46
|
set_args(e[:args])
|
38
47
|
|
39
48
|
return_vals << Pokotarou.execute(handler.get_data())
|
49
|
+
AdditionalMethods.remove_filepathes_from_yml()
|
40
50
|
end
|
41
51
|
|
42
52
|
return_vals
|
@@ -53,6 +63,7 @@ module Pokotarou
|
|
53
63
|
def reset
|
54
64
|
AdditionalMethods.remove()
|
55
65
|
Arguments.remove()
|
66
|
+
AdditionalVariables.remove()
|
56
67
|
@handler_chache = {}
|
57
68
|
end
|
58
69
|
|
@@ -76,7 +87,7 @@ module Pokotarou
|
|
76
87
|
end
|
77
88
|
|
78
89
|
def set_const_val_config contents
|
79
|
-
AdditionalVariables.
|
90
|
+
AdditionalVariables.set_const(contents)
|
80
91
|
end
|
81
92
|
|
82
93
|
def load_file filepath
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pokotarou
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kashiwara
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -51,7 +51,7 @@ files:
|
|
51
51
|
- lib/pokotarou.rb
|
52
52
|
- lib/pokotarou/additional_methods.rb
|
53
53
|
- lib/pokotarou/additional_variables/additional_variables.rb
|
54
|
-
- lib/pokotarou/additional_variables/
|
54
|
+
- lib/pokotarou/additional_variables/def_variable.rb
|
55
55
|
- lib/pokotarou/arguments/arguments.rb
|
56
56
|
- lib/pokotarou/arguments/def_args.rb
|
57
57
|
- lib/pokotarou/array_operation.rb
|
@@ -61,6 +61,7 @@ files:
|
|
61
61
|
- lib/pokotarou/expression_parser.rb
|
62
62
|
- lib/pokotarou/file_loader.rb
|
63
63
|
- lib/pokotarou/option.rb
|
64
|
+
- lib/pokotarou/p_tool.rb
|
64
65
|
- lib/pokotarou/pokotarou_handler.rb
|
65
66
|
- lib/pokotarou/seeder.rb
|
66
67
|
- lib/pokotarou/version.rb
|
@@ -1 +0,0 @@
|
|
1
|
-
def const; AdditionalVariables.const end
|