lite-decorator 1.0.1 → 1.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b217a968ad5aa2bfc976383a9458990fbfad83387e0f533a4f34b7666ce895a7
4
- data.tar.gz: 8071528b21c91446bdd136b49c9aca06cc93594af049ac7e5ece08a36dcd6990
3
+ metadata.gz: bb732c4c27f57a4dcbad6502bc54494c4cf799c715def608cddc9280b950e0f1
4
+ data.tar.gz: cd95d77394921cf08465469390c6165d94ed798b94c8b74018ab6d34d47da043
5
5
  SHA512:
6
- metadata.gz: a9e7f484acae99a89351772d7e5e8d820bb9ecdbee1b0811a0f76ff49f6dff9797d8706b936e0fb8607ab0c83735c81e93ab8f6bd5346f4c5ece47e14123df73
7
- data.tar.gz: 9526e30deed656eb2deb927d78b6d5762cd00aa1ce308e6ea556d7e12ee64a1a33e609e9bd36980d0460ef887e87661d1352324cfa0a820d9b424e6ecd2618d8
6
+ metadata.gz: bb58f46b3a274f4c8cd4f58df4884b78f12f70446bdabe6973c7b7c876a044b0d25c954f44448c8a6750715ac1b08a02ab92f0bcf2ca49e6d1c4298507f53256
7
+ data.tar.gz: 470cc2b74d7abb408ecd96d1c6fe3bbb90668a6b7484ed06f49838ff4a2b02892917eb436bc3e88207e98f15091c30832192b167e6cfe4c41e10fb4fa2e5209b
data/.rubocop.yml CHANGED
@@ -1,12 +1,16 @@
1
1
  require:
2
2
  - rubocop-performance
3
+ - rubocop-rake
3
4
  - rubocop-rspec
4
5
  AllCops:
5
- TargetRubyVersion: 2.6
6
+ TargetRubyVersion: 3.0
7
+ NewCops: enable
6
8
  DisplayCopNames: true
7
9
  DisplayStyleGuide: true
8
- LineLength:
9
- Max: 100
10
+ Gemspec/RequiredRubyVersion:
11
+ Enabled: false
12
+ Layout/EmptyLinesAroundAttributeAccessor:
13
+ Enabled: true
10
14
  Layout/EmptyLinesAroundBlockBody:
11
15
  Exclude:
12
16
  - 'spec/**/**/*'
@@ -14,6 +18,14 @@ Layout/EmptyLinesAroundClassBody:
14
18
  EnforcedStyle: empty_lines_except_namespace
15
19
  Layout/EmptyLinesAroundModuleBody:
16
20
  EnforcedStyle: empty_lines_except_namespace
21
+ Layout/LineLength:
22
+ Max: 100
23
+ Layout/SpaceAroundMethodCallOperator:
24
+ Enabled: true
25
+ Lint/RaiseException:
26
+ Enabled: true
27
+ Lint/StructNewOverride:
28
+ Enabled: true
17
29
  Metrics/BlockLength:
18
30
  Exclude:
19
31
  - 'spec/**/**/*'
@@ -24,6 +36,8 @@ RSpec/ExampleLength:
24
36
  Enabled: false
25
37
  RSpec/MultipleExpectations:
26
38
  Enabled: false
39
+ Style/ArgumentsForwarding:
40
+ Enabled: false
27
41
  Style/Documentation:
28
42
  Enabled: false
29
43
  Style/ExpandPathArguments:
data/CHANGELOG.md CHANGED
@@ -6,6 +6,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.1.1] - 2021-07-21
10
+ ### Changed
11
+ - Improved Railtie support
12
+
13
+ ## [1.1.0] - 2021-07-19
14
+ ### Added
15
+ - Added Ruby 3.0 support
16
+
17
+ ## [1.0.3] - 2019-12-21
18
+ ### Added
19
+ - Added ruby 2.7 support
20
+ ### Removed
21
+ - Removed generator empty directory check
22
+
23
+ ## [1.0.2] - 2019-12-20
24
+ ### Removed
25
+ - Removed lite-decorator generator
26
+ - Removed spec from rails generator
27
+
9
28
  ## [1.0.1] - 2019-09-02
