csv_decision2 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +3 -0
  3. data/.coveralls.yml +2 -0
  4. data/.gitignore +14 -0
  5. data/.rspec +2 -0
  6. data/.rubocop.yml +30 -0
  7. data/.travis.yml +6 -0
  8. data/CHANGELOG.md +85 -0
  9. data/Dockerfile +6 -0
  10. data/Gemfile +7 -0
  11. data/LICENSE +21 -0
  12. data/README.md +356 -0
  13. data/benchmarks/rufus_decision.rb +158 -0
  14. data/csv_decision2.gemspec +38 -0
  15. data/doc/CSVDecision/CellValidationError.html +143 -0
  16. data/doc/CSVDecision/Columns/Default.html +589 -0
  17. data/doc/CSVDecision/Columns/Dictionary.html +801 -0
  18. data/doc/CSVDecision/Columns/Entry.html +508 -0
  19. data/doc/CSVDecision/Columns.html +1259 -0
  20. data/doc/CSVDecision/Constant.html +254 -0
  21. data/doc/CSVDecision/Data.html +479 -0
  22. data/doc/CSVDecision/Decide.html +302 -0
  23. data/doc/CSVDecision/Decision.html +1011 -0
  24. data/doc/CSVDecision/Defaults.html +291 -0
  25. data/doc/CSVDecision/Dictionary/Entry.html +1147 -0
  26. data/doc/CSVDecision/Dictionary.html +426 -0
  27. data/doc/CSVDecision/Error.html +139 -0
  28. data/doc/CSVDecision/FileError.html +143 -0
  29. data/doc/CSVDecision/Function.html +240 -0
  30. data/doc/CSVDecision/Guard.html +245 -0
  31. data/doc/CSVDecision/Header.html +647 -0
  32. data/doc/CSVDecision/Index.html +741 -0
  33. data/doc/CSVDecision/Input.html +404 -0
  34. data/doc/CSVDecision/Load.html +296 -0
  35. data/doc/CSVDecision/Matchers/Constant.html +484 -0
  36. data/doc/CSVDecision/Matchers/Function.html +511 -0
  37. data/doc/CSVDecision/Matchers/Guard.html +503 -0
  38. data/doc/CSVDecision/Matchers/Matcher.html +507 -0
  39. data/doc/CSVDecision/Matchers/Numeric.html +415 -0
  40. data/doc/CSVDecision/Matchers/Pattern.html +491 -0
  41. data/doc/CSVDecision/Matchers/Proc.html +704 -0
  42. data/doc/CSVDecision/Matchers/Range.html +379 -0
  43. data/doc/CSVDecision/Matchers/Symbol.html +426 -0
  44. data/doc/CSVDecision/Matchers.html +1567 -0
  45. data/doc/CSVDecision/Numeric.html +259 -0
  46. data/doc/CSVDecision/Options.html +443 -0
  47. data/doc/CSVDecision/Parse.html +282 -0
  48. data/doc/CSVDecision/Paths.html +742 -0
  49. data/doc/CSVDecision/Result.html +1200 -0
  50. data/doc/CSVDecision/Scan/InputHashes.html +369 -0
  51. data/doc/CSVDecision/Scan.html +313 -0
  52. data/doc/CSVDecision/ScanRow.html +866 -0
  53. data/doc/CSVDecision/Symbol.html +256 -0
  54. data/doc/CSVDecision/Table.html +1470 -0
  55. data/doc/CSVDecision/TableValidationError.html +143 -0
  56. data/doc/CSVDecision/Validate.html +422 -0
  57. data/doc/CSVDecision.html +621 -0
  58. data/doc/_index.html +471 -0
  59. data/doc/class_list.html +51 -0
  60. data/doc/css/common.css +1 -0
  61. data/doc/css/full_list.css +58 -0
  62. data/doc/css/style.css +499 -0
  63. data/doc/file.README.html +421 -0
  64. data/doc/file_list.html +56 -0
  65. data/doc/frames.html +17 -0
  66. data/doc/index.html +421 -0
  67. data/doc/js/app.js +248 -0
  68. data/doc/js/full_list.js +216 -0
  69. data/doc/js/jquery.js +4 -0
  70. data/doc/method_list.html +1163 -0
  71. data/doc/top-level-namespace.html +110 -0
  72. data/docker-compose.yml +13 -0
  73. data/lib/csv_decision/columns.rb +192 -0
  74. data/lib/csv_decision/data.rb +92 -0
  75. data/lib/csv_decision/decision.rb +196 -0
  76. data/lib/csv_decision/defaults.rb +47 -0
  77. data/lib/csv_decision/dictionary.rb +180 -0
  78. data/lib/csv_decision/header.rb +83 -0
  79. data/lib/csv_decision/index.rb +107 -0
  80. data/lib/csv_decision/input.rb +121 -0
  81. data/lib/csv_decision/load.rb +36 -0
  82. data/lib/csv_decision/matchers/constant.rb +74 -0
  83. data/lib/csv_decision/matchers/function.rb +56 -0
  84. data/lib/csv_decision/matchers/guard.rb +142 -0
  85. data/lib/csv_decision/matchers/numeric.rb +44 -0
  86. data/lib/csv_decision/matchers/pattern.rb +94 -0
  87. data/lib/csv_decision/matchers/range.rb +95 -0
  88. data/lib/csv_decision/matchers/symbol.rb +149 -0
  89. data/lib/csv_decision/matchers.rb +220 -0
  90. data/lib/csv_decision/options.rb +124 -0
  91. data/lib/csv_decision/parse.rb +165 -0
  92. data/lib/csv_decision/paths.rb +78 -0
  93. data/lib/csv_decision/result.rb +204 -0
  94. data/lib/csv_decision/scan.rb +117 -0
  95. data/lib/csv_decision/scan_row.rb +142 -0
  96. data/lib/csv_decision/table.rb +101 -0
  97. data/lib/csv_decision/validate.rb +85 -0
  98. data/lib/csv_decision.rb +45 -0
  99. data/spec/csv_decision/columns_spec.rb +251 -0
  100. data/spec/csv_decision/constant_spec.rb +36 -0
  101. data/spec/csv_decision/data_spec.rb +50 -0
  102. data/spec/csv_decision/decision_spec.rb +19 -0
  103. data/spec/csv_decision/examples_spec.rb +242 -0
  104. data/spec/csv_decision/index_spec.rb +58 -0
  105. data/spec/csv_decision/input_spec.rb +55 -0
  106. data/spec/csv_decision/load_spec.rb +28 -0
  107. data/spec/csv_decision/matchers/function_spec.rb +82 -0
  108. data/spec/csv_decision/matchers/guard_spec.rb +170 -0
  109. data/spec/csv_decision/matchers/numeric_spec.rb +47 -0
  110. data/spec/csv_decision/matchers/pattern_spec.rb +183 -0
  111. data/spec/csv_decision/matchers/range_spec.rb +70 -0
  112. data/spec/csv_decision/matchers/symbol_spec.rb +67 -0
  113. data/spec/csv_decision/options_spec.rb +94 -0
  114. data/spec/csv_decision/parse_spec.rb +44 -0
  115. data/spec/csv_decision/table_spec.rb +683 -0
  116. data/spec/csv_decision_spec.rb +7 -0
  117. data/spec/data/invalid/empty.csv +0 -0
  118. data/spec/data/invalid/invalid_header1.csv +4 -0
  119. data/spec/data/invalid/invalid_header2.csv +4 -0
  120. data/spec/data/invalid/invalid_header3.csv +4 -0
  121. data/spec/data/invalid/invalid_header4.csv +4 -0
  122. data/spec/data/valid/benchmark_regexp.csv +10 -0
  123. data/spec/data/valid/index_example.csv +13 -0
  124. data/spec/data/valid/multi_column_index.csv +10 -0
  125. data/spec/data/valid/multi_column_index2.csv +12 -0
  126. data/spec/data/valid/options_in_file1.csv +5 -0
  127. data/spec/data/valid/options_in_file2.csv +5 -0
  128. data/spec/data/valid/options_in_file3.csv +13 -0
  129. data/spec/data/valid/regular_expressions.csv +11 -0
  130. data/spec/data/valid/simple_constants.csv +5 -0
  131. data/spec/data/valid/simple_example.csv +10 -0
  132. data/spec/data/valid/valid.csv +4 -0
  133. data/spec/spec_helper.rb +106 -0
  134. metadata +352 -0
