pokotarou 1.2.0 → 1.2.1

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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pokotarou.rb +21 -38
  3. data/lib/pokotarou/additional_arguments/main.rb +24 -0
  4. data/lib/pokotarou/additional_methods/main.rb +49 -0
  5. data/lib/pokotarou/additional_variables/main.rb +28 -0
  6. data/lib/pokotarou/parser/const_parser.rb +25 -0
  7. data/lib/pokotarou/parser/loop_expression_parser.rb +32 -0
  8. data/lib/pokotarou/parser/parser.rb +108 -0
  9. data/lib/pokotarou/parser/parser_domain.rb +40 -0
  10. data/lib/pokotarou/parser/return_expression_parser..rb +27 -0
  11. data/lib/pokotarou/parser/seed_data_expression_parser.rb +18 -0
  12. data/lib/pokotarou/registration_config_maker/column_domain.rb +17 -0
  13. data/lib/pokotarou/registration_config_maker/config_domain.rb +43 -0
  14. data/lib/pokotarou/registration_config_maker/grouping_option_setter.rb +28 -0
  15. data/lib/pokotarou/registration_config_maker/import_option_setter.rb +13 -0
  16. data/lib/pokotarou/registration_config_maker/main.rb +58 -0
  17. data/lib/pokotarou/registration_config_maker/model_option_setter.rb +65 -0
  18. data/lib/pokotarou/registration_config_maker/template_option_setter.rb +63 -0
  19. data/lib/pokotarou/registration_config_updater/array_utils.rb +15 -0
  20. data/lib/pokotarou/registration_config_updater/convert_config.rb +28 -0
  21. data/lib/pokotarou/registration_config_updater/default_value_maker.rb +32 -0
  22. data/lib/pokotarou/registration_config_updater/main.rb +170 -0
  23. data/lib/pokotarou/registration_config_updater/option_config.rb +53 -0
  24. data/lib/pokotarou/seed_data_register/main.rb +81 -0
  25. data/lib/pokotarou/version.rb +1 -1
  26. metadata +24 -15
  27. data/lib/pokotarou/additional_methods.rb +0 -40
  28. data/lib/pokotarou/additional_variables/additional_variables.rb +0 -33
  29. data/lib/pokotarou/additional_variables/def_variable.rb +0 -3
  30. data/lib/pokotarou/arguments/arguments.rb +0 -24
  31. data/lib/pokotarou/arguments/def_args.rb +0 -1
  32. data/lib/pokotarou/array_operation.rb +0 -13
  33. data/lib/pokotarou/converter.rb +0 -23
  34. data/lib/pokotarou/data_register.rb +0 -233
  35. data/lib/pokotarou/data_structure.rb +0 -187
  36. data/lib/pokotarou/expression_parser.rb +0 -233
  37. data/lib/pokotarou/file_loader.rb +0 -16
  38. data/lib/pokotarou/option.rb +0 -46
  39. data/lib/pokotarou/seeder.rb +0 -29
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0313ae9034a4b9ed1a64829a7d16a1811df5da6937f5639a8e3700a7c658a211
4
- data.tar.gz: b7b90ac0f1fd81f2fb11e015ee0cfd6b8b38544f4e0ed272ee1a834dc05cf340
3
+ metadata.gz: cb37e93ab913cfc45d6bb0c06cbfec3149ac957e0592ef12d62f1ad6d3b0146e
4
+ data.tar.gz: c67cccf940b65008a991684a9603a99395aca02a9137613331680dc23612b841
5
5
  SHA512:
6
- metadata.gz: 79b8112bd089213e28269d6cced5a1cc4157453079a3502218d4afecc01864393a6aab6dad7dc238dd257c8b47e0ba53c0fface455e2f32fa590bab8fa6fda02
7
- data.tar.gz: 27462bd7caa6e7173a623fdbabaa406141a6cbd80618c70e7581355f2521d3921b75b0225f1503b3236aad45efab3645b8505b92033cabd21163c93ea9102028
6
+ metadata.gz: 870208b9d5b2449ccd6bc1884bf0a78596da211d261deccba8353919fec4a617925cbcdeaf2330949d34c07370e89b24ad8649eef3c28aa8fe0f41b5602bab3c
7
+ data.tar.gz: 406ad8070133722c71dcebf8b2df12f2471563b0e0ad15f4647d41a62025c20e85a32ba2334fee1951966e6b77fb8815e23f668e4f5320c92cfb57d26f6f3e87
@@ -1,31 +1,30 @@
1
- Dir[File.expand_path('../pokotarou', __FILE__) << '/*.rb'].each do |file|
2
- require file
3
- end
4
-
5
1
  require "activerecord-import"
