auxiliary_rails 0.3.1 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/main.yml +32 -0
  3. data/.github/workflows/publish-gpr.yml +32 -0
  4. data/.github/workflows/publish-rubygems.yml +31 -0
  5. data/.rubocop.yml +10 -6
  6. data/.rubocop_todo.yml +1 -7
  7. data/.ruby-version +1 -1
  8. data/CHANGELOG.md +11 -1
  9. data/CODE_OF_CONDUCT.md +128 -0
  10. data/Gemfile +9 -1
  11. data/Gemfile.lock +175 -138
  12. data/README.md +77 -17
  13. data/auxiliary_rails.gemspec +12 -15
  14. data/bin/rspec +29 -0
  15. data/lib/auxiliary_rails/application/command.rb +3 -6
  16. data/lib/auxiliary_rails/application/error.rb +44 -4
  17. data/lib/auxiliary_rails/application/form.rb +1 -0
  18. data/lib/auxiliary_rails/application/query.rb +11 -7
  19. data/lib/auxiliary_rails/application/service.rb +42 -0
  20. data/lib/auxiliary_rails/concerns/callable.rb +23 -0
  21. data/lib/auxiliary_rails/concerns/errorable.rb +12 -12
  22. data/lib/auxiliary_rails/concerns/performable.rb +14 -22
  23. data/lib/auxiliary_rails/railtie.rb +2 -1
  24. data/lib/auxiliary_rails/version.rb +1 -1
  25. data/lib/auxiliary_rails/view_helpers/display_helper.rb +30 -0
  26. data/lib/auxiliary_rails/view_helpers.rb +4 -0
  27. data/lib/auxiliary_rails.rb +3 -1
  28. data/lib/generators/auxiliary_rails/install_errors_controller_generator.rb +31 -0
  29. data/lib/generators/auxiliary_rails/install_generator.rb +1 -0
  30. data/lib/generators/auxiliary_rails/service_generator.rb +48 -0
  31. data/lib/generators/auxiliary_rails/templates/commands/command_spec_template.rb +1 -1
  32. data/lib/generators/auxiliary_rails/templates/errors_controller/errors_controller_template.rb +15 -0
  33. data/lib/generators/auxiliary_rails/templates/errors_controller/not_found_template.html.erb +2 -0
  34. data/lib/generators/auxiliary_rails/templates/errors_controller/show_template.html.erb +1 -0
  35. data/lib/generators/auxiliary_rails/templates/errors_controller/unacceptable_template.html.erb +2 -0
  36. data/lib/generators/auxiliary_rails/templates/services/service_spec_template.rb +5 -0
  37. data/lib/generators/auxiliary_rails/templates/services/service_template.rb +10 -0
  38. metadata +24 -111
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 96acec32159316a20cb54c5f2e456fb7c87b6e1f058f6944df4fb1bdeeca2517
4
- data.tar.gz: 3ca5ea02af552fb200555f1ab40160b86394b255ecbe2550aebb50e1ac0571b1
3
+ metadata.gz: 21e4e3b8cdcab3166166462d80211275b7ea9e4fe969bfc943d21564491a94b7
4
+ data.tar.gz: bcfa3f19a26113a434e4a6f09d95a00314eae2495e44d79872ce4f46801f6569
5
5
  SHA512:
6
- metadata.gz: b6c230d4ceadb59c9ad3260c575d571ddb6b190ff7bac76e597cf6334fdcec2a033e8a467893336ad9c1dc21efbc9c2c1c17823861ac4f954d51856066465461
7
- data.tar.gz: 05c3be9386e85591ed4afbcd6f178d41a460dd20348580fa443393d736196fca7affa1db32a5ee6eca3b33d52f62e27a55e896620c26c14feca7b63799920438
6
+ metadata.gz: 58db65a473fe1408ca20d6a0f250e47fbba2d60759b9915589735efc2e9562825d702452c42870abfe3077e0e894df5c2228c1737315e30a80792e11be53ff37
7
+ data.tar.gz: 79fbffab02c929e3169c46bfc3f9db020bd9ef3a14240143b1dd422917ae291517511d49dd365ab6284f2205d8fc28fef03f89c5999066ee186f500447526bfc
@@ -0,0 +1,32 @@
1
+ name: Run Checks
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ - develop
8
+
9
+ pull_request:
10
+
11
+ jobs:
12
+ build:
13
+ name: Run Checks on Ruby ${{ matrix.ruby }}
14
+ runs-on: ubuntu-latest
15
+ strategy:
16
+ matrix:
17
+ ruby:
18
+ - '2.7'
19
+ - '3.1'
20
+ - '3.2'
21
+
22
+ steps:
23
+ - uses: actions/checkout@v2
24
+ - name: Set up Ruby
25
+ uses: ruby/setup-ruby@v1
26
+ with:
27
+ ruby-version: ${{ matrix.ruby }}
28
+ bundler-cache: true
29
+ - name: Run rspec
30
+ run: bin/rspec
31
+ - name: Run rubocop
32
+ run: bin/rubocop
@@ -0,0 +1,32 @@
1
+ name: Publish to GPR
2
+
3
+ on:
4
+ push:
5
+ branches: [ "master" ]
6
+ pull_request:
7
+ branches: [ "master" ]
8
+
9
+ jobs:
10
+ build:
11
+ name: Build + Publish to GPR
12
+ runs-on: ubuntu-latest
13
+ permissions:
14
+ contents: read
15
+ packages: write
16
+
17
+ steps:
18
+ - uses: actions/checkout@v3
19
+ - name: Set up Ruby
20
+ uses: actions/setup-ruby@v1
21
+
22
+ - name: Publish to GPR
23
+ run: |
24
+ mkdir -p $HOME/.gem
25
+ touch $HOME/.gem/credentials
26
+ chmod 0600 $HOME/.gem/credentials
27
+ printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
28
+ gem build *.gemspec
29
+ gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
30
+ env:
31
+ GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
32
+ OWNER: ${{ github.repository_owner }}
@@ -0,0 +1,31 @@
1
+ name: Publish to RubyGems
2
+
3
+ on:
4
+ push:
5
+ branches: [ "master" ]
6
+ pull_request:
7
+ branches: [ "master" ]
8
+
9
+ jobs:
10
+ build:
11
+ name: Build + Publish to RubyGems
12
+ runs-on: ubuntu-latest
13
+ permissions:
14
+ contents: read
15
+ packages: write
16
+
17
+ steps:
18
+ - uses: actions/checkout@v3
19
+ - name: Set up Ruby
20
+ uses: actions/setup-ruby@v1
21
+
22
+ - name: Publish to RubyGems
23
+ run: |
24
+ mkdir -p $HOME/.gem
25
+ touch $HOME/.gem/credentials
26
+ chmod 0600 $HOME/.gem/credentials
27
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
28
+ gem build *.gemspec
29
+ gem push *.gem
30
+ env:
31
+ GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
data/.rubocop.yml CHANGED
@@ -3,27 +3,28 @@ inherit_from:
3
3
 
4
4
  require:
5
5
  - rubocop-performance
6
+ - rubocop-rake
6
7
  - rubocop-rspec
7
8
 
8
9
  AllCops:
9
10
  Exclude:
11
+ - bin/rspec
10
12
  - bin/rubocop
11
13
  - lib/generators/auxiliary_rails/templates/**/*
12
14
  - vendor/**/* # fix for CI
15
+ NewCops: enable
16
+ TargetRubyVersion: 2.5
13
17
 
14
18
  #################### Layout ##############################
15
19
 
16
20
  Layout/ArgumentAlignment:
17
21
  EnforcedStyle: with_fixed_indentation
18
22
 
