auxiliary_rails 0.2.0 → 0.3.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 +4 -4
- data/.gitlab-ci.yml +26 -0
- data/.rubocop.yml +11 -2
- data/.rubocop_todo.yml +13 -9
- data/.yardopts +5 -0
- data/CHANGELOG.md +19 -2
- data/CONTRIBUTING.md +0 -6
- data/Gemfile.lock +20 -16
- data/README.md +204 -3
- data/auxiliary_rails.gemspec +7 -5
- data/bin/rubocop +3 -0
- data/lib/auxiliary_rails.rb +5 -3
- data/lib/auxiliary_rails/application/command.rb +56 -0
- data/lib/auxiliary_rails/application/error.rb +10 -0
- data/lib/auxiliary_rails/application/form.rb +30 -0
- data/lib/auxiliary_rails/application/query.rb +78 -0
- data/lib/auxiliary_rails/cli.rb +19 -5
- data/lib/auxiliary_rails/concerns/performable.rb +141 -0
- data/lib/auxiliary_rails/version.rb +1 -1
- data/lib/generators/auxiliary_rails/install_commands_generator.rb +5 -0
- data/lib/generators/auxiliary_rails/install_generator.rb +0 -1
- data/lib/generators/auxiliary_rails/templates/application_error_template.rb +1 -1
- data/lib/generators/auxiliary_rails/templates/commands/application_command_template.rb +1 -1
- data/lib/generators/auxiliary_rails/templates/commands/command_template.rb +2 -2
- data/lib/generators/auxiliary_rails/templates/commands/commands.en_template.yml +5 -0
- data/templates/rails/elementary.rb +45 -9
- metadata +43 -11
- data/lib/auxiliary_rails/abstract_command.rb +0 -95
- data/lib/auxiliary_rails/abstract_error.rb +0 -7
- data/lib/generators/auxiliary_rails/install_rubocop_generator.rb +0 -29
- data/lib/generators/auxiliary_rails/templates/rubocop/rubocop_auxiliary_rails_template.yml +0 -65
- data/lib/generators/auxiliary_rails/templates/rubocop/rubocop_template.yml +0 -11
@@ -1,2 +1,2 @@
|
|
1
|
-
class ApplicationError < AuxiliaryRails::
|
1
|
+
class ApplicationError < AuxiliaryRails::Application::Error
|
2
2
|
end
|
@@ -1,2 +1,2 @@
|
|
1
|
-
class ApplicationCommand < AuxiliaryRails::
|
1
|
+
class ApplicationCommand < AuxiliaryRails::Application::Command
|
2
2
|
end
|
@@ -3,22 +3,51 @@ gsub_file 'Gemfile', /^\s*#.*$\n/, ''
|
|
3
3
|
gsub_file 'Gemfile', /^.*coffee.*$\n/, ''
|
4
4
|
gsub_file 'Gemfile', /^.*jbuilder.*$\n/, ''
|
5
5
|
gsub_file 'Gemfile', /^.*tzinfo-data.*$\n/, ''
|
6
|
+
gsub_file 'Gemfile', /^group :development, :test do\n.*byebug.*\nend\n\n/, ''
|
6
7
|
|
7
|
-
|
8
|
-
|
9
|
-
|
8
|
+
gsub_file '.gitignore', /^\s*#.*$\n/, ''
|
9
|
+
gsub_file 'config/routes.rb', /^\s*#.*$\n/, ''
|
10
|
+
|
11
|
+
gsub_file 'config/database.yml', /^\s*#.*$\n/, ''
|
12
|
+
gsub_file 'config/database.yml', /^\s*pool.*$\n/, <<-FILE
|
13
|
+
host: <%= ENV['DATABASE_HOST'] %>
|
14
|
+
username: <%= ENV['DATABASE_USERNAME'] %>
|
15
|
+
pool: <%= ENV.fetch('RAILS_MAX_THREADS') { 5 } %>
|
16
|
+
FILE
|
17
|
+
|
18
|
+
# Create RuboCop files
|
19
|
+
file '.rubocop.yml', <<~FILE
|
20
|
+
inherit_gem:
|
21
|
+
rubocop-ergoserv:
|
22
|
+
- config/default.yml
|
23
|
+
FILE
|
24
|
+
|
25
|
+
file 'bin/rubocop', <<~FILE
|
26
|
+
#!/usr/bin/env bash
|
27
|
+
|
28
|
+
bundle exec rubocop "$@"
|
29
|
+
FILE
|
30
|
+
chmod 'bin/rubocop', 0o755
|
31
|
+
|
32
|
+
run 'touch .env'
|
33
|
+
append_file '.gitignore', <<~FILE
|
34
|
+
.env*.local
|
35
|
+
FILE
|
36
|
+
|
37
|
+
# Gemfile additions
|
38
|
+
gem 'auxiliary_rails'
|
10
39
|
|
11
40
|
gem_group :development, :test do
|
41
|
+
gem 'byebug'
|
12
42
|
gem 'dotenv-rails'
|
13
43
|
gem 'factory_bot_rails'
|
14
44
|
gem 'faker'
|
15
45
|
gem 'pry-byebug'
|
16
46
|
gem 'pry-rails'
|
17
47
|
gem 'rspec-rails'
|
18
|
-
gem 'rubocop'
|
19
|
-
|
20
|
-
|
21
|
-
gem 'rubocop-rspec'
|
48
|
+
gem 'rubocop-ergoserv',
|
49
|
+
git: 'https://github.com/ergoserv/rubocop-ergoserv',
|
50
|
+
require: false
|
22
51
|
end
|
23
52
|
|
24
53
|
gem_group :test do
|
@@ -29,6 +58,13 @@ end
|
|
29
58
|
after_bundle do
|
30
59
|
# ensure using the latest versions of gems
|
31
60
|
run 'bundle update'
|
32
|
-
|
33
|
-
|
61
|
+
|
62
|
+
generate :controller, 'pages', 'home',
|
63
|
+
'--no-assets',
|
64
|
+
'--no-helper',
|
65
|
+
'--no-test-framework',
|
66
|
+
'--skip-routes'
|
67
|
+
route "root to: 'pages#home'"
|
68
|
+
|
69
|
+
generate 'rspec:install'
|
34
70
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: auxiliary_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Babenko
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-
|
12
|
+
date: 2020-03-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -89,6 +89,20 @@ dependencies:
|
|
89
89
|
version: '3.8'
|
90
90
|
- !ruby/object:Gem::Dependency
|
91
91
|
name: rubocop
|
92
|
+
requirement: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.79'
|
97
|
+
type: :development
|
98
|
+
prerelease: false
|
99
|
+
version_requirements: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.79'
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: rubocop-performance
|
92
106
|
requirement: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
108
|
- - ">="
|
@@ -102,7 +116,7 @@ dependencies:
|
|
102
116
|
- !ruby/object:Gem::Version
|
103
117
|
version: '0'
|
104
118
|
- !ruby/object:Gem::Dependency
|
105
|
-
name: rubocop-
|
119
|
+
name: rubocop-rspec
|
106
120
|
requirement: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
122
|
- - ">="
|
@@ -116,13 +130,27 @@ dependencies:
|
|
116
130
|
- !ruby/object:Gem::Version
|
117
131
|
version: '0'
|
118
132
|
- !ruby/object:Gem::Dependency
|
119
|
-
name:
|
133
|
+
name: dry-core
|
120
134
|
requirement: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
136
|
- - ">="
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: '0'
|
125
|
-
type: :
|
139
|
+
type: :runtime
|
140
|
+
prerelease: false
|
141
|
+
version_requirements: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
- !ruby/object:Gem::Dependency
|
147
|
+
name: dry-initializer
|
148
|
+
requirement: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
type: :runtime
|
126
154
|
prerelease: false
|
127
155
|
version_requirements: !ruby/object:Gem::Requirement
|
128
156
|
requirements:
|
@@ -169,11 +197,13 @@ extensions: []
|
|
169
197
|
extra_rdoc_files: []
|
170
198
|
files:
|
171
199
|
- ".gitignore"
|
200
|
+
- ".gitlab-ci.yml"
|
172
201
|
- ".rspec"
|
173
202
|
- ".rubocop.yml"
|
174
203
|
- ".rubocop_todo.yml"
|
175
204
|
- ".ruby-version"
|
176
205
|
- ".travis.yml"
|
206
|
+
- ".yardopts"
|
177
207
|
- CHANGELOG.md
|
178
208
|
- CONTRIBUTING.md
|
179
209
|
- Gemfile
|
@@ -185,11 +215,15 @@ files:
|
|
185
215
|
- auxiliary_rails.gemspec
|
186
216
|
- bin/auxiliary_rails
|
187
217
|
- bin/console
|
218
|
+
- bin/rubocop
|
188
219
|
- bin/setup
|
189
220
|
- lib/auxiliary_rails.rb
|
190
|
-
- lib/auxiliary_rails/
|
191
|
-
- lib/auxiliary_rails/
|
221
|
+
- lib/auxiliary_rails/application/command.rb
|
222
|
+
- lib/auxiliary_rails/application/error.rb
|
223
|
+
- lib/auxiliary_rails/application/form.rb
|
224
|
+
- lib/auxiliary_rails/application/query.rb
|
192
225
|
- lib/auxiliary_rails/cli.rb
|
226
|
+
- lib/auxiliary_rails/concerns/performable.rb
|
193
227
|
- lib/auxiliary_rails/railtie.rb
|
194
228
|
- lib/auxiliary_rails/version.rb
|
195
229
|
- lib/auxiliary_rails/view_helpers.rb
|
@@ -198,7 +232,6 @@ files:
|
|
198
232
|
- lib/generators/auxiliary_rails/install_commands_generator.rb
|
199
233
|
- lib/generators/auxiliary_rails/install_errors_generator.rb
|
200
234
|
- lib/generators/auxiliary_rails/install_generator.rb
|
201
|
-
- lib/generators/auxiliary_rails/install_rubocop_generator.rb
|
202
235
|
- lib/generators/auxiliary_rails/templates/apis/api_entity_template.rb.erb
|
203
236
|
- lib/generators/auxiliary_rails/templates/apis/api_helper_template.rb.erb
|
204
237
|
- lib/generators/auxiliary_rails/templates/apis/api_resource_spec_template.rb.erb
|
@@ -207,8 +240,7 @@ files:
|
|
207
240
|
- lib/generators/auxiliary_rails/templates/commands/application_command_template.rb
|
208
241
|
- lib/generators/auxiliary_rails/templates/commands/command_spec_template.rb
|
209
242
|
- lib/generators/auxiliary_rails/templates/commands/command_template.rb
|
210
|
-
- lib/generators/auxiliary_rails/templates/
|
211
|
-
- lib/generators/auxiliary_rails/templates/rubocop/rubocop_template.yml
|
243
|
+
- lib/generators/auxiliary_rails/templates/commands/commands.en_template.yml
|
212
244
|
- templates/rails/elementary.rb
|
213
245
|
homepage: https://github.com/ergoserv/auxiliary_rails
|
214
246
|
licenses:
|
@@ -216,7 +248,7 @@ licenses:
|
|
216
248
|
metadata:
|
217
249
|
homepage_uri: https://github.com/ergoserv/auxiliary_rails
|
218
250
|
source_code_uri: https://github.com/ergoserv/auxiliary_rails
|
219
|
-
changelog_uri: https://github.com/ergoserv/auxiliary_rails/
|
251
|
+
changelog_uri: https://github.com/ergoserv/auxiliary_rails/releases
|
220
252
|
post_install_message:
|
221
253
|
rdoc_options: []
|
222
254
|
require_paths:
|
@@ -1,95 +0,0 @@
|
|
1
|
-
require 'dry-initializer-rails'
|
2
|
-
require 'active_model'
|
3
|
-
|
4
|
-
module AuxiliaryRails
|
5
|
-
class AbstractCommand
|
6
|
-
extend Dry::Initializer
|
7
|
-
include ActiveModel::Validations
|
8
|
-
|
9
|
-
def self.call(*args)
|
10
|
-
new(*args).call
|
11
|
-
end
|
12
|
-
|
13
|
-
def call
|
14
|
-
raise NotImplementedError
|
15
|
-
end
|
16
|
-
|
17
|
-
def failure?
|
18
|
-
status?(:failure)
|
19
|
-
end
|
20
|
-
|
21
|
-
def status?(value)
|
22
|
-
ensure_execution!
|
23
|
-
|
24
|
-
status == value&.to_sym
|
25
|
-
end
|
26
|
-
|
27
|
-
def success?
|
28
|
-
status?(:success)
|
29
|
-
end
|
30
|
-
|
31
|
-
# Shortcut for `ActiveRecord::Base.transaction`
|
32
|
-
def transaction(&block)
|
33
|
-
ActiveRecord::Base.transaction(&block) if block_given?
|
34
|
-
end
|
35
|
-
|
36
|
-
# Method for ActiveModel::Errors
|
37
|
-
def read_attribute_for_validation(attr_name)
|
38
|
-
attr_name = attr_name.to_sym
|
39
|
-
if attr_name == :command
|
40
|
-
self
|
41
|
-
else
|
42
|
-
self.class.dry_initializer.attributes(self)[attr_name]
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
# Method for ActiveModel::Translation
|
47
|
-
def self.i18n_scope
|
48
|
-
:commands
|
49
|
-
end
|
50
|
-
|
51
|
-
protected
|
52
|
-
|
53
|
-
attr_accessor :status
|
54
|
-
|
55
|
-
def ensure_empty_errors!
|
56
|
-
return if errors.empty?
|
57
|
-
|
58
|
-
error!("`#{self.class}` contains errors.")
|
59
|
-
end
|
60
|
-
|
61
|
-
def ensure_empty_status!
|
62
|
-
return if status.nil?
|
63
|
-
|
64
|
-
error!("`#{self.class}` was already executed.")
|
65
|
-
end
|
66
|
-
|
67
|
-
def ensure_execution!
|
68
|
-
return if status.present?
|
69
|
-
|
70
|
-
error!("`#{self.class}` was not executed yet.")
|
71
|
-
end
|
72
|
-
|
73
|
-
def error!(message = nil)
|
74
|
-
message ||= "`#{self.class}` raised error."
|
75
|
-
raise ApplicationError, message
|
76
|
-
end
|
77
|
-
|
78
|
-
def failure!(message = nil)
|
79
|
-
ensure_empty_status!
|
80
|
-
|
81
|
-
errors.add(:command, :failed, message: message) unless message.nil?
|
82
|
-
|
83
|
-
self.status = :failure
|
84
|
-
self
|
85
|
-
end
|
86
|
-
|
87
|
-
def success!
|
88
|
-
ensure_empty_errors!
|
89
|
-
ensure_empty_status!
|
90
|
-
|
91
|
-
self.status = :success
|
92
|
-
self
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
require 'rails'
|
2
|
-
|
3
|
-
module AuxiliaryRails
|
4
|
-
class InstallRubocopGenerator < ::Rails::Generators::Base
|
5
|
-
class_option :specify_gems,
|
6
|
-
type: :boolean,
|
7
|
-
default: true,
|
8
|
-
desc: 'Indicates if `rubocop` gem needs to be added to Gemfile'
|
9
|
-
source_root File.expand_path('templates/rubocop', __dir__)
|
10
|
-
|
11
|
-
def copy_config_files
|
12
|
-
copy_file 'rubocop_template.yml',
|
13
|
-
'.rubocop.yml'
|
14
|
-
copy_file 'rubocop_auxiliary_rails_template.yml',
|
15
|
-
'.rubocop_auxiliary_rails.yml'
|
16
|
-
end
|
17
|
-
|
18
|
-
def specify_gems_dependency
|
19
|
-
return unless options[:specify_gems]
|
20
|
-
|
21
|
-
gem_group :development, :test do
|
22
|
-
gem 'rubocop'
|
23
|
-
gem 'rubocop-performance'
|
24
|
-
gem 'rubocop-rails'
|
25
|
-
gem 'rubocop-rspec'
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,65 +0,0 @@
|
|
1
|
-
# AuxiliaryRails RuboCop Config
|
2
|
-
# Homepage: https://github.com/ergoserv/auxiliary_rails
|
3
|
-
# Version: 8
|
4
|
-
|
5
|
-
AllCops:
|
6
|
-
Exclude:
|
7
|
-
- 'bin/*'
|
8
|
-
- 'db/schema.rb'
|
9
|
-
- 'db/migrate/*'
|
10
|
-
- 'node_modules/**/*'
|
11
|
-
- 'vendor/**/*'
|
12
|
-
|
13
|
-
#################### Layout ###############################
|
14
|
-
|
15
|
-
Layout/AlignArguments:
|
16
|
-
EnforcedStyle: with_fixed_indentation
|
17
|
-
|
18
|
-
#################### Metrics ###############################
|
19
|
-
|
20
|
-
Metrics/BlockLength:
|
21
|
-
ExcludedMethods:
|
22
|
-
- describe
|
23
|
-
- resource
|
24
|
-
|
25
|
-
Metrics/MethodLength:
|
26
|
-
Max: 30
|
27
|
-
|
28
|
-
#################### Naming ################################
|
29
|
-
|
30
|
-
Naming/MemoizedInstanceVariableName:
|
31
|
-
Exclude:
|
32
|
-
- 'app/apis/**/resources/*_resource.rb'
|
33
|
-
|
34
|
-
#################### Rails #################################
|
35
|
-
|
36
|
-
Rails:
|
37
|
-
Enabled: true
|
38
|
-
|
39
|
-
#################### RSpec #################################
|
40
|
-
|
41
|
-
RSpec/ExampleLength:
|
42
|
-
Max: 10
|
43
|
-
|
44
|
-
RSpec/NamedSubject:
|
45
|
-
Enabled: false
|
46
|
-
|
47
|
-
#################### Style #################################
|
48
|
-
|
49
|
-
Style/Documentation:
|
50
|
-
Enabled: false
|
51
|
-
|
52
|
-
Style/FrozenStringLiteralComment:
|
53
|
-
Enabled: false
|
54
|
-
|
55
|
-
Style/IfUnlessModifier:
|
56
|
-
Enabled: false
|
57
|
-
|
58
|
-
Style/NegatedIf:
|
59
|
-
EnforcedStyle: postfix
|
60
|
-
|
61
|
-
Style/NumericPredicate:
|
62
|
-
EnforcedStyle: comparison
|
63
|
-
|
64
|
-
Style/RescueStandardError:
|
65
|
-
EnforcedStyle: implicit
|