light-services 0.6.0 → 2.0.0.rc1

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/.github/config/rubocop_linter_action.yml +4 -0
  3. data/.github/workflows/ci.yml +63 -0
  4. data/.gitignore +8 -4
  5. data/.rspec +1 -0
  6. data/.rubocop.yml +22 -8
  7. data/CHANGELOG.md +1 -0
  8. data/CODE_OF_CONDUCT.md +55 -30
  9. data/Gemfile +16 -2
  10. data/Gemfile.lock +101 -0
  11. data/LICENSE.txt +1 -1
  12. data/README.md +3 -149
  13. data/Rakefile +2 -2
  14. data/bin/console +4 -4
  15. data/lib/light/services.rb +4 -7
  16. data/lib/light/services/base.rb +142 -30
  17. data/lib/light/services/base_with_context.rb +33 -0
  18. data/lib/light/services/class_based_collection/base.rb +88 -0
  19. data/lib/light/services/class_based_collection/mount.rb +33 -0
  20. data/lib/light/services/collection/arguments.rb +34 -0
  21. data/lib/light/services/collection/base.rb +47 -0
  22. data/lib/light/services/collection/outputs.rb +16 -0
  23. data/lib/light/services/config.rb +63 -0
  24. data/lib/light/services/exceptions.rb +3 -2
  25. data/lib/light/services/messages.rb +74 -41
  26. data/lib/light/services/settings/argument.rb +50 -0
  27. data/lib/light/services/settings/output.rb +34 -0
  28. data/lib/light/services/settings/step.rb +71 -0
  29. data/lib/light/services/version.rb +1 -1
  30. data/light-services.gemspec +21 -24
  31. metadata +28 -129
  32. data/.codeclimate.yml +0 -18
  33. data/.ruby-gemset +0 -1
  34. data/.ruby-version +0 -1
  35. data/.travis.yml +0 -36
  36. data/Appraisals +0 -25
  37. data/gemfiles/rails_4_0.gemfile +0 -7
  38. data/gemfiles/rails_4_0.gemfile.lock +0 -115
  39. data/gemfiles/rails_4_1.gemfile +0 -7
  40. data/gemfiles/rails_4_1.gemfile.lock +0 -118
  41. data/gemfiles/rails_4_2.gemfile +0 -7
  42. data/gemfiles/rails_4_2.gemfile.lock +0 -144
  43. data/gemfiles/rails_5_0.gemfile +0 -7
  44. data/gemfiles/rails_5_0.gemfile.lock +0 -151
  45. data/gemfiles/rails_5_1.gemfile +0 -7
  46. data/gemfiles/rails_5_1.gemfile.lock +0 -151
  47. data/gemfiles/rails_5_2.gemfile +0 -7
  48. data/gemfiles/rails_5_2.gemfile.lock +0 -159
  49. data/lib/light/services/callbacks.rb +0 -54
  50. data/lib/light/services/outputs.rb +0 -70
  51. data/lib/light/services/parameters.rb +0 -96
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Light
4
4
  module Services
5
- VERSION = '0.6.0'
5
+ VERSION = "2.0.0.rc1"
6
6
  end
7
7
  end
@@ -1,35 +1,32 @@
1
- # encoding: utf-8
2
1
  # frozen_string_literal: true
3
2
 
4
- lib = File.expand_path('../lib', __FILE__)
5
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
6
- require 'light/services/version'
3
+ require_relative "lib/light/services/version"
7
4
 
8
5
  Gem::Specification.new do |spec|
9
- spec.name = 'light-services'
6
+ spec.name = "light-services"
10
7
  spec.version = Light::Services::VERSION
11
- spec.authors = ['Andrew Emelianenko']
12
- spec.email = ['emelianenko.web@gmail.com']
8
+ spec.authors = ["Andrew Emelianenko"]
9
+ spec.email = ["emelianenko.web@gmail.com"]
13
10
 
14
- spec.summary = 'Light pattern Services Object for Ruby/Rails'
15
- spec.description = 'Light pattern Services Object for Ruby/Rails from Light Ruby'
16
- spec.homepage = 'https://github.com/light-ruby/light-services'
17
- spec.license = 'MIT'
11
+ spec.summary = "Powerful implementation of Service Object pattern for Ruby and Rails"
12
+ spec.description = "Powerful implementation of Service Object pattern for Ruby and Rails"
13
+ spec.homepage = "https://github.com/light-ruby/light-services"
14
+ spec.license = "MIT"
15
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
18
16
 