19
- Layout/MultilineMethodCallIndentation:
23
+ Layout/LineEndStringConcatenationIndentation:
20
24
  EnforcedStyle: indented
21
25
 
22
- #################### Metrics ##############################
23
-
24
- Metrics/BlockLength:
25
- ExcludedMethods:
26
- - describe
26
+ Layout/MultilineMethodCallIndentation:
27
+ EnforcedStyle: indented
27
28
 
28
29
  #################### RSpec ################################
29
30
 
@@ -38,6 +39,9 @@ RSpec/MultipleExpectations:
38
39
  Style/Documentation:
39
40
  Enabled: false
40
41
 
42
+ Style/IfUnlessModifier:
43
+ Enabled: false
44
+
41
45
  Style/FrozenStringLiteralComment:
42
46
  Enabled: false
43
47
 
data/.rubocop_todo.yml CHANGED
@@ -1,17 +1,11 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2020-03-13 22:32:38 +0200 using RuboCop version 0.80.1.
3
+ # on 2021-11-19 20:08:00 UTC using RuboCop version 1.20.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 1
10
- # Cop supports --auto-correct.
11
- Lint/SendWithMixinArgument:
12
- Exclude:
13
- - 'lib/auxiliary_rails/railtie.rb'
14
-
15
9
  # Offense count: 1
16
10
  RSpec/NestedGroups:
17
11
  Max: 4
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.6.3
1
+ 3.2.2
data/CHANGELOG.md CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.4.0] - 2022-08-28
6
+
7
+ ### Added
8
+
9
+ - `AuxiliaryRails::Application::Error` significantly extended
10
+ - `AuxiliaryRails::Application::Service` added
11
+ - `AuxiliaryRails::Concerns::Callable` added
12
+ - `ErrorsController` template (custom error pages)
13
+ - View helper: `display_name`
14
+
5
15
  ## v0.3.1
6
16
 
7
17
  ### Added
@@ -26,7 +36,7 @@
26
36
  - Commands: force validations
27
37
 
28
38
  ### Removed