2
+ require "pokotarou/registration_config_maker/main.rb"
3
+ require "pokotarou/seed_data_register/main.rb"
4
+ require "pokotarou/parser/const_parser.rb"
6
5
 
7
6
  module Pokotarou
8
7
  class Operater
9
8
  class NotFoundLoader < StandardError; end
10
9
  class << self
11
10
  def execute input
12
- init_proc()
11
+ AdditionalMethods::Main.init()
13
12
 
14
13
  # if input is filepath, generate config_data
15
14
  return_val =
16
15
  if input.kind_of?(String)
17
- DataRegister.register(gen_config(input))
16
+ SeedDataRegister::Main.register(gen_config(input))
18
17
  else
19
- DataRegister.register(input)
18
+ SeedDataRegister::Main.register(input)
20
19
  end
21
20
 
22
- AdditionalMethods.remove_filepathes_from_yml()
21
+ AdditionalMethods::Main.remove_filepathes_from_yml()
23
22
 
24
23
  return_val
25
24
  end
26
25
 
27
26
  def pipeline_execute input_arr
28
- init_proc()
27
+ AdditionalMethods::Main.init()
29
28
 
30
29
  return_vals = []
31
30
  input_arr.each do |e|
@@ -46,37 +45,36 @@ module Pokotarou
46
45
  set_args(e[:args])
47
46
 
48
47
  return_vals << Pokotarou.execute(handler.get_data())
49
- AdditionalMethods.remove_filepathes_from_yml()
48
+ AdditionalMethods::Main.remove_filepathes_from_yml()
50
49
  end
51
50
 
52
51
  return_vals
53
52
  end
54
53
 
55
54
  def import filepath
56
- init_proc()
57
-
58
- AdditionalMethods.import(filepath)
55
+ AdditionalMethods::Main.init()
56
+ AdditionalMethods::Main.import(filepath)
59
57
  end
60
58
 
61
59
  def set_args hash
62
- Arguments.import(hash)
60
+ AdditionalArguments::Main.import(hash)
63
61
  end
64
62
 
65
63
  def reset
66
- AdditionalMethods.remove()
67
- Arguments.remove()
68
- AdditionalVariables.remove()
64
+ AdditionalMethods::Main.remove()
65
+ AdditionalArguments::Main.remove()
66
+ AdditionalVariables::Main.remove()
69
67
  @handler_chache = {}
70
68
  end
71
69
 
72
70
  def gen_handler filepath
73
- init_proc()
71
+ AdditionalMethods::Main.init()
74
72
 
75
73
  PokotarouHandler.new(gen_config(filepath))
76
74
  end
77
75
 
78
76
  def gen_handler_with_cache filepath
79
- init_proc()
77
+ AdditionalMethods::Main.init()
80
78
 
81
79
  @handler_cache ||= {}
82
80
  @handler_cache[filepath] ||= PokotarouHandler.new(gen_config(filepath))
@@ -85,28 +83,13 @@ module Pokotarou
85
83
  end
86
84
 
87
85
  private
88
- def init_proc
89
- AdditionalMethods.init()
90
- end
91
86
 
92
87
  def gen_config filepath
93
- contents = load_file(filepath)
94
- set_const_val_config(contents)
95
- DataStructure.gen(contents)
96
- end
97
-
98
- def set_const_val_config contents
99
- AdditionalVariables.set_const(contents)
100
- end
101
-
102
- def load_file filepath
103
- case File.extname(filepath)
104
- when ".yml"
105
- return YmlLoader.load(filepath)
106
- else
107
- raise NotFoundLoader.new("not found loader")
108
- end
88
+ contents = YAML.load_file(filepath).deep_symbolize_keys!
89
+ AdditionalVariables::Main.set_const(contents)
90
+ RegistrationConfigMaker::Main.gen(contents)
109
91
  end
92
+
110
93
  end
111
94
  end
112
95
  end