19
- spec.files = `git ls-files -z`
20
- .split("\x0")
21
- .reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
22
18
 
23
- spec.bindir = 'exe'
24
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
- spec.require_paths = ['lib']
19
+ spec.metadata["homepage_uri"] = spec.homepage
20
+ spec.metadata["source_code_uri"] = "https://github.com/light-ruby/light-services"
21
+ spec.metadata["changelog_uri"] = "https://github.com/light-ruby/light-services/blob/master/CHANGELOG.md"
26
22
 
27
- spec.add_dependency 'rails', '> 4.0'
23
+ # Specify which files should be added to the gem when it is released.
24
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
25
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
26
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
27
+ end
28
28
 
29
- spec.add_development_dependency 'bundler', '~> 1.12'
30
- spec.add_development_dependency 'rake', '~> 10.0'
31
- spec.add_development_dependency 'appraisal', '~> 2.1'
32
- spec.add_development_dependency 'rspec', '~> 3.0'
33
- spec.add_development_dependency 'simplecov', '~> 0.11.2'
34
- spec.add_development_dependency 'codeclimate-test-reporter'
29
+ spec.bindir = "exe"
30
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
+ spec.require_paths = ["lib"]
35
32
  end
metadata CHANGED
@@ -1,160 +1,60 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: light-services
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 2.0.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Emelianenko
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-09-05 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: rails
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">"
18
- - !ruby/object:Gem::Version
19
- version: '4.0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">"
25
- - !ruby/object:Gem::Version
26
- version: '4.0'
27
- - !ruby/object:Gem::Dependency
28
- name: bundler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '1.12'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '1.12'
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '10.0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '10.0'
55
- - !ruby/object:Gem::Dependency
56
- name: appraisal
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: rspec
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '3.0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '3.0'
83
- - !ruby/object:Gem::Dependency
84
- name: simplecov
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: 0.11.2
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: 0.11.2
97
- - !ruby/object:Gem::Dependency
98
- name: codeclimate-test-reporter
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- description: Light pattern Services Object for Ruby/Rails from Light Ruby
11
+ date: 2021-06-10 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Powerful implementation of Service Object pattern for Ruby and Rails
112
14
  email:
113
15
  - emelianenko.web@gmail.com
114
16
  executables: []
115
17
  extensions: []
116
18
  extra_rdoc_files: []
117
19
  files:
118
- - ".codeclimate.yml"
20
+ - ".github/config/rubocop_linter_action.yml"
21
+ - ".github/workflows/ci.yml"
119
22
  - ".gitignore"
120
23
  - ".rspec"
121
24
  - ".rubocop.yml"
122
- - ".ruby-gemset"
123
- - ".ruby-version"
124
- - ".travis.yml"
125
- - Appraisals
25
+ - CHANGELOG.md
126
26
  - CODE_OF_CONDUCT.md
127
27
  - Gemfile
28
+ - Gemfile.lock
128
29
  - LICENSE.txt
129
30
  - README.md
130
31
  - Rakefile
131
32
  - bin/console
132
33
  - bin/setup
133
- - gemfiles/rails_4_0.gemfile
134
- - gemfiles/rails_4_0.gemfile.lock
135
- - gemfiles/rails_4_1.gemfile
136
- - gemfiles/rails_4_1.gemfile.lock
137
- - gemfiles/rails_4_2.gemfile
138
- - gemfiles/rails_4_2.gemfile.lock
139
- - gemfiles/rails_5_0.gemfile
140
- - gemfiles/rails_5_0.gemfile.lock
141
- - gemfiles/rails_5_1.gemfile
142
- - gemfiles/rails_5_1.gemfile.lock
143
- - gemfiles/rails_5_2.gemfile
144
- - gemfiles/rails_5_2.gemfile.lock
145
34
  - lib/light/services.rb
146
35
  - lib/light/services/base.rb
147
- - lib/light/services/callbacks.rb
36
+ - lib/light/services/base_with_context.rb
37
+ - lib/light/services/class_based_collection/base.rb
38
+ - lib/light/services/class_based_collection/mount.rb
39
+ - lib/light/services/collection/arguments.rb
40
+ - lib/light/services/collection/base.rb
41
+ - lib/light/services/collection/outputs.rb
42
+ - lib/light/services/config.rb
148
43
  - lib/light/services/exceptions.rb
149
44
  - lib/light/services/messages.rb
150
- - lib/light/services/outputs.rb
151
- - lib/light/services/parameters.rb
45
+ - lib/light/services/settings/argument.rb
46
+ - lib/light/services/settings/output.rb
47
+ - lib/light/services/settings/step.rb
152
48
  - lib/light/services/version.rb
153
49
  - light-services.gemspec
154
50
  homepage: https://github.com/light-ruby/light-services
155
51
  licenses:
156
52
  - MIT
157
- metadata: {}
53
+ metadata:
54
+ allowed_push_host: https://rubygems.org
55
+ homepage_uri: https://github.com/light-ruby/light-services
56
+ source_code_uri: https://github.com/light-ruby/light-services
57
+ changelog_uri: https://github.com/light-ruby/light-services/blob/master/CHANGELOG.md
158
58
  post_install_message:
159
59
  rdoc_options: []
160
60
  require_paths:
@@ -163,16 +63,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
163
63
  requirements:
164
64
  - - ">="
165
65
  - !ruby/object:Gem::Version
166
- version: '0'
66
+ version: 2.3.0
167
67
  required_rubygems_version: !ruby/object:Gem::Requirement
168
68
  requirements:
169
- - - ">="
69
+ - - ">"
170
70
  - !ruby/object:Gem::Version
171
- version: '0'
71
+ version: 1.3.1
172
72
  requirements: []
173
- rubyforge_project:
174
- rubygems_version: 2.7.6
73
+ rubygems_version: 3.1.2
175
74
  signing_key:
176
75
  specification_version: 4
177
- summary: Light pattern Services Object for Ruby/Rails
76
+ summary: Powerful implementation of Service Object pattern for Ruby and Rails
178
77
  test_files: []
data/.codeclimate.yml DELETED
@@ -1,18 +0,0 @@
1
- ---
2
- engines:
3
- duplication:
4
- enabled: true
5
- config:
6
- languages:
7
- - ruby
8
- fixme:
9
- enabled: true
10
- rubocop:
11
- enabled: true
12
-
13
- ratings:
14
- paths:
15
- - "**.rb"
16
-
17
- exclude_paths:
18
- - spec/
data/.ruby-gemset DELETED
@@ -1 +0,0 @@
1
- light-services
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 2.5.1
data/.travis.yml DELETED
@@ -1,36 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.5.1
5
-
6
- env:
7
- global:
8
- - CC_TEST_REPORTER_ID=dedf6049120e32b166263dd9e07b2abea3991a18b2d0c8dc86792776ca7578ce
9
- - GIT_COMMITTED_AT=$(if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then git log -1 --pretty=format:%ct; else git log -1 --skip 1 --pretty=format:%ct; fi)
10
-
11
- before_script:
12
- - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
13
- - chmod +x ./cc-test-reporter
14
- - ./cc-test-reporter before-build
15
-
16
- before_install: gem install bundler
17
-
18
- gemfile:
19
- - gemfiles/rails_4_0.gemfile
20
- - gemfiles/rails_4_1.gemfile
21
- - gemfiles/rails_4_2.gemfile
22
- - gemfiles/rails_5_0.gemfile
23
- - gemfiles/rails_5_1.gemfile
24
- - gemfiles/rails_5_2.gemfile
25
-
26
- script:
27
- - bundle exec rake
28
-
29
- after_script:
30
- # Preferably you will run test-reporter on branch update events. But
31
- # if you setup travis to build PR updates only, you don't need to run
32
- # the line below
33
- - if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT; fi
34
- # In the case where travis is setup to build PR updates only,
35
- # uncomment the line below
36
- # - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
data/Appraisals DELETED
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- appraise 'rails-4-0' do
4
- gem 'rails', '4.0.13'
5
- end
6
-
7
- appraise 'rails-4-1' do
8
- gem 'rails', '4.1.16'
9
- end
10
-
11
- appraise 'rails-4-2' do
12
- gem 'rails', '4.2.10'
13
- end
14
-
15
- appraise 'rails-5-0' do
16
- gem 'rails', '5.0.7'
17
- end
18
-
19
- appraise 'rails-5-1' do
20
- gem 'rails', '5.1.6'
21
- end
22
-
23
- appraise 'rails-5-2' do
24
- gem 'rails', '5.2.1'
25
- end
@@ -1,7 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rails", "4.0.13"
6
-
7
- gemspec path: "../"
@@ -1,115 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- light-services (0.6.0)
5
- rails (> 4.0)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- actionmailer (4.0.13)
11
- actionpack (= 4.0.13)
12
- mail (~> 2.5, >= 2.5.4)
13
- actionpack (4.0.13)
14
- activesupport (= 4.0.13)
15
- builder (~> 3.1.0)
16
- erubis (~> 2.7.0)
17
- rack (~> 1.5.2)
18
- rack-test (~> 0.6.2)
19
- activemodel (4.0.13)
20
- activesupport (= 4.0.13)
21
- builder (~> 3.1.0)
22
- activerecord (4.0.13)
23
- activemodel (= 4.0.13)
24
- activerecord-deprecated_finders (~> 1.0.2)
25
- activesupport (= 4.0.13)
26
- arel (~> 4.0.0)
27
- activerecord-deprecated_finders (1.0.4)
28
- activesupport (4.0.13)
29
- i18n (~> 0.6, >= 0.6.9)
30
- minitest (~> 4.2)
31
- multi_json (~> 1.3)
32
- thread_safe (~> 0.1)
33
- tzinfo (~> 0.3.37)
34
- appraisal (2.1.0)
35
- bundler
36
- rake
37
- thor (>= 0.14.0)
38
- arel (4.0.2)
39
- builder (3.1.4)
40
- codeclimate-test-reporter (0.5.1)
41
- simplecov (>= 0.7.1, < 1.0.0)
42
- concurrent-ruby (1.0.2)
43
- diff-lcs (1.2.5)
44
- docile (1.1.5)
45
- erubis (2.7.0)
46
- i18n (0.7.0)
47
- json (1.8.6)
48
- mail (2.6.4)
49
- mime-types (>= 1.16, < 4)
50
- mime-types (3.1)
51
- mime-types-data (~> 3.2015)
52
- mime-types-data (3.2016.0521)
53
- minitest (4.7.5)
54
- multi_json (1.12.1)
55
- rack (1.5.5)
56
- rack-test (0.6.3)
57
- rack (>= 1.0)
58
- rails (4.0.13)
59
- actionmailer (= 4.0.13)
60
- actionpack (= 4.0.13)
61
- activerecord (= 4.0.13)
62
- activesupport (= 4.0.13)
63
- bundler (>= 1.3.0, < 2.0)
64
- railties (= 4.0.13)
65
- sprockets-rails (~> 2.0)
66
- railties (4.0.13)
67
- actionpack (= 4.0.13)
68
- activesupport (= 4.0.13)
69
- rake (>= 0.8.7)
70
- thor (>= 0.18.1, < 2.0)
71
- rake (10.5.0)
72
- rspec (3.4.0)
73
- rspec-core (~> 3.4.0)
74
- rspec-expectations (~> 3.4.0)
75
- rspec-mocks (~> 3.4.0)
76
- rspec-core (3.4.4)
77
- rspec-support (~> 3.4.0)
78
- rspec-expectations (3.4.0)
79
- diff-lcs (>= 1.2.0, < 2.0)
80
- rspec-support (~> 3.4.0)
81
- rspec-mocks (3.4.1)
82
- diff-lcs (>= 1.2.0, < 2.0)
83
- rspec-support (~> 3.4.0)
84
- rspec-support (3.4.1)
85
- simplecov (0.11.2)
86
- docile (~> 1.1.0)
87
- json (~> 1.8)
88
- simplecov-html (~> 0.10.0)
89
- simplecov-html (0.10.0)
90
- sprockets (3.6.1)
91
- concurrent-ruby (~> 1.0)
92
- rack (> 1, < 3)
93
- sprockets-rails (2.3.3)
94
- actionpack (>= 3.0)
95
- activesupport (>= 3.0)
96
- sprockets (>= 2.8, < 4.0)
97
- thor (0.19.1)
98
- thread_safe (0.3.5)
99
- tzinfo (0.3.49)
100
-
101
- PLATFORMS
102
- ruby
103
-
104
- DEPENDENCIES
105
- appraisal (~> 2.1)
106
- bundler (~> 1.12)
107
- codeclimate-test-reporter
108
- light-services!
109
- rails (= 4.0.13)
110
- rake (~> 10.0)
111
- rspec (~> 3.0)
112
- simplecov (~> 0.11.2)
113
-
114
- BUNDLED WITH
115
- 1.16.2