29
- - RuboCop generator replaced with `rubocop-ergoserv` gem
39
+ - RuboCop generator moved to [rubocop-ergoserv](https://github.com/ergoserv/rubocop-ergoserv) gem
30
40
 
31
41
  ## v0.2.0
32
42
 
@@ -0,0 +1,128 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a harassment-free experience for everyone, regardless of age, body
7
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
8
+ identity and expression, level of experience, education, socio-economic status,
9
+ nationality, personal appearance, race, religion, or sexual identity
10
+ and orientation.
11
+
12
+ We pledge to act and interact in ways that contribute to an open, welcoming,
13
+ diverse, inclusive, and healthy community.
14
+
15
+ ## Our Standards
16
+
17
+ Examples of behavior that contributes to a positive environment for our
18
+ community include:
19
+
20
+ * Demonstrating empathy and kindness toward other people
21
+ * Being respectful of differing opinions, viewpoints, and experiences
22
+ * Giving and gracefully accepting constructive feedback
23
+ * Accepting responsibility and apologizing to those affected by our mistakes,
24
+ and learning from the experience
25
+ * Focusing on what is best not just for us as individuals, but for the
26
+ overall community
27
+
28
+ Examples of unacceptable behavior include:
29
+
30
+ * The use of sexualized language or imagery, and sexual attention or
31
+ advances of any kind
32
+ * Trolling, insulting or derogatory comments, and personal or political attacks
33
+ * Public or private harassment
34
+ * Publishing others' private information, such as a physical or email
35
+ address, without their explicit permission
36
+ * Other conduct which could reasonably be considered inappropriate in a
37
+ professional setting
38
+
39
+ ## Enforcement Responsibilities
40
+
41
+ Community leaders are responsible for clarifying and enforcing our standards of
42
+ acceptable behavior and will take appropriate and fair corrective action in
43
+ response to any behavior that they deem inappropriate, threatening, offensive,
44
+ or harmful.
45
+
46
+ Community leaders have the right and responsibility to remove, edit, or reject
47
+ comments, commits, code, wiki edits, issues, and other contributions that are
48
+ not aligned to this Code of Conduct, and will communicate reasons for moderation
49
+ decisions when appropriate.
50
+
51
+ ## Scope
52
+
53
+ This Code of Conduct applies within all community spaces, and also applies when
54
+ an individual is officially representing the community in public spaces.
55
+ Examples of representing our community include using an official e-mail address,
56
+ posting via an official social media account, or acting as an appointed
57
+ representative at an online or offline event.
58
+
59
+ ## Enforcement
60
+
61
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
62
+ reported to the community leaders responsible for enforcement at
63
+ hello@ergoserv.com.
64
+ All complaints will be reviewed and investigated promptly and fairly.
65
+
66
+ All community leaders are obligated to respect the privacy and security of the
67
+ reporter of any incident.
68
+
69
+ ## Enforcement Guidelines
70
+
71
+ Community leaders will follow these Community Impact Guidelines in determining
72
+ the consequences for any action they deem in violation of this Code of Conduct:
73
+
74
+ ### 1. Correction
75
+
76
+ **Community Impact**: Use of inappropriate language or other behavior deemed
77
+ unprofessional or unwelcome in the community.
78
+
79
+ **Consequence**: A private, written warning from community leaders, providing
80
+ clarity around the nature of the violation and an explanation of why the
81
+ behavior was inappropriate. A public apology may be requested.
82
+
83
+ ### 2. Warning
84
+
85
+ **Community Impact**: A violation through a single incident or series
86
+ of actions.
87
+
88
+ **Consequence**: A warning with consequences for continued behavior. No
89
+ interaction with the people involved, including unsolicited interaction with
90
+ those enforcing the Code of Conduct, for a specified period of time. This
91
+ includes avoiding interactions in community spaces as well as external channels
92
+ like social media. Violating these terms may lead to a temporary or
93
+ permanent ban.
94
+
95
+ ### 3. Temporary Ban
96
+
97
+ **Community Impact**: A serious violation of community standards, including
98
+ sustained inappropriate behavior.
99
+
100
+ **Consequence**: A temporary ban from any sort of interaction or public
101
+ communication with the community for a specified period of time. No public or
102
+ private interaction with the people involved, including unsolicited interaction
103
+ with those enforcing the Code of Conduct, is allowed during this period.
104
+ Violating these terms may lead to a permanent ban.
105
+
106
+ ### 4. Permanent Ban
107
+
108
+ **Community Impact**: Demonstrating a pattern of violation of community
109
+ standards, including sustained inappropriate behavior, harassment of an
110
+ individual, or aggression toward or disparagement of classes of individuals.
111
+
112
+ **Consequence**: A permanent ban from any sort of public interaction within
113
+ the community.
114
+
115
+ ## Attribution
116
+
117
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118
+ version 2.0, available at
119
+ https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
120
+
121
+ Community Impact Guidelines were inspired by [Mozilla's code of conduct
122
+ enforcement ladder](https://github.com/mozilla/diversity).
123
+
124
+ [homepage]: https://www.contributor-covenant.org
125
+
126
+ For answers to common questions about this code of conduct, see the FAQ at
127
+ https://www.contributor-covenant.org/faq. Translations are available at
128
+ https://www.contributor-covenant.org/translations.
data/Gemfile CHANGED
@@ -1,4 +1,12 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in auxiliary_rails.gemspec
4
3
  gemspec
4
+
5
+ gem 'bundler', '~> 2.0'
6
+ gem 'pry'
7
+ gem 'rake'
8
+ gem 'rspec', '~> 3.8'
9
+ gem 'rubocop', '~> 1.54'
10
+ gem 'rubocop-performance'
11
+ gem 'rubocop-rake'
12
+ gem 'rubocop-rspec'