eddy-rails 1.0.0
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 +7 -0
- data/.gitignore +8 -0
- data/.rubocop.yml +226 -0
- data/.travis.yml +12 -0
- data/CHANGELOG.md +10 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +186 -0
- data/LICENSE +20 -0
- data/README.md +36 -0
- data/Rakefile +32 -0
- data/app/models/eddy/rails/application_record.rb +7 -0
- data/app/models/eddy/rails/f_group_control_number.rb +41 -0
- data/app/models/eddy/rails/interchange_control_number.rb +19 -0
- data/app/models/eddy/rails/t_set_control_number.rb +40 -0
- data/bin/rails +25 -0
- data/db/migrate/20200106002448_add_eddy_tables.rb +37 -0
- data/eddy-rails.gemspec +29 -0
- data/lib/eddy/data/persistence/active_record.rb +77 -0
- data/lib/eddy/rails/engine.rb +10 -0
- data/lib/eddy/rails/version.rb +5 -0
- data/lib/eddy/rails.rb +8 -0
- data/lib/generators/eddy/initializer/initializer_generator.rb +11 -0
- data/lib/generators/eddy/initializer/templates/eddy.rb.erb +6 -0
- data/lib/tasks/eddy.rake +13 -0
- data/todo.txt +2 -0
- metadata +162 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 854caab65b490c3de6940d909a8fe7ad21912a107816e1db0118ee78e62db0b0
|
4
|
+
data.tar.gz: e7eeb3dd168f9b6e891994176c26b8fbd69effd5ce5e1a242a7d4c2f9ae974e2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d15045f76e0d8741e52a970637777c5f95b9b16d222a9a0a4d7573aeaa39a2cde7bb09b3ac698833196ff2be64463260c97639d11eafb88a642eb97974ebcde5
|
7
|
+
data.tar.gz: 17b26efeb0528e52b0835965e8eefdcfca71e8b52bc2dd08e019f4735787601d715dc651dda0c6261e68f672b422248796d594d8997a62c402d75d32603a1636
|
data/.gitignore
ADDED
data/.rubocop.yml
ADDED
@@ -0,0 +1,226 @@
|
|
1
|
+
AllCops:
|
2
|
+
TargetRubyVersion: 2.3.0
|
3
|
+
|
4
|
+
# Don't leave calls to pry lying around.
|
5
|
+
Lint/Debugger:
|
6
|
+
Enabled: true
|
7
|
+
|
8
|
+
# ==============================================================================
|
9
|
+
# Documentation
|
10
|
+
# ==============================================================================
|
11
|
+
|
12
|
+
Style/Documentation:
|
13
|
+
Enabled: true
|
14
|
+
Exclude:
|
15
|
+
- 'test/**/*.rb'
|
16
|
+
- 'db/**/*.rb'
|
17
|
+
|
18
|
+
Style/DocumentationMethod:
|
19
|
+
Enabled: true
|
20
|
+
Exclude:
|
21
|
+
- 'test/**/*.rb'
|
22
|
+
- 'db/**/*.rb'
|
23
|
+
|
24
|
+
# ==============================================================================
|
25
|
+
# Naming
|
26
|
+
# ==============================================================================
|
27
|
+
|
28
|
+
Naming/MethodParameterName:
|
29
|
+
AllowedNames:
|
30
|
+
- el
|
31
|
+
- id
|
32
|
+
|
33
|
+
Naming/MethodName:
|
34
|
+
Enabled: true
|
35
|
+
Exclude:
|
36
|
+
- 'lib/definitions/**/*.rb'
|
37
|
+
- 'build/**/*.rb'
|
38
|
+
|
39
|
+
Naming/ClassAndModuleCamelCase:
|
40
|
+
Enabled: true
|
41
|
+
Exclude:
|
42
|
+
- 'lib/definitions/**/*.rb'
|
43
|
+
- 'build/**/*.rb'
|
44
|
+
|
45
|
+
# ==============================================================================
|
46
|
+
# Layout
|
47
|
+
# ==============================================================================
|
48
|
+
|
49
|
+
Metrics/LineLength:
|
50
|
+
Max: 150
|
51
|
+
|
52
|
+
Layout/EmptyLineAfterGuardClause:
|
53
|
+
Enabled: false
|
54
|
+
|
55
|
+
Layout/EmptyLinesAroundModuleBody:
|
56
|
+
Enabled: false
|
57
|
+
|
58
|
+
Layout/EmptyLinesAroundClassBody:
|
59
|
+
Enabled: false
|
60
|
+
|
61
|
+
Layout/EmptyLinesAroundBlockBody:
|
62
|
+
Enabled: false
|
63
|
+
|
64
|
+
# https://unix.stackexchange.com/a/18789
|
65
|
+
Layout/TrailingEmptyLines:
|
66
|
+
EnforcedStyle: final_newline
|
67
|
+
|
68
|
+
# ==============================================================================
|
69
|
+
# Strings
|
70
|
+
# ==============================================================================
|
71
|
+
|
72
|
+
Style/StringLiterals:
|
73
|
+
EnforcedStyle: double_quotes
|
74
|
+
|
75
|
+
Style/FrozenStringLiteralComment:
|
76
|
+
Enabled: false
|
77
|
+
|
78
|
+
Naming/HeredocDelimiterNaming:
|
79
|
+
Enabled: false
|
80
|
+
|
81
|
+
Style/FormatString:
|
82
|
+
EnforcedStyle: sprintf
|
83
|
+
|
84
|
+
# ==============================================================================
|
85
|
+
# Numbers
|
86
|
+
# ==============================================================================
|
87
|
+
|
88
|
+
Style/ZeroLengthPredicate:
|
89
|
+
Enabled: false
|
90
|
+
|
91
|
+
Style/NumericPredicate:
|
92
|
+
Enabled: false
|
93
|
+
|
94
|
+
# preferably `EnforcedStyle: snake_case`, but it varies.
|
95
|
+
Naming/VariableNumber:
|
96
|
+
Enabled: false
|
97
|
+
|
98
|
+
# ==============================================================================
|
99
|
+
# Braces, Brackets, and Parentheses
|
100
|
+
# ==============================================================================
|
101
|
+
|
102
|
+
Style/DefWithParentheses:
|
103
|
+
Enabled: false
|
104
|
+
|
105
|
+
Style/MethodCallWithoutArgsParentheses:
|
106
|
+
Enabled: false
|
107
|
+
|
108
|
+
# Only use braces if the function expects a hash argument. [different in Ruby 2.7+](https://blog.saeloun.com/2019/10/07/ruby-2-7-keyword-arguments-redesign.html)
|
109
|
+
Style/BracesAroundHashParameters:
|
110
|
+
Enabled: false
|
111
|
+
|
112
|
+
Style/WordArray:
|
113
|
+
EnforcedStyle: brackets
|
114
|
+
|
115
|
+
Style/SymbolArray:
|
116
|
+
EnforcedStyle: brackets
|
117
|
+
|
118
|
+
# ==============================================================================
|
119
|
+
# Trailing Commas
|
120
|
+
# ==============================================================================
|
121
|
+
|
122
|
+
Style/TrailingCommaInArguments:
|
123
|
+
EnforcedStyleForMultiline: comma
|
124
|
+
|
125
|
+
Style/TrailingCommaInArrayLiteral:
|
126
|
+
EnforcedStyleForMultiline: comma
|
127
|
+
|
128
|
+
Style/TrailingCommaInHashLiteral:
|
129
|
+
EnforcedStyleForMultiline: comma
|
130
|
+
|
131
|
+
# ==============================================================================
|
132
|
+
# Fewer lines doesn't mean better code
|
133
|
+
# ==============================================================================
|
134
|
+
|
135
|
+
Metrics/ModuleLength:
|
136
|
+
Enabled: false
|
137
|
+
|
138
|
+
Metrics/ClassLength:
|
139
|
+
Enabled: false
|
140
|
+
|
141
|
+
Metrics/MethodLength:
|
142
|
+
Enabled: false
|
143
|
+
|
144
|
+
Metrics/BlockLength:
|
145
|
+
Enabled: false
|
146
|
+
|
147
|
+
# TODO: Look into adding an `EnforcedStyle` to not use guard clauses.
|
148
|
+
Style/GuardClause:
|
149
|
+
Enabled: false
|
150
|
+
|
151
|
+
# TODO: Look into adding an `EnforcedStyle` to not use if/unless modifiers.
|
152
|
+
Style/IfUnlessModifier:
|
153
|
+
Enabled: false
|
154
|
+
|
155
|
+
Style/Next:
|
156
|
+
Enabled: false
|
157
|
+
|
158
|
+
# ==============================================================================
|
159
|
+
# Explicit, not redundant
|
160
|
+
# ==============================================================================
|
161
|
+
|
162
|
+
Style/RedundantReturn:
|
163
|
+
Enabled: false
|
164
|
+
|
165
|
+
Style/RedundantSelf:
|
166
|
+
Enabled: false
|
167
|
+
|
168
|
+
# ==============================================================================
|
169
|
+
# Exceptions
|
170
|
+
# ==============================================================================
|
171
|
+
|
172
|
+
Lint/SuppressedException:
|
173
|
+
AllowComments: true
|
174
|
+
|
175
|
+
Style/RaiseArgs:
|
176
|
+
EnforcedStyle: exploded
|
177
|
+
|
178
|
+
# ==============================================================================
|
179
|
+
# Unsorted
|
180
|
+
# ==============================================================================
|
181
|
+
|
182
|
+
# Default value (special_inside_parentheses) is ridiculous.
|
183
|
+
# Look for yourself: https://www.rubydoc.info/gems/rubocop/0.69.0/RuboCop/Cop/Layout/IndentFirstHashElement
|
184
|
+
Layout/FirstHashElementIndentation:
|
185
|
+
EnforcedStyle: consistent
|
186
|
+
|
187
|
+
# Default value (special_inside_parentheses) is ridiculous.
|
188
|
+
# Look for yourself: https://www.rubydoc.info/gems/rubocop/0.69.0/RuboCop/Cop/Layout/IndentFirstArrayElement
|
189
|
+
Layout/FirstArrayElementIndentation:
|
190
|
+
EnforcedStyle: consistent
|
191
|
+
|
192
|
+
Layout/HashAlignment:
|
193
|
+
Enabled: false
|
194
|
+
|
195
|
+
# `x&.y&.[](:argument)` isn't what I'd call "readable".
|
196
|
+
# https://stackoverflow.com/questions/34794697/using-with-the-safe-navigation-operator-in-ruby
|
197
|
+
Style/SafeNavigation:
|
198
|
+
Enabled: false
|
199
|
+
|
200
|
+
Style/NegatedIf:
|
201
|
+
EnforcedStyle: postfix
|
202
|
+
|
203
|
+
# TODO: File issue to ignore enums when using `EnforcedStyle: assign_inside_condition`.
|
204
|
+
Style/ConditionalAssignment:
|
205
|
+
Enabled: false
|
206
|
+
|
207
|
+
Style/TernaryParentheses:
|
208
|
+
EnforcedStyle: require_parentheses_when_complex
|
209
|
+
|
210
|
+
Metrics/AbcSize:
|
211
|
+
Enabled: false
|
212
|
+
|
213
|
+
Metrics/CyclomaticComplexity:
|
214
|
+
Enabled: false
|
215
|
+
|
216
|
+
Metrics/PerceivedComplexity:
|
217
|
+
Enabled: false
|
218
|
+
|
219
|
+
Style/CommentedKeyword:
|
220
|
+
Enabled: False
|
221
|
+
|
222
|
+
Lint/EmptyWhen:
|
223
|
+
Enabled: false
|
224
|
+
|
225
|
+
Gemspec/OrderedDependencies:
|
226
|
+
Enabled: false
|
data/.travis.yml
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
---
|
2
|
+
sudo: false
|
3
|
+
language: ruby
|
4
|
+
cache: bundler
|
5
|
+
rvm:
|
6
|
+
- 2.6.5
|
7
|
+
before_install: gem install bundler -v 2.0.2
|
8
|
+
services:
|
9
|
+
- postgresql
|
10
|
+
before_script:
|
11
|
+
- psql -c 'create database dummy_test;' -U postgres
|
12
|
+
- bundle exec rails db:migrate RAILS_ENV=test
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
All notable changes to this project will be documented in this file.
|
4
|
+
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
7
|
+
|
8
|
+
## 0.1.0 (2020-01-05)
|
9
|
+
|
10
|
+
Initial release.
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,186 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
eddy-rails (1.0.0)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: https://rubygems.org/
|
8
|
+
specs:
|
9
|
+
actioncable (6.0.2.1)
|
10
|
+
actionpack (= 6.0.2.1)
|
11
|
+
nio4r (~> 2.0)
|
12
|
+
websocket-driver (>= 0.6.1)
|
13
|
+
actionmailbox (6.0.2.1)
|
14
|
+
actionpack (= 6.0.2.1)
|
15
|
+
activejob (= 6.0.2.1)
|
16
|
+
activerecord (= 6.0.2.1)
|
17
|
+
activestorage (= 6.0.2.1)
|
18
|
+
activesupport (= 6.0.2.1)
|
19
|
+
mail (>= 2.7.1)
|
20
|
+
actionmailer (6.0.2.1)
|
21
|
+
actionpack (= 6.0.2.1)
|
22
|
+
actionview (= 6.0.2.1)
|
23
|
+
activejob (= 6.0.2.1)
|
24
|
+
mail (~> 2.5, >= 2.5.4)
|
25
|
+
rails-dom-testing (~> 2.0)
|
26
|
+
actionpack (6.0.2.1)
|
27
|
+
actionview (= 6.0.2.1)
|
28
|
+
activesupport (= 6.0.2.1)
|
29
|
+
rack (~> 2.0, >= 2.0.8)
|
30
|
+
rack-test (>= 0.6.3)
|
31
|
+
rails-dom-testing (~> 2.0)
|
32
|
+
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
33
|
+
actiontext (6.0.2.1)
|
34
|
+
actionpack (= 6.0.2.1)
|
35
|
+
activerecord (= 6.0.2.1)
|
36
|
+
activestorage (= 6.0.2.1)
|
37
|
+
activesupport (= 6.0.2.1)
|
38
|
+
nokogiri (>= 1.8.5)
|
39
|
+
actionview (6.0.2.1)
|
40
|
+
activesupport (= 6.0.2.1)
|
41
|
+
builder (~> 3.1)
|
42
|
+
erubi (~> 1.4)
|
43
|
+
rails-dom-testing (~> 2.0)
|
44
|
+
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
45
|
+
activejob (6.0.2.1)
|
46
|
+
activesupport (= 6.0.2.1)
|
47
|
+
globalid (>= 0.3.6)
|
48
|
+
activemodel (6.0.2.1)
|
49
|
+
activesupport (= 6.0.2.1)
|
50
|
+
activerecord (6.0.2.1)
|
51
|
+
activemodel (= 6.0.2.1)
|
52
|
+
activesupport (= 6.0.2.1)
|
53
|
+
activestorage (6.0.2.1)
|
54
|
+
actionpack (= 6.0.2.1)
|
55
|
+
activejob (= 6.0.2.1)
|
56
|
+
activerecord (= 6.0.2.1)
|
57
|
+
marcel (~> 0.3.1)
|
58
|
+
activesupport (6.0.2.1)
|
59
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
60
|
+
i18n (>= 0.7, < 2)
|
61
|
+
minitest (~> 5.1)
|
62
|
+
tzinfo (~> 1.1)
|
63
|
+
zeitwerk (~> 2.2)
|
64
|
+
builder (3.2.4)
|
65
|
+
coderay (1.1.2)
|
66
|
+
concurrent-ruby (1.1.5)
|
67
|
+
coolkit (0.2.2)
|
68
|
+
coveralls (0.8.23)
|
69
|
+
json (>= 1.8, < 3)
|
70
|
+
simplecov (~> 0.16.1)
|
71
|
+
term-ansicolor (~> 1.3)
|
72
|
+
thor (>= 0.19.4, < 2.0)
|
73
|
+
tins (~> 1.6)
|
74
|
+
crass (1.0.5)
|
75
|
+
docile (1.3.2)
|
76
|
+
dry-inflector (0.2.0)
|
77
|
+
ecma-re-validator (0.2.0)
|
78
|
+
regexp_parser (~> 1.2)
|
79
|
+
eddy (0.5.0)
|
80
|
+
ginny (~> 0.6.3)
|
81
|
+
json_schemer (~> 0.2.8)
|
82
|
+
thor (~> 1.0.1)
|
83
|
+
erubi (1.9.0)
|
84
|
+
ginny (0.6.3)
|
85
|
+
coolkit (~> 0.2.2)
|
86
|
+
dry-inflector (~> 0.2.0)
|
87
|
+
globalid (0.4.2)
|
88
|
+
activesupport (>= 4.2.0)
|
89
|
+
hana (1.3.5)
|
90
|
+
i18n (1.7.0)
|
91
|
+
concurrent-ruby (~> 1.0)
|
92
|
+
json (2.3.0)
|
93
|
+
json_schemer (0.2.8)
|
94
|
+
ecma-re-validator (~> 0.2)
|
95
|
+
hana (~> 1.3)
|
96
|
+
regexp_parser (~> 1.5)
|
97
|
+
uri_template (~> 0.7)
|
98
|
+
loofah (2.4.0)
|
99
|
+
crass (~> 1.0.2)
|
100
|
+
nokogiri (>= 1.5.9)
|
101
|
+
mail (2.7.1)
|
102
|
+
mini_mime (>= 0.1.1)
|
103
|
+
marcel (0.3.3)
|
104
|
+
mimemagic (~> 0.3.2)
|
105
|
+
method_source (0.9.2)
|
106
|
+
mimemagic (0.3.3)
|
107
|
+
mini_mime (1.0.2)
|
108
|
+
mini_portile2 (2.4.0)
|
109
|
+
minitest (5.13.0)
|
110
|
+
nio4r (2.5.2)
|
111
|
+
nokogiri (1.10.7)
|
112
|
+
mini_portile2 (~> 2.4.0)
|
113
|
+
pg (1.2.1)
|
114
|
+
pry (0.12.2)
|
115
|
+
coderay (~> 1.1.0)
|
116
|
+
method_source (~> 0.9.0)
|
117
|
+
rack (2.0.8)
|
118
|
+
rack-test (1.1.0)
|
119
|
+
rack (>= 1.0, < 3)
|
120
|
+
rails (6.0.2.1)
|
121
|
+
actioncable (= 6.0.2.1)
|
122
|
+
actionmailbox (= 6.0.2.1)
|
123
|
+
actionmailer (= 6.0.2.1)
|
124
|
+
actionpack (= 6.0.2.1)
|
125
|
+
actiontext (= 6.0.2.1)
|
126
|
+
actionview (= 6.0.2.1)
|
127
|
+
activejob (= 6.0.2.1)
|
128
|
+
activemodel (= 6.0.2.1)
|
129
|
+
activerecord (= 6.0.2.1)
|
130
|
+
activestorage (= 6.0.2.1)
|
131
|
+
activesupport (= 6.0.2.1)
|
132
|
+
bundler (>= 1.3.0)
|
133
|
+
railties (= 6.0.2.1)
|
134
|
+
sprockets-rails (>= 2.0.0)
|
135
|
+
rails-dom-testing (2.0.3)
|
136
|
+
activesupport (>= 4.2.0)
|
137
|
+
nokogiri (>= 1.6)
|
138
|
+
rails-html-sanitizer (1.3.0)
|
139
|
+
loofah (~> 2.3)
|
140
|
+
railties (6.0.2.1)
|
141
|
+
actionpack (= 6.0.2.1)
|
142
|
+
activesupport (= 6.0.2.1)
|
143
|
+
method_source
|
144
|
+
rake (>= 0.8.7)
|
145
|
+
thor (>= 0.20.3, < 2.0)
|
146
|
+
rake (13.0.1)
|
147
|
+
regexp_parser (1.6.0)
|
148
|
+
simplecov (0.16.1)
|
149
|
+
docile (~> 1.1)
|
150
|
+
json (>= 1.8, < 3)
|
151
|
+
simplecov-html (~> 0.10.0)
|
152
|
+
simplecov-html (0.10.2)
|
153
|
+
sprockets (4.0.0)
|
154
|
+
concurrent-ruby (~> 1.0)
|
155
|
+
rack (> 1, < 3)
|
156
|
+
sprockets-rails (3.2.1)
|
157
|
+
actionpack (>= 4.0)
|
158
|
+
activesupport (>= 4.0)
|
159
|
+
sprockets (>= 3.0.0)
|
160
|
+
term-ansicolor (1.7.1)
|
161
|
+
tins (~> 1.0)
|
162
|
+
thor (1.0.1)
|
163
|
+
thread_safe (0.3.6)
|
164
|
+
tins (1.22.2)
|
165
|
+
tzinfo (1.2.6)
|
166
|
+
thread_safe (~> 0.1)
|
167
|
+
uri_template (0.7.0)
|
168
|
+
websocket-driver (0.7.1)
|
169
|
+
websocket-extensions (>= 0.1.0)
|
170
|
+
websocket-extensions (0.1.4)
|
171
|
+
zeitwerk (2.2.2)
|
172
|
+
|
173
|
+
PLATFORMS
|
174
|
+
ruby
|
175
|
+
|
176
|
+
DEPENDENCIES
|
177
|
+
coveralls (~> 0.8.23)
|
178
|
+
eddy (~> 0.5.0)
|
179
|
+
eddy-rails!
|
180
|
+
pg
|
181
|
+
pry
|
182
|
+
rails (~> 6.0.2, >= 6.0.2.1)
|
183
|
+
simplecov (~> 0.16)
|
184
|
+
|
185
|
+
BUNDLED WITH
|
186
|
+
2.0.2
|
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2020 Clay Dunston
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
# Eddy::Rails
|
2
|
+
|
3
|
+
[][rubygems]
|
4
|
+
[][travis-ci]
|
5
|
+
[][coveralls]
|
6
|
+
[][license]
|
7
|
+
[][docs]
|
8
|
+
|
9
|
+
[rubygems]: https://rubygems.org/gems/eddy-rails
|
10
|
+
[travis-ci]: https://travis-ci.org/tcd/eddy-rails
|
11
|
+
[coveralls]: https://coveralls.io/github/tcd/eddy-rails?branch=master
|
12
|
+
[license]: https://github.com/tcd/eddy-rails/blob/master/LICENSE
|
13
|
+
[docs]: https://www.rubydoc.info/gems/eddy-rails/1.0.0
|
14
|
+
|
15
|
+
Rails integration for [Eddy](https://github.com/tcd/eddy).
|
16
|
+
|
17
|
+
## Installation
|
18
|
+
|
19
|
+
Add this line to your application's Gemfile:
|
20
|
+
|
21
|
+
```ruby
|
22
|
+
gem "eddy"
|
23
|
+
gem "eddy-rails"
|
24
|
+
```
|
25
|
+
|
26
|
+
Next, you need to copy & run the migration:
|
27
|
+
|
28
|
+
```sh
|
29
|
+
$ rails eddy:install # This will do both
|
30
|
+
```
|
31
|
+
|
32
|
+
Then, optionally, generate an initializer file:
|
33
|
+
|
34
|
+
```sh
|
35
|
+
$ rails generate eddy:initializer # This will do both
|
36
|
+
```
|
data/Rakefile
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
begin
|
2
|
+
require "bundler/setup"
|
3
|
+
rescue LoadError
|
4
|
+
puts "You must `gem install bundler` and `bundle install` to run rake tasks"
|
5
|
+
end
|
6
|
+
|
7
|
+
require "rdoc/task"
|
8
|
+
|
9
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
10
|
+
rdoc.rdoc_dir = "rdoc"
|
11
|
+
rdoc.title = "Eddy::Rails"
|
12
|
+
rdoc.options << "--line-numbers"
|
13
|
+
rdoc.rdoc_files.include("README.md")
|
14
|
+
rdoc.rdoc_files.include("lib/**/*.rb")
|
15
|
+
end
|
16
|
+
|
17
|
+
APP_RAKEFILE = File.expand_path("test/dummy/Rakefile", __dir__)
|
18
|
+
load "rails/tasks/engine.rake"
|
19
|
+
|
20
|
+
load "rails/tasks/statistics.rake"
|
21
|
+
|
22
|
+
require "bundler/gem_tasks"
|
23
|
+
|
24
|
+
require "rake/testtask"
|
25
|
+
|
26
|
+
Rake::TestTask.new(:test) do |t|
|
27
|
+
t.libs << "test"
|
28
|
+
t.pattern = "test/**/*_test.rb"
|
29
|
+
t.verbose = false
|
30
|
+
end
|
31
|
+
|
32
|
+
task default: :test
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Eddy::Rails
|
2
|
+
# Functional Group Control Number
|
3
|
+
class FGroupControlNumber < ApplicationRecord
|
4
|
+
# @!attribute number [rw]
|
5
|
+
# @return [Integer]
|
6
|
+
# @!attribute f_group [rw]
|
7
|
+
# @return [String]
|
8
|
+
# @!attribute sent [rw]
|
9
|
+
# @return [Boolean]
|
10
|
+
# @!attribute received [rw]
|
11
|
+
# @return [Boolean]
|
12
|
+
validates(
|
13
|
+
:f_group,
|
14
|
+
presence: true,
|
15
|
+
format: {
|
16
|
+
with: /\A[A-Z0-9]{2}\z/,
|
17
|
+
message: "%{value} is not a valid Functional Group",
|
18
|
+
},
|
19
|
+
# inclusion: {
|
20
|
+
# in: Eddy::Rails.functional_groups(),
|
21
|
+
# message: "%{value} is not a valid Functional Group",
|
22
|
+
# },
|
23
|
+
)
|
24
|
+
validates(
|
25
|
+
:number,
|
26
|
+
presence: true,
|
27
|
+
uniqueness: {
|
28
|
+
scope: :f_group,
|
29
|
+
message: "Functional Group Control Numbers must be unique within a Functional Group",
|
30
|
+
},
|
31
|
+
)
|
32
|
+
|
33
|
+
# @!method self.create!()
|
34
|
+
# @param number [Integer]
|
35
|
+
# @param f_group [String]
|
36
|
+
# @param sent [Boolean] (false)
|
37
|
+
# @param received [Boolean] (false)
|
38
|
+
# @return [self]
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Eddy::Rails
|
2
|
+
# Interchange Control Number
|
3
|
+
class InterchangeControlNumber < ApplicationRecord
|
4
|
+
# @!attribute number [rw]
|
5
|
+
# @return [Integer]
|
6
|
+
# @!attribute sent [rw]
|
7
|
+
# @return [Boolean]
|
8
|
+
# @!attribute received [rw]
|
9
|
+
# @return [Boolean]
|
10
|
+
validates(:number, uniqueness: true)
|
11
|
+
|
12
|
+
# @!method self.create!()
|
13
|
+
# @param number [Integer]
|
14
|
+
# @param sent [Boolean] (false)
|
15
|
+
# @param received [Boolean] (false)
|
16
|
+
# @return [self]
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Eddy::Rails
|
2
|
+
# Transaction Set Control Number
|
3
|
+
class TSetControlNumber < ApplicationRecord
|
4
|
+
# @!attribute number [rw]
|
5
|
+
# @return [Integer]
|
6
|
+
# @!attribute t_set [rw]
|
7
|
+
# @return [String]
|
8
|
+
# @!attribute sent [rw]
|
9
|
+
# @return [Boolean]
|
10
|
+
# @!attribute received [rw]
|
11
|
+
# @return [Boolean]
|
12
|
+
validates(
|
13
|
+
:t_set,
|
14
|
+
presence: true,
|
15
|
+
format: {
|
16
|
+
with: /\A[1-9][0-9]{2}\z/,
|
17
|
+
message: "%{value} is not a valid Transaction Set",
|
18
|
+
},
|
19
|
+
# inclusion: {
|
20
|
+
# in: Eddy::Rails.valid_transaction_sets(),
|
21
|
+
# message: "%{value} is not a valid Transaction Set",
|
22
|
+
# },
|
23
|
+
)
|
24
|
+
validates(
|
25
|
+
:number,
|
26
|
+
uniqueness: {
|
27
|
+
scope: :t_set,
|
28
|
+
message: "Transaction Set Control Numbers must be unique within a Transaction Set",
|
29
|
+
},
|
30
|
+
)
|
31
|
+
|
32
|
+
# @!method self.create!()
|
33
|
+
# @param number [Integer]
|
34
|
+
# @param t_set [String]
|
35
|
+
# @param sent [Boolean] (false)
|
36
|
+
# @param received [Boolean] (false)
|
37
|
+
# @return [self]
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
data/bin/rails
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# This command will automatically be run when you run "rails" with Rails gems
|
3
|
+
# installed from the root of your application.
|
4
|
+
|
5
|
+
ENGINE_ROOT = File.expand_path("..", __dir__)
|
6
|
+
ENGINE_PATH = File.expand_path("../lib/eddy/rails/engine", __dir__)
|
7
|
+
APP_PATH = File.expand_path("../test/dummy/config/application", __dir__)
|
8
|
+
|
9
|
+
# Set up gems listed in the Gemfile.
|
10
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
11
|
+
require "bundler/setup" if File.exist?(ENV["BUNDLE_GEMFILE"])
|
12
|
+
|
13
|
+
require "rails"
|
14
|
+
# Pick the frameworks you want:
|
15
|
+
require "active_model/railtie"
|
16
|
+
# require "active_job/railtie"
|
17
|
+
require "active_record/railtie"
|
18
|
+
require "active_storage/engine"
|
19
|
+
# require "action_controller/railtie"
|
20
|
+
# require "action_mailer/railtie"
|
21
|
+
# require "action_view/railtie"
|
22
|
+
# require "action_cable/engine"
|
23
|
+
require "sprockets/railtie"
|
24
|
+
require "rails/test_unit/railtie"
|
25
|
+
require "rails/engine/commands"
|
@@ -0,0 +1,37 @@
|
|
1
|
+
class AddEddyTables < ActiveRecord::Migration[6.0]
|
2
|
+
|
3
|
+
def self.up
|
4
|
+
create_table :eddy_rails_interchange_control_numbers do |t|
|
5
|
+
t.integer(:number, null: false)
|
6
|
+
t.boolean(:received, default: false)
|
7
|
+
t.boolean(:sent, default: false)
|
8
|
+
t.timestamps(null: false)
|
9
|
+
end
|
10
|
+
add_index(:eddy_rails_interchange_control_numbers, :number, unique: true)
|
11
|
+
|
12
|
+
create_table :eddy_rails_f_group_control_numbers do |t|
|
13
|
+
t.integer(:number, null: false)
|
14
|
+
t.string(:f_group, null: false)
|
15
|
+
t.boolean(:received, default: false)
|
16
|
+
t.boolean(:sent, default: false)
|
17
|
+
t.timestamps(null: false)
|
18
|
+
end
|
19
|
+
add_index(:eddy_rails_f_group_control_numbers, [:number, :f_group], unique: true)
|
20
|
+
|
21
|
+
create_table :eddy_rails_t_set_control_numbers do |t|
|
22
|
+
t.integer(:number, null: false)
|
23
|
+
t.string(:t_set, null: false)
|
24
|
+
t.boolean(:received, default: false)
|
25
|
+
t.boolean(:sent, default: false)
|
26
|
+
t.timestamps(null: false)
|
27
|
+
end
|
28
|
+
add_index(:eddy_rails_t_set_control_numbers, [:number, :t_set], unique: true)
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.down
|
32
|
+
drop_table(:eddy_interchange_control_numbers)
|
33
|
+
drop_table(:eddy_f_group_control_numbers)
|
34
|
+
drop_table(:eddy_t_set_control_numbers)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
data/eddy-rails.gemspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
$LOAD_PATH.push File.expand_path("lib", __dir__)
|
2
|
+
|
3
|
+
Gem::Specification.new do |spec|
|
4
|
+
spec.name = "eddy-rails"
|
5
|
+
spec.version = "1.0.0"
|
6
|
+
spec.authors = ["Clay Dunston"]
|
7
|
+
spec.email = ["dunstontc@gmail.com"]
|
8
|
+
spec.homepage = "https://github.com/tcd/eddy-rails"
|
9
|
+
spec.summary = "Rails integration for Eddy"
|
10
|
+
spec.description = spec.summary
|
11
|
+
spec.license = "MIT"
|
12
|
+
spec.required_ruby_version = ">= 2.3.0"
|
13
|
+
spec.metadata = {
|
14
|
+
"homepage_uri" => spec.homepage,
|
15
|
+
"source_code_uri" => spec.homepage,
|
16
|
+
"changelog_uri" => "#{spec.homepage}/blob/master/CHANGELOG.md",
|
17
|
+
"documentation_uri" => "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}",
|
18
|
+
"yard.run" => "yri", # use "yard" to build full HTML docs.
|
19
|
+
}
|
20
|
+
spec.files = Dir.chdir(File.expand_path("..", __FILE__)) do
|
21
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
22
|
+
end
|
23
|
+
spec.add_development_dependency "coveralls", "~> 0.8.23"
|
24
|
+
spec.add_development_dependency "eddy", "~> 0.5.0"
|
25
|
+
spec.add_development_dependency "pg"
|
26
|
+
spec.add_development_dependency "pry"
|
27
|
+
spec.add_development_dependency "rails", "~> 6.0.2", ">= 6.0.2.1"
|
28
|
+
spec.add_development_dependency "simplecov", "~> 0.16"
|
29
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
module Eddy
|
2
|
+
module Data
|
3
|
+
module Persistence
|
4
|
+
# Persist data to a database using Active Record.
|
5
|
+
class ActiveRecord
|
6
|
+
|
7
|
+
# @return [void]
|
8
|
+
def initialize()
|
9
|
+
unless defined?(Rails) && defined?(Eddy::Rails)
|
10
|
+
raise Eddy::Errors::Error, "ActiveRecord persistence method can currently only be used with Ruby on Rails"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
# @return [Array<Integer>]
|
15
|
+
def interchange_control_numbers()
|
16
|
+
return Eddy::Rails::InterchangeControlNumber.select(:number).collect(&:number)
|
17
|
+
end
|
18
|
+
|
19
|
+
# @param functional_group [String]
|
20
|
+
# @return [Array<Integer>]
|
21
|
+
def functional_group_control_numbers(functional_group)
|
22
|
+
Eddy::Rails::FGroupControlNumber.where(f_group: functional_group).select(:number).collect(&:number)
|
23
|
+
end
|
24
|
+
|
25
|
+
# @param transaction_set_id [String]
|
26
|
+
# @return [Array<Integer>]
|
27
|
+
def transaction_set_control_numbers(transaction_set_id)
|
28
|
+
Eddy::Rails::TSetControlNumber.where(t_set: transaction_set_id).select(:number).collect(&:number)
|
29
|
+
end
|
30
|
+
|
31
|
+
# @param new_ctrl_num [Integer]
|
32
|
+
# @param sent [Boolean] (false)
|
33
|
+
# @param received [Boolean] (false)
|
34
|
+
# @return [Array<Integer>]
|
35
|
+
def add_interchange_control_number(new_ctrl_num, sent: false, received: false)
|
36
|
+
Eddy::Rails::InterchangeControlNumber.create!(
|
37
|
+
number: new_ctrl_num,
|
38
|
+
sent: sent,
|
39
|
+
received: received,
|
40
|
+
)
|
41
|
+
return self.interchange_control_numbers()
|
42
|
+
end
|
43
|
+
|
44
|
+
# @param functional_group [String]
|
45
|
+
# @param new_ctrl_num [Integer]
|
46
|
+
# @param sent [Boolean] (false)
|
47
|
+
# @param received [Boolean] (false)
|
48
|
+
# @return [Array<Integer>]
|
49
|
+
def add_functional_group_control_number(functional_group, new_ctrl_num, sent: false, received: false)
|
50
|
+
Eddy::Rails::FGroupControlNumber.create!(
|
51
|
+
number: new_ctrl_num,
|
52
|
+
f_group: functional_group,
|
53
|
+
sent: sent,
|
54
|
+
received: received,
|
55
|
+
)
|
56
|
+
return self.functional_group_control_numbers(functional_group)
|
57
|
+
end
|
58
|
+
|
59
|
+
# @param transaction_set_id [String]
|
60
|
+
# @param new_ctrl_num [Integer]
|
61
|
+
# @param sent [Boolean] (false)
|
62
|
+
# @param received [Boolean] (false)
|
63
|
+
# @return [Array<Integer>]
|
64
|
+
def add_transaction_set_control_number(transaction_set_id, new_ctrl_num, sent: false, received: false)
|
65
|
+
Eddy::Rails::TSetControlNumber.create!(
|
66
|
+
number: new_ctrl_num,
|
67
|
+
t_set: transaction_set_id,
|
68
|
+
sent: sent,
|
69
|
+
received: received,
|
70
|
+
)
|
71
|
+
return transaction_set_control_numbers(transaction_set_id)
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
data/lib/eddy/rails.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
# Generate an initializer file for Eddy.
|
2
|
+
class InitializerGenerator < Rails::Generators::Base
|
3
|
+
desc("This generator creates an initializer file at config/initializers/eddy.rb for Eddy")
|
4
|
+
source_root(File.expand_path("templates", __dir__))
|
5
|
+
|
6
|
+
# @return [void]
|
7
|
+
def copy_initializer
|
8
|
+
template("eddy.rb.erb", "config/initializers/eddy.rb")
|
9
|
+
end
|
10
|
+
|
11
|
+
end
|
data/lib/tasks/eddy.rake
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
namespace :eddy do
|
2
|
+
|
3
|
+
desc "Copy & run migrations; copy initializer."
|
4
|
+
task :install, [] => :environment do
|
5
|
+
Rake::Task["eddy_rails:install:migrations"].invoke
|
6
|
+
Rake::Task["db:migrate"].invoke
|
7
|
+
end
|
8
|
+
|
9
|
+
# desc "Roll back & remove migrations; remove initializer."
|
10
|
+
# task :uninstall, [] => :environment do
|
11
|
+
# end
|
12
|
+
|
13
|
+
end
|
data/todo.txt
ADDED
metadata
ADDED
@@ -0,0 +1,162 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: eddy-rails
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Clay Dunston
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-01-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: coveralls
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.8.23
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.8.23
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: eddy
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.5.0
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.5.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: pg
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rails
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 6.0.2
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: 6.0.2.1
|
79
|
+
type: :development
|
80
|
+
prerelease: false
|
81
|
+
version_requirements: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - "~>"
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 6.0.2
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 6.0.2.1
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: simplecov
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0.16'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0.16'
|
103
|
+
description: Rails integration for Eddy
|
104
|
+
email:
|
105
|
+
- dunstontc@gmail.com
|
106
|
+
executables: []
|
107
|
+
extensions: []
|
108
|
+
extra_rdoc_files: []
|
109
|
+
files:
|
110
|
+
- ".gitignore"
|
111
|
+
- ".rubocop.yml"
|
112
|
+
- ".travis.yml"
|
113
|
+
- CHANGELOG.md
|
114
|
+
- Gemfile
|
115
|
+
- Gemfile.lock
|
116
|
+
- LICENSE
|
117
|
+
- README.md
|
118
|
+
- Rakefile
|
119
|
+
- app/models/eddy/rails/application_record.rb
|
120
|
+
- app/models/eddy/rails/f_group_control_number.rb
|
121
|
+
- app/models/eddy/rails/interchange_control_number.rb
|
122
|
+
- app/models/eddy/rails/t_set_control_number.rb
|
123
|
+
- bin/rails
|
124
|
+
- db/migrate/20200106002448_add_eddy_tables.rb
|
125
|
+
- eddy-rails.gemspec
|
126
|
+
- lib/eddy/data/persistence/active_record.rb
|
127
|
+
- lib/eddy/rails.rb
|
128
|
+
- lib/eddy/rails/engine.rb
|
129
|
+
- lib/eddy/rails/version.rb
|
130
|
+
- lib/generators/eddy/initializer/initializer_generator.rb
|
131
|
+
- lib/generators/eddy/initializer/templates/eddy.rb.erb
|
132
|
+
- lib/tasks/eddy.rake
|
133
|
+
- todo.txt
|
134
|
+
homepage: https://github.com/tcd/eddy-rails
|
135
|
+
licenses:
|
136
|
+
- MIT
|
137
|
+
metadata:
|
138
|
+
homepage_uri: https://github.com/tcd/eddy-rails
|
139
|
+
source_code_uri: https://github.com/tcd/eddy-rails
|
140
|
+
changelog_uri: https://github.com/tcd/eddy-rails/blob/master/CHANGELOG.md
|
141
|
+
documentation_uri: https://www.rubydoc.info/gems/eddy-rails/1.0.0
|
142
|
+
yard.run: yri
|
143
|
+
post_install_message:
|
144
|
+
rdoc_options: []
|
145
|
+
require_paths:
|
146
|
+
- lib
|
147
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: 2.3.0
|
152
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
|
+
requirements:
|
154
|
+
- - ">="
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: '0'
|
157
|
+
requirements: []
|
158
|
+
rubygems_version: 3.0.3
|
159
|
+
signing_key:
|
160
|
+
specification_version: 4
|
161
|
+
summary: Rails integration for Eddy
|
162
|
+
test_files: []
|