@@ -0,0 +1,4 @@
1
+ #comment,
2
+ IN :input,BAD :output
3
+ input,#output
4
+ ,#end comment
@@ -0,0 +1,4 @@
1
+ #comment,
2
+ IN :input,BAD :-
3
+ input,#output
4
+ ,#end comment
@@ -0,0 +1,4 @@
1
+ #comment,
2
+ IN :input,IN :
3
+ input,#output
4
+ ,#end comment
@@ -0,0 +1,4 @@
1
+ #comment,
2
+ IN :input,IN :a-b
3
+ input,#output
4
+ ,#end comment
@@ -0,0 +1,10 @@
1
+ regexp_implicit
2
+ in:age, in:trait, out:salesperson
3
+ 18..35, maniac, Adelsky
4
+ 23..40, bad|maniac, Bronco
5
+ 36..50, bad.*, Espadas
6
+ 100..100, , Thorsten
7
+ > 100, maniac.*, Chester
8
+ 23..35, .*rich, Kerfelden
9
+ , cheerful, Swanson
10
+ , , Korolev
@@ -0,0 +1,13 @@
1
+ text_only
2
+ in:topic,in:region,out:team_member
3
+ sports,Europe,Alice
4
+ sports,,Bob
5
+ finance,America,Charlie
6
+ finance,Europe,Donald
7
+ finance,,Ernest
8
+ politics,Asia,Fujio
9
+ politics,America,Gilbert
10
+ politics,,Henry
11
+ sports,,Zach
12
+ finance,,Zach
13
+ politics,,Zach
@@ -0,0 +1,10 @@
1
+ #comment,
2
+ guard:,in :type, IN :input,OUT :output
3
+ :number.present?,integer,none,:=0
4
+ :number.blank?,integer,none,:=nil
5
+ :number.present?,integer,one,:=1
6
+ :number.blank?,integer,one,:=nil
7
+ :string.present?,string,none,0
8
+ :number.blank?,string,none,:=nil
9
+ :string.present?,string,one,1
10
+ :number.blank?,string,one,:=nil
@@ -0,0 +1,12 @@
1
+ #comment,
2
+ index : 2
3
+ guard:,in :type, IN :input,OUT :output
4
+ :number.present?,integer,none,:=0
5
+ :string.blank?,string,none,:=nil
6
+ :string.present?,string,none,0
7
+ :string.blank?,string,one,:=nil
8
+ :number.present?,integer,one,:=1
9
+ :number.blank?,integer,one,:=nil
10
+ :string.present?,string,one,1
11
+ :string.blank?,string,one,:=nil
12
+ :number.blank?,integer,none,:=nil
@@ -0,0 +1,5 @@
1
+ #comment,
2
+ accumulate
3
+ IN :input,OUT :output
4
+ input,#output
5
+ ,#end comment
@@ -0,0 +1,5 @@
1
+ #comment,
2
+ accumulate
3
+ regexp_implicit
4
+ IN :input,OUT :output
5
+ input,#output
@@ -0,0 +1,13 @@
1
+ #comment,
2
+ accumulate, index : 1
3
+ regexp_implicit
4
+ IN :input,OUT :output
5
+ none,:=0
6
+ one,:=1
7
+ two,:=2
8
+ three,:=3
9
+ :=nil,none
10
+ :=0,none
11
+ :=1,one
12
+ :=2,two
13
+ :=3,three
@@ -0,0 +1,11 @@
1
+ regexp_implicit
2
+ in:age, in:trait, out:salesperson
3
+ 18..35, maniac, Adelsky
4
+ 23..40, bad|maniac, Bronco
5
+ 36..50, bad.*, Espadas
6
+ 100..100, , Thorsten
7
+ 44..100, !~ maniac, Ojiisan
8
+ > 100, maniac.*, Chester
9
+ 23..35, .*rich, Kerfelden
10
+ , cheerful, Swanson
11
+ , maniac, Korolev
@@ -0,0 +1,5 @@
1
+ in :constant,out :type
2
+ :=nil, := nil
3
+ ==0, =0
4
+ :=100.0, =100.0
5
+ , Unrecognized
@@ -0,0 +1,10 @@
1
+ in:topic,in:region,out:team_member
2
+ sports,Europe,Alice
3
+ sports,,Bob
4
+ finance,America,Charlie
5
+ finance,Europe,Donald
6
+ finance,,Ernest
7
+ politics,Asia,Fujio
8
+ politics,America,Gilbert
9
+ politics,,Henry
10
+ ,,Zach
@@ -0,0 +1,4 @@
1
+ ,#input columns,#empty column,#output column,#empty column
2
+ #header,IN :input,,OUT :output,
3
+ #data,input,,#output,
4
+ ,,,#end comment,
@@ -0,0 +1,106 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # The generated `.rspec` file contains `--require spec_helper` which will cause
4
+ # this file to always be loaded, without a need to explicitly require it in any
5
+ # files.
6
+ #
7
+ # Given that it is always loaded, you are encouraged to keep this file as
8
+ # light-weight as possible. Requiring heavyweight dependencies from this file
9
+ # will add to the boot time of your test suite on EVERY test run, even for an
10
+ # individual file that may not need all of that loaded. Instead, consider making
11
+ # a separate helper file that requires the additional dependencies and performs
12
+ # the additional setup, and require it from the spec files that actually need
13
+ # it.
14
+ #
15
+ require 'active_support'
16
+ require 'active_support/core_ext'
17
+ require 'json'
18
+ require 'coveralls'
19
+ Coveralls.wear!
20
+
21
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
22
+ RSpec.configure do |config|
23
+ # rspec-expectations config goes here. You can use an alternate
24
+ # assertion/expectation library such as wrong or the stdlib/minitest
25
+ # assertions if you prefer.
26
+ config.expect_with :rspec do |expectations|
27
+ # This option will default to `true` in RSpec 4. It makes the `description`
28
+ # and `failure_message` of custom matchers include text for helper methods
29
+ # defined using `chain`, e.g.:
30
+ # be_bigger_than(2).and_smaller_than(4).description
31
+ # # => "be bigger than 2 and smaller than 4"
32
+ # ...rather than:
33
+ # # => "be bigger than 2"
34
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
35
+ end
36
+
37
+ # rspec-mocks config goes here. You can use an alternate test double
38
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
39
+ config.mock_with :rspec do |mocks|
40
+ # Prevents you from mocking or stubbing a method that does not exist on
41
+ # a real object. This is generally recommended, and will default to
42
+ # `true` in RSpec 4.
43
+ mocks.verify_partial_doubles = true
44
+ end
45
+
46
+ # This option will default to `:apply_to_host_groups` in RSpec 4 (and will
47
+ # have no way to turn it off -- the option exists only for backwards
48
+ # compatibility in RSpec 3). It causes shared context metadata to be
49
+ # inherited by the metadata hash of host groups and examples, rather than
50
+ # triggering implicit auto-inclusion in groups with matching metadata.
51
+ config.shared_context_metadata_behavior = :apply_to_host_groups
52
+
53
+ # The settings below are suggested to provide a good initial experience
54
+ # with RSpec, but feel free to customize to your heart's content.
55
+ =begin
56
+ # This allows you to limit a spec run to individual examples or groups
57
+ # you care about by tagging them with `:focus` metadata. When nothing
58
+ # is tagged with `:focus`, all examples get run. RSpec also provides
59
+ # aliases for `it`, `describe`, and `context` that include `:focus`
60
+ # metadata: `fit`, `fdescribe` and `fcontext`, respectively.
61
+ config.filter_run_when_matching :focus
62
+
63
+ # Allows RSpec to persist some state between runs in order to support
64
+ # the `--only-failures` and `--next-failure` CLI options. We recommend
65
+ # you configure your source control system to ignore this file.
66
+ config.example_status_persistence_file_path = "spec/examples.txt"
67
+
68
+ # Limits the available syntax to the non-monkey patched syntax that is
69
+ # recommended. For more details, see:
70
+ # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
71
+ # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
72
+ # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
73
+ config.disable_monkey_patching!
74
+
75
+ # This setting enables warnings. It's recommended, but in some cases may
76
+ # be too noisy due to issues in dependencies.
77
+ config.warnings = true
78
+
79
+ # Many RSpec users commonly either run the entire suite or an individual
80
+ # file, and it's useful to allow more verbose output when running an
81
+ # individual spec file.
82
+ if config.files_to_run.one?
83
+ # Use the documentation formatter for detailed output,
84
+ # unless a formatter has already been configured
85
+ # (e.g. via a command-line flag).
86
+ config.default_formatter = "doc"
87
+ end
88
+
89
+ # Print the 10 slowest examples and example groups at the
90
+ # end of the spec run, to help surface which specs are running
91
+ # particularly slow.
92
+ config.profile_examples = 10
93
+
94
+ # Run specs in random order to surface order dependencies. If you find an
95
+ # order dependency and want to debug it, you can fix the order by providing
96
+ # the seed, which is printed after each run.
97
+ # --seed 1234
98
+ config.order = :random
99
+
100
+ # Seed global randomization in this process using the `--seed` CLI option.
101
+ # Setting this allows you to use `--seed` to deterministically reproduce
102
+ # test failures related to randomization by passing the same `--seed` value
103
+ # as the one that triggered the failure.
104
+ Kernel.srand config.seed
105
+ =end
106
+ end
metadata ADDED
@@ -0,0 +1,352 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: csv_decision2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.1
5
+ platform: ruby
6
+ authors:
7
+ - Imamul Akhyar
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-03-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '7.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '7.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: benchmark-ips
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.7'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.7'
41
+ - !ruby/object:Gem::Dependency
42
+ name: benchmark-memory
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.1'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.1'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.1'
69
+ - !ruby/object:Gem::Dependency
70
+ name: oj
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.3'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.3'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '12.3'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '12.3'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3.7'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '3.7'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.52'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.52'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rufus-decision
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.3'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.3'
139
+ - !ruby/object:Gem::Dependency
140
+ name: simplecov
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '0.15'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '0.15'
153
+ description: CSV based Ruby decision tables.
154
+ email:
155
+ - imamulakhyar93@gmail.com
156
+ executables: []
157
+ extensions: []
158
+ extra_rdoc_files: []
159
+ files:
160
+ - ".codeclimate.yml"
161
+ - ".coveralls.yml"
162
+ - ".gitignore"
163
+ - ".rspec"
164
+ - ".rubocop.yml"
165
+ - ".travis.yml"
166
+ - CHANGELOG.md
167
+ - Dockerfile
168
+ - Gemfile
169
+ - LICENSE
170
+ - README.md
171
+ - benchmarks/rufus_decision.rb
172
+ - csv_decision2.gemspec
173
+ - doc/CSVDecision.html
174
+ - doc/CSVDecision/CellValidationError.html
175
+ - doc/CSVDecision/Columns.html
176
+ - doc/CSVDecision/Columns/Default.html
177
+ - doc/CSVDecision/Columns/Dictionary.html
178
+ - doc/CSVDecision/Columns/Entry.html
179
+ - doc/CSVDecision/Constant.html
180
+ - doc/CSVDecision/Data.html
181
+ - doc/CSVDecision/Decide.html
182
+ - doc/CSVDecision/Decision.html
183
+ - doc/CSVDecision/Defaults.html
184
+ - doc/CSVDecision/Dictionary.html
185
+ - doc/CSVDecision/Dictionary/Entry.html
186
+ - doc/CSVDecision/Error.html
187
+ - doc/CSVDecision/FileError.html
188
+ - doc/CSVDecision/Function.html
189
+ - doc/CSVDecision/Guard.html
190
+ - doc/CSVDecision/Header.html
191
+ - doc/CSVDecision/Index.html
192
+ - doc/CSVDecision/Input.html
193
+ - doc/CSVDecision/Load.html
194
+ - doc/CSVDecision/Matchers.html
195
+ - doc/CSVDecision/Matchers/Constant.html
196
+ - doc/CSVDecision/Matchers/Function.html
197
+ - doc/CSVDecision/Matchers/Guard.html
198
+ - doc/CSVDecision/Matchers/Matcher.html
199
+ - doc/CSVDecision/Matchers/Numeric.html
200
+ - doc/CSVDecision/Matchers/Pattern.html
201
+ - doc/CSVDecision/Matchers/Proc.html
202
+ - doc/CSVDecision/Matchers/Range.html
203
+ - doc/CSVDecision/Matchers/Symbol.html
204
+ - doc/CSVDecision/Numeric.html
205
+ - doc/CSVDecision/Options.html
206
+ - doc/CSVDecision/Parse.html
207
+ - doc/CSVDecision/Paths.html
208
+ - doc/CSVDecision/Result.html
209
+ - doc/CSVDecision/Scan.html
210
+ - doc/CSVDecision/Scan/InputHashes.html
211
+ - doc/CSVDecision/ScanRow.html
212
+ - doc/CSVDecision/Symbol.html
213
+ - doc/CSVDecision/Table.html
214
+ - doc/CSVDecision/TableValidationError.html
215
+ - doc/CSVDecision/Validate.html
216
+ - doc/_index.html
217
+ - doc/class_list.html
218
+ - doc/css/common.css
219
+ - doc/css/full_list.css
220
+ - doc/css/style.css
221
+ - doc/file.README.html
222
+ - doc/file_list.html
223
+ - doc/frames.html
224
+ - doc/index.html
225
+ - doc/js/app.js
226
+ - doc/js/full_list.js
227
+ - doc/js/jquery.js
228
+ - doc/method_list.html
229
+ - doc/top-level-namespace.html
230
+ - docker-compose.yml
231
+ - lib/csv_decision.rb
232
+ - lib/csv_decision/columns.rb
233
+ - lib/csv_decision/data.rb
234
+ - lib/csv_decision/decision.rb
235
+ - lib/csv_decision/defaults.rb
236
+ - lib/csv_decision/dictionary.rb
237
+ - lib/csv_decision/header.rb
238
+ - lib/csv_decision/index.rb
239
+ - lib/csv_decision/input.rb
240
+ - lib/csv_decision/load.rb
241
+ - lib/csv_decision/matchers.rb
242
+ - lib/csv_decision/matchers/constant.rb
243
+ - lib/csv_decision/matchers/function.rb
244
+ - lib/csv_decision/matchers/guard.rb
245
+ - lib/csv_decision/matchers/numeric.rb
246
+ - lib/csv_decision/matchers/pattern.rb
247
+ - lib/csv_decision/matchers/range.rb
248
+ - lib/csv_decision/matchers/symbol.rb
249
+ - lib/csv_decision/options.rb
250
+ - lib/csv_decision/parse.rb
251
+ - lib/csv_decision/paths.rb
252
+ - lib/csv_decision/result.rb
253
+ - lib/csv_decision/scan.rb
254
+ - lib/csv_decision/scan_row.rb
255
+ - lib/csv_decision/table.rb
256
+ - lib/csv_decision/validate.rb
257
+ - spec/csv_decision/columns_spec.rb
258
+ - spec/csv_decision/constant_spec.rb
259
+ - spec/csv_decision/data_spec.rb
260
+ - spec/csv_decision/decision_spec.rb
261
+ - spec/csv_decision/examples_spec.rb
262
+ - spec/csv_decision/index_spec.rb
263
+ - spec/csv_decision/input_spec.rb
264
+ - spec/csv_decision/load_spec.rb
265
+ - spec/csv_decision/matchers/function_spec.rb
266
+ - spec/csv_decision/matchers/guard_spec.rb
267
+ - spec/csv_decision/matchers/numeric_spec.rb
268
+ - spec/csv_decision/matchers/pattern_spec.rb
269
+ - spec/csv_decision/matchers/range_spec.rb
270
+ - spec/csv_decision/matchers/symbol_spec.rb
271
+ - spec/csv_decision/options_spec.rb
272
+ - spec/csv_decision/parse_spec.rb
273
+ - spec/csv_decision/table_spec.rb
274
+ - spec/csv_decision_spec.rb
275
+ - spec/data/invalid/empty.csv
276
+ - spec/data/invalid/invalid_header1.csv
277
+ - spec/data/invalid/invalid_header2.csv
278
+ - spec/data/invalid/invalid_header3.csv
279
+ - spec/data/invalid/invalid_header4.csv
280
+ - spec/data/valid/benchmark_regexp.csv
281
+ - spec/data/valid/index_example.csv
282
+ - spec/data/valid/multi_column_index.csv
283
+ - spec/data/valid/multi_column_index2.csv
284
+ - spec/data/valid/options_in_file1.csv
285
+ - spec/data/valid/options_in_file2.csv
286
+ - spec/data/valid/options_in_file3.csv
287
+ - spec/data/valid/regular_expressions.csv
288
+ - spec/data/valid/simple_constants.csv
289
+ - spec/data/valid/simple_example.csv
290
+ - spec/data/valid/valid.csv
291
+ - spec/spec_helper.rb
292
+ homepage: https://github.com/imamulakhyar93/csv_decision.git
293
+ licenses:
294
+ - MIT
295
+ metadata: {}
296
+ post_install_message:
297
+ rdoc_options: []
298
+ require_paths:
299
+ - lib
300
+ required_ruby_version: !ruby/object:Gem::Requirement
301
+ requirements:
302
+ - - ">="
303
+ - !ruby/object:Gem::Version
304
+ version: 2.7.0
305
+ required_rubygems_version: !ruby/object:Gem::Requirement
306
+ requirements:
307
+ - - ">="
308
+ - !ruby/object:Gem::Version
309
+ version: '0'
310
+ requirements: []
311
+ rubygems_version: 3.3.7
312
+ signing_key:
313
+ specification_version: 4
314
+ summary: CSV Decision implements CSV based Ruby decision tables. It parses and loads
315
+ decision table files which can then be used to execute complex conditional logic
316
+ against an input hash, producing a decision as an output hash.
317
+ test_files:
318
+ - spec/csv_decision/columns_spec.rb
319
+ - spec/csv_decision/constant_spec.rb
320
+ - spec/csv_decision/data_spec.rb
321
+ - spec/csv_decision/decision_spec.rb
322
+ - spec/csv_decision/examples_spec.rb
323
+ - spec/csv_decision/index_spec.rb
324
+ - spec/csv_decision/input_spec.rb
325
+ - spec/csv_decision/load_spec.rb
326
+ - spec/csv_decision/matchers/function_spec.rb
327
+ - spec/csv_decision/matchers/guard_spec.rb
328
+ - spec/csv_decision/matchers/numeric_spec.rb
329
+ - spec/csv_decision/matchers/pattern_spec.rb
330
+ - spec/csv_decision/matchers/range_spec.rb
331
+ - spec/csv_decision/matchers/symbol_spec.rb
332
+ - spec/csv_decision/options_spec.rb
333
+ - spec/csv_decision/parse_spec.rb
334
+ - spec/csv_decision/table_spec.rb
335
+ - spec/csv_decision_spec.rb
336
+ - spec/data/invalid/empty.csv
337
+ - spec/data/invalid/invalid_header1.csv
338
+ - spec/data/invalid/invalid_header2.csv
339
+ - spec/data/invalid/invalid_header3.csv
340
+ - spec/data/invalid/invalid_header4.csv
341
+ - spec/data/valid/benchmark_regexp.csv
342
+ - spec/data/valid/index_example.csv
343
+ - spec/data/valid/multi_column_index.csv
344
+ - spec/data/valid/multi_column_index2.csv
345
+ - spec/data/valid/options_in_file1.csv
346
+ - spec/data/valid/options_in_file2.csv
347
+ - spec/data/valid/options_in_file3.csv
348
+ - spec/data/valid/regular_expressions.csv
349
+ - spec/data/valid/simple_constants.csv
350
+ - spec/data/valid/simple_example.csv
351
+ - spec/data/valid/valid.csv
352
+ - spec/spec_helper.rb