@@ -0,0 +1,24 @@
1
+ module Pokotarou
2
+ class MisMatchArgType < StandardError; end
3
+ class AdditionalArguments
4
+ module Main
5
+ class << self
6
+ @args = nil
7
+ attr_reader :args
8
+
9
+ def import hash_data
10
+ unless hash_data.kind_of?(Hash)
11
+ raise MisMatchArgType.new("Please use Hash for args")
12
+ end
13
+
14
+ @args = hash_data
15
+ end
16
+
17
+ def remove
18
+ @args = nil
19
+ end
20
+
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,49 @@
1
+ module Pokotarou
2
+ module ::Pokotarou::AdditionalMethods
3
+ module Main
4
+ class << self
5
+ attr_reader :filepathes
6
+ attr_reader :filepathes_from_yml
7
+
8
+ @filepathes = []
9
+ @filepathes_from_yml = []
10
+
11
+ def init
12
+ @filepathes ||= []
13
+ @filepathes_from_yml = []
14
+ end
15
+
16
+ def import filepath
17
+ add(@filepathes, filepath)
18
+ end
19
+
20
+ def import_from_yml filepath
21
+ add(@filepathes_from_yml, filepath)
22
+ end
23
+
24
+ def remove
25
+ @filepathes = []
26
+ @filepathes_from_yml = []
27
+ end
28
+
29
+ def remove_filepathes_from_yml
30
+ @filepathes_from_yml = []
31
+ end
32
+
33
+ def load
34
+ @filepathes.each do |filepath|; require filepath end
35
+ @filepathes_from_yml.each do |filepath|; require filepath end
36
+ end
37
+
38
+ private
39
+ def add filepath_arr, filepath
40
+ if filepath.instance_of?(Array)
41
+ filepath_arr.concat(filepath)
42
+ else
43
+ filepath_arr.push(filepath)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,28 @@
1
+ module Pokotarou
2
+ class AdditionalVariables
3
+ module Main
4
+ class << self
5
+ CONST_KEY = :"const'"
6
+ @const = {}
7
+ attr_reader :const
8
+
9
+ def set_const data
10
+ return {} unless data.has_key?(CONST_KEY)
11
+ @const = data[CONST_KEY]
12
+
13
+ # parse expression configlation
14
+ @const.each do |key, val|
15
+ @const[key] = ConstParser.parse(val)
16
+ end
17
+
18
+ data.delete(CONST_KEY)
19
+ end
20
+
21
+ def remove
22
+ @const = {}
23
+ end
24
+
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,25 @@
1
+ require "pokotarou/parser/parser.rb"
2
+
3
+ # for const variables
4
+ module Pokotarou
5
+ class ConstParser < ExpressionParser
6
+ class << self
7
+ private
8
+ def expression_process val, _, _
9
+ # remove '<>'
10
+ expression = val.strip[1..-2]
11
+ ::Pokotarou::AdditionalMethods::Main.load
12
+ return self.parse(eval(expression))
13
+ end
14
+
15
+ def nothing_apply_process val
16
+ # for escape \\
17
+ val.instance_of?(String) ? val.tr("\\","") : val
18
+ end
19
+
20
+ def output_error
21
+ ParseError.new("Failed Const Expression parse: #{e.message}")
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,32 @@
1
+ require "pokotarou/parser/parser.rb"
2
+
3
+ # for loop data
4
+ module Pokotarou
5
+ class LoopExpressionParser < ExpressionParser
6
+ class << self
7
+ private
8
+ def array_procees val
9
+ val.size
10
+ end
11
+
12
+ def foreign_key_process val, maked_col
13
+ # remove 'F|'
14
+ str_model = val.sub(FOREIGN_KEY_SYMBOL, "")
15
+ model = eval(str_model)
16
+ return model.pluck(:id).size
17
+ end
18
+
19
+ def integer_process val
20
+ val
21
+ end
22
+
23
+ def nil_process _
24
+ 1
25
+ end
26
+
27
+ def output_error e
28
+ ParseError.new("Failed Loop Expression parse: #{e.message}")
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,108 @@
1
+ require "pokotarou/additional_variables/main.rb"
2
+ require "pokotarou/additional_methods/main.rb"
3
+ require "pokotarou/additional_arguments/main.rb"
4
+ require "pokotarou/parser/parser_domain.rb"
5
+ require "pokotarou/p_tool.rb"
6
+
7
+
8
+ module Pokotarou
9
+ class ParseError < StandardError; end
10
+ FOREIGN_KEY_SYMBOL = "F|"
11
+ COLUMN_SYMBOL = "C|"
12
+
13
+ class ExpressionParser
14
+ class << self
15
+
16
+ def args; ::Pokotarou::AdditionalArguments::Main.args end
17
+ def const; ::Pokotarou::AdditionalVariables::Main.const end
18
+
19
+ def parse config_val, maked = nil, maked_col = nil
20
+ begin
21
+ case
22
+ # Array
23
+ when ParserDomain.is_array?(config_val)
24
+ array_procees(config_val)
25
+
26
+ # ForeignKey
27
+ when ParserDomain.is_foreign_key?(config_val)
28
+ foreign_key_process(config_val, maked_col)
29
+
30
+ # Column
31
+ when ParserDomain.is_column_symbol?(config_val)
32
+ column_symbol_process(config_val, maked_col)
33
+
34
+ # Expression
35
+ when ParserDomain.is_expression?(config_val)
36
+ expression_process(config_val, maked, maked_col)
37
+
38
+ # Integer
39
+ when ParserDomain.is_integer?(config_val)
40
+ integer_process(config_val)
41
+
42
+ # NeedUpdate
43
+ when ParserDomain.is_need_update?(config_val)
44
+ need_update_process(config_val, maked, maked_col)
45
+
46
+ # Nil
47
+ when ParserDomain.is_nil?(config_val)
48
+ nil_process(config_val)
49
+
50
+ # Other
51
+ else
52
+ nothing_apply_process(config_val)
53
+ end
54
+ rescue => e
55
+ output_error(e)
56
+ end
57
+ end
58
+
59
+ private
60
+ def array_procees val
61
+ return val
62
+ end
63
+
64
+ def foreign_key_process val, maked_col
65
+ # remove 'F|'
66
+ str_model = val.sub(FOREIGN_KEY_SYMBOL, "")
67
+ model = eval(str_model)
68
+ return model.pluck(:id)
69
+ end
70
+
71
+ def column_symbol_process val, maked_col
72
+ # remove 'C|'
73
+ str_model, column = val.sub(COLUMN_SYMBOL, "").split("|")
74
+ model = eval(str_model)
75
+ elemnts = model.pluck(column.to_sym)
76
+ return elemnts.concat(maked_col[str_model.to_sym][column.to_sym])
77
+ end
78
+
79
+ def expression_process val, maked, maked_col
80
+ # remove '<>'
81
+ expression = val.strip[1..-2]
82
+ ::Pokotarou::AdditionalMethods::Main.load
83
+ return self.parse(eval(expression), maked, maked_col)
84
+ end
85
+
86
+ def integer_process val
87
+ nothing_apply_process(val)
88
+ end
89
+
90
+ def need_update_process val, maked, maked_col
91
+ return self.parse(val[:NeedUpdate], maked, maked_col)
92
+ end
93
+
94
+ def nil_process val
95
+ nothing_apply_process(val)
96
+ end
97
+
98
+ def nothing_apply_process val
99
+ # for escape \\
100
+ val.instance_of?(String) ? val.tr("\\","") : val
101
+ end
102
+
103
+ def output_error e
104
+ raise ParseError.new("Failed Expression parse:#{e.message}")
105
+ end
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,40 @@
1
+ module Pokotarou
2
+ class ParserDomain
3
+ class << self
4
+ FOREIGN_KEY_REGEXP = /^F\|[A-Z][:A-Za-z0-9]*$/
5
+ def is_foreign_key? val
6
+ return false unless val.kind_of?(String)
7
+ FOREIGN_KEY_REGEXP =~ val
8
+ end
9
+
10
+ COLUMN_REGEXP = /^C\|[A-Z][:A-Za-z0-9]*\|[a-z][:a-z0-9]*$/
11
+ def is_column_symbol? val
12
+ return false unless val.kind_of?(String)
13
+ COLUMN_REGEXP =~ val
14
+ end
15
+
16
+ EXPRESSION_REGEXP = /^\s*<.*>\s*$/
17
+ def is_expression? val
18
+ return false unless val.kind_of?(String)
19
+ EXPRESSION_REGEXP =~ val
20
+ end
21
+
22
+ def is_array? val
23
+ val.instance_of?(Array)
24
+ end
25
+
26
+ def is_integer? val
27
+ val.instance_of?(Integer)
28
+ end
29
+
30
+ def is_need_update? val
31
+ return false unless val.kind_of?(Hash)
32
+ val.has_key?(:NeedUpdate)
33
+ end
34
+
35
+ def is_nil? val
36
+ val.nil?
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,27 @@
1
+ require "pokotarou/parser/parser.rb"
2
+
3
+ # for return variables
4
+ module Pokotarou
5
+ class ReturnExpressionParser < ExpressionParser
6
+ class << self
7
+ private
8
+ def output_error e
9
+ ParseError.new("Failed Const Expression parse:#{e.message}")
10
+ end
11
+
12
+ def foreign_key_process val, _
13
+ # remove 'F|'
14
+ str_model = val.sub(FOREIGN_KEY_SYMBOL, "")
15
+ model = eval(str_model)
16
+ return model.pluck(:id)
17
+ end
18
+
19
+ def column_symbol_process val, _
20
+ # remove 'C|'
21
+ str_model, column = val.sub(COLUMN_SYMBOL, "").split("|")
22
+ model = eval(str_model)
23
+ return model.pluck(column.to_sym)
24
+ end
25
+ end
26
+ end
27
+ end