10
29
  ### Added
11
30
  - Add rails generators
data/Gemfile.lock CHANGED
@@ -1,114 +1,129 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lite-decorator (1.0.1)
4
+ lite-decorator (1.1.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- actionpack (6.0.0)
10
- actionview (= 6.0.0)
11
- activesupport (= 6.0.0)
12
- rack (~> 2.0)
9
+ actionpack (6.1.4)
10
+ actionview (= 6.1.4)
11
+ activesupport (= 6.1.4)
12
+ rack (~> 2.0, >= 2.0.9)
13
13
  rack-test (>= 0.6.3)
14
14
  rails-dom-testing (~> 2.0)
15
15
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
16
- actionview (6.0.0)
17
- activesupport (= 6.0.0)
16
+ actionview (6.1.4)
17
+ activesupport (= 6.1.4)
18
18
  builder (~> 3.1)
19
19
  erubi (~> 1.4)
20
20
  rails-dom-testing (~> 2.0)
21
21
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
22
- activemodel (6.0.0)
23
- activesupport (= 6.0.0)
24
- activerecord (6.0.0)
25
- activemodel (= 6.0.0)
26
- activesupport (= 6.0.0)
27
- activesupport (6.0.0)
22
+ activemodel (6.1.4)
23
+ activesupport (= 6.1.4)
24
+ activerecord (6.1.4)
25
+ activemodel (= 6.1.4)
26
+ activesupport (= 6.1.4)
27
+ activesupport (6.1.4)
28
28
  concurrent-ruby (~> 1.0, >= 1.0.2)
29
- i18n (>= 0.7, < 2)
30
- minitest (~> 5.1)
31
- tzinfo (~> 1.1)
32
- zeitwerk (~> 2.1, >= 2.1.8)
33
- ast (2.4.0)
34
- builder (3.2.3)
29
+ i18n (>= 1.6, < 2)
30
+ minitest (>= 5.1)
31
+ tzinfo (~> 2.0)
32
+ zeitwerk (~> 2.3)
33
+ ast (2.4.2)
34
+ builder (3.2.4)
35
35
  colorize (0.8.1)
36
- concurrent-ruby (1.1.5)
37
- crass (1.0.4)
38
- database_cleaner (1.7.0)
39
- diff-lcs (1.3)
40
- erubi (1.8.0)
41
- fasterer (0.6.0)
36
+ concurrent-ruby (1.1.9)
37
+ crass (1.0.6)
38
+ database_cleaner (2.0.1)
39
+ database_cleaner-active_record (~> 2.0.0)
40
+ database_cleaner-active_record (2.0.1)
41
+ activerecord (>= 5.a)
42
+ database_cleaner-core (~> 2.0.0)
43
+ database_cleaner-core (2.0.1)
44
+ diff-lcs (1.4.4)
45
+ erubi (1.10.0)
46
+ fasterer (0.9.0)
42
47
  colorize (~> 0.7)
43
- ruby_parser (>= 3.13.0)
48
+ ruby_parser (>= 3.14.1)
44
49
  generator_spec (0.9.4)
45
50
  activesupport (>= 3.0.0)
46
51
  railties (>= 3.0.0)
47
- i18n (1.6.0)
52
+ i18n (1.8.10)
48
53
  concurrent-ruby (~> 1.0)
49
- jaro_winkler (1.5.3)
50
- loofah (2.2.3)
54
+ loofah (2.10.0)
51
55
  crass (~> 1.0.2)
52
56
  nokogiri (>= 1.5.9)
53
- method_source (0.9.2)
54
- mini_portile2 (2.4.0)
55
- minitest (5.11.3)
56
- nokogiri (1.10.4)
57
- mini_portile2 (~> 2.4.0)
58
- parallel (1.17.0)
59
- parser (2.6.4.0)
60
- ast (~> 2.4.0)
61
- rack (2.0.7)
57
+ method_source (1.0.0)
58
+ mini_portile2 (2.5.3)
59
+ minitest (5.14.4)
60
+ nokogiri (1.11.7)
61
+ mini_portile2 (~> 2.5.0)
62
+ racc (~> 1.4)
63
+ parallel (1.20.1)
64
+ parser (3.0.2.0)
65
+ ast (~> 2.4.1)
66
+ racc (1.5.2)
67
+ rack (2.2.3)
62
68
  rack-test (1.1.0)
63
69
  rack (>= 1.0, < 3)
64
70
  rails-dom-testing (2.0.3)
65
71
  activesupport (>= 4.2.0)
66
72
  nokogiri (>= 1.6)
67
- rails-html-sanitizer (1.2.0)
68
- loofah (~> 2.2, >= 2.2.2)
69
- railties (6.0.0)
70
- actionpack (= 6.0.0)
71
- activesupport (= 6.0.0)
73
+ rails-html-sanitizer (1.3.0)
74
+ loofah (~> 2.3)
75
+ railties (6.1.4)
76
+ actionpack (= 6.1.4)
77
+ activesupport (= 6.1.4)
72
78
  method_source
73
- rake (>= 0.8.7)
74
- thor (>= 0.20.3, < 2.0)
79
+ rake (>= 0.13)
80
+ thor (~> 1.0)
75
81
  rainbow (3.0.0)
76
- rake (12.3.3)
77
- rspec (3.8.0)
78
- rspec-core (~> 3.8.0)
79
- rspec-expectations (~> 3.8.0)
80
- rspec-mocks (~> 3.8.0)
81
- rspec-core (3.8.2)
82
- rspec-support (~> 3.8.0)
83
- rspec-expectations (3.8.4)
82
+ rake (13.0.6)
83
+ regexp_parser (2.1.1)
84
+ rexml (3.2.5)
85
+ rspec (3.10.0)
86
+ rspec-core (~> 3.10.0)
87
+ rspec-expectations (~> 3.10.0)
88
+ rspec-mocks (~> 3.10.0)
89
+ rspec-core (3.10.1)
90
+ rspec-support (~> 3.10.0)
91
+ rspec-expectations (3.10.1)
84
92
  diff-lcs (>= 1.2.0, < 2.0)
85
- rspec-support (~> 3.8.0)
86
- rspec-mocks (3.8.1)
93
+ rspec-support (~> 3.10.0)
94
+ rspec-mocks (3.10.2)
87
95
  diff-lcs (>= 1.2.0, < 2.0)
88
- rspec-support (~> 3.8.0)
89
- rspec-support (3.8.2)
90
- rubocop (0.74.0)
91
- jaro_winkler (~> 1.5.1)
96
+ rspec-support (~> 3.10.0)
97
+ rspec-support (3.10.2)
98
+ rubocop (1.18.3)
92
99
  parallel (~> 1.10)
93
- parser (>= 2.6)
100
+ parser (>= 3.0.0.0)
94
101
  rainbow (>= 2.2.2, < 4.0)
102
+ regexp_parser (>= 1.8, < 3.0)
103
+ rexml
104
+ rubocop-ast (>= 1.7.0, < 2.0)
95
105
  ruby-progressbar (~> 1.7)
96
- unicode-display_width (>= 1.4.0, < 1.7)
97
- rubocop-performance (1.4.1)
98
- rubocop (>= 0.71.0)
99
- rubocop-rspec (1.35.0)
100
- rubocop (>= 0.60.0)
101
- ruby-progressbar (1.10.1)
102
- ruby_parser (3.13.1)
103
- sexp_processor (~> 4.9)
104
- sexp_processor (4.12.1)
105
- sqlite3 (1.4.1)
106
- thor (0.20.3)
107
- thread_safe (0.3.6)
108
- tzinfo (1.2.5)
109
- thread_safe (~> 0.1)
110
- unicode-display_width (1.6.0)
111
- zeitwerk (2.1.9)
106
+ unicode-display_width (>= 1.4.0, < 3.0)
107
+ rubocop-ast (1.8.0)
108
+ parser (>= 3.0.1.1)
109
+ rubocop-performance (1.11.4)
110
+ rubocop (>= 1.7.0, < 2.0)
111
+ rubocop-ast (>= 0.4.0)
112
+ rubocop-rake (0.6.0)
113
+ rubocop (~> 1.0)
114
+ rubocop-rspec (2.4.0)
115
+ rubocop (~> 1.0)
116
+ rubocop-ast (>= 1.1.0)
117
+ ruby-progressbar (1.11.0)
118
+ ruby_parser (3.16.0)
119
+ sexp_processor (~> 4.15, >= 4.15.1)
120
+ sexp_processor (4.15.3)
121
+ sqlite3 (1.4.2)
122
+ thor (1.1.0)
123
+ tzinfo (2.0.4)
124
+ concurrent-ruby (~> 1.0)
125
+ unicode-display_width (2.0.0)
126
+ zeitwerk (2.4.2)
112
127
 
113
128
  PLATFORMS
114
129
  ruby
@@ -124,8 +139,9 @@ DEPENDENCIES
124
139
  rspec
125
140
  rubocop
126
141
  rubocop-performance
142
+ rubocop-rake
127
143
  rubocop-rspec
128
144
  sqlite3
129
145
 
130
146
  BUNDLED WITH
131
- 2.0.1
147
+ 2.2.24
data/README.md CHANGED
@@ -27,22 +27,26 @@ Or install it yourself as:
27
27
  * [Setup](#setup)
28
28
  * [Usage](#usage)
29
29
 
30
- ## Usage
30
+ ## Setup
31
31
 
32
- `rails g lite:decorator:install` will generate the following file:
33
- `../app/decorators/application_decorator.rb`
32
+ ### Generator
34
33
 
35
- ```ruby
36
- class ApplicationDecorator < Lite::Query::Base
37
- end
34
+ Use `rails g decorator NAME` will generate the following files:
35
+
36
+ ```erb
37
+ app/decorators/[name]_decorator.rb
38
38
  ```
39
39
 
40
- Use `rails g decorator NAME` will generate the following file: `../app/decorators/[name]_decorator.rb`
40
+ If a `ApplicationDecorator` file in the `app/decorators` directory is available, the
41
+ generator will create file that inherit from `ApplicationDecorator` if not it will
42
+ fallback to `Lite::Decorator::Base`.
43
+
44
+ ## Decorator
41
45
 
42
- You will then need to fill this class with the methods you want to decorate:
46
+ You will need to fill this class with the methods you want to decorate:
43
47
 
44
48
  ```ruby
45
- class UserDecorator < ApplicationDecorator
49
+ class UserDecorator < Lite::Decorator::Base
46
50
 
47
51
  def full_name
48
52
  first_name + ' ' + last_name
@@ -51,7 +55,7 @@ class UserDecorator < ApplicationDecorator
51
55
  end
52
56
  ```
53
57
 
54
- ## Access
58
+ ## Usage
55
59
 
56
60
  To access the decorator you need to pass the object to the decorator class and thats it.
57
61
  You can even decorate a collection of objects by passing the collection to `decorate`.
@@ -6,4 +6,3 @@ Example:
6
6
 
7
7
  This will create:
8
8
  - app/decorators/[name]_decorator.rb
9
- - spec/decorators/[name]_decorator_spec.rb
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rails/generators'
4
-
5
3
  module Rails
6
4
  class DecoratorGenerator < Rails::Generators::NamedBase
7
5
 
@@ -10,16 +8,9 @@ module Rails
10
8
 
11
9
  def copy_files
12
10
  path = File.join('app', 'decorators', class_path, "#{file_name}_decorator.rb")
13
- empty_directory('app/decorators')
14
11
  template('decorator.rb.tt', path)
15
12
  end
16
13
 
17
- def copy_specs
18
- path = File.join('spec', 'decorators', class_path, "#{file_name}_decorator_spec.rb")
19
- empty_directory('spec/decorators')
20
- template('spec.rb.tt', path)
21
- end
22
-
23
14
  private
24
15
 
25
16
  def file_name
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  <% module_namespacing do -%>
4
- class <%= class_name %>Decorator < ApplicationDecorator
4
+ class <%= class_name %>Decorator < <%= ApplicationDecorator.to_s rescue 'Lite::Decorator::Base' %>
5
5
  end
6
6
  <% end -%>
@@ -1,8 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'generators/rails/decorator_generator' if defined?(Rails::Generators)
4
+
3
5
  %w[version base].each do |name|
4
6
  require "lite/decorator/#{name}"
5
7
  end
6
-
7
- require 'generators/lite/decorator/install_generator'
8
- require 'generators/rails/decorator_generator'
@@ -3,7 +3,7 @@
3
3
  module Lite
4
4
  module Decorator
5
5
 
6
- VERSION ||= '1.0.1'
6
+ VERSION = '1.1.1'
7
7
 
8
8
  end
9
9
  end
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
  )
26
26
  else
27
27
  raise 'RubyGems 2.0 or newer is required to protect against ' \
28
- 'public gem pushes.'
28
+ 'public gem pushes.'
29
29
  end
30
30
 
31
31
  # Specify which files should be added to the gem when it is released.
@@ -46,6 +46,7 @@ Gem::Specification.new do |spec|
46
46
  spec.add_development_dependency 'rspec'
47
47
  spec.add_development_dependency 'rubocop'
48
48
  spec.add_development_dependency 'rubocop-performance'
49
+ spec.add_development_dependency 'rubocop-rake'
49
50
  spec.add_development_dependency 'rubocop-rspec'
50
51
  spec.add_development_dependency 'sqlite3'
51
52
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lite-decorator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Gomez
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-03 00:00:00.000000000 Z
11
+ date: 2021-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop-rake
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: rubocop-rspec
141
155
  requirement: !ruby/object:Gem::Requirement
@@ -164,7 +178,7 @@ dependencies:
164
178
  - - ">="
165
179
  - !ruby/object:Gem::Version
166
180
  version: '0'
167
- description:
181
+ description:
168
182
  email:
169
183
  - j.gomez@drexed.com
170
184
  executables: []
@@ -186,12 +200,9 @@ files:
186
200
  - _config.yml
187
201
  - bin/console
188
202
  - bin/setup
189
- - lib/generators/lite/decorator/install_generator.rb
190
- - lib/generators/lite/decorator/templates/install.rb
191
203
  - lib/generators/rails/USAGE
192
204
  - lib/generators/rails/decorator_generator.rb
193
205
  - lib/generators/rails/templates/decorator.rb.tt
194
- - lib/generators/rails/templates/spec.rb.tt
195
206
  - lib/lite/decorator.rb
196
207
  - lib/lite/decorator/base.rb
197
208
  - lib/lite/decorator/version.rb
@@ -200,7 +211,7 @@ homepage: http://drexed.github.io/lite-decorator
200
211
  licenses:
201
212
  - MIT
202
213
  metadata: {}
203
- post_install_message:
214
+ post_install_message:
204
215
  rdoc_options: []
205
216
  require_paths:
206
217
  - lib
@@ -215,8 +226,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
215
226
  - !ruby/object:Gem::Version
216
227
  version: '0'
217
228
  requirements: []
218
- rubygems_version: 3.0.4
219
- signing_key:
229
+ rubygems_version: 3.2.24
230
+ signing_key:
220
231
  specification_version: 4
221
232
  summary: Ruby Decorator based framework (aka decorator/presenter objects)
222
233
  test_files: []
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails/generators'
4
-
5
- module Lite
6
- module Decorator
7
- class InstallGenerator < Rails::Generators::Base
8
-
9
- source_root File.expand_path('../templates', __FILE__)
10
-
11
- def copy_application_query_file
12
- copy_file('install.rb', 'app/decorators/application_decorator.rb')
13
- end
14
-
15
- end
16
- end
17
- end
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class ApplicationDecorator < Lite::Decorator::Base
4
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe <%= class_name %>Decorator, type: :decorator do
6
- pending "add some examples to (or delete) #{__FILE__}"
7
- end