lite-decorator 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6d3c025083ce298a82c386461c7e2b8b48606916aa38e421391a014ef16ec3ba
4
- data.tar.gz: a319dbe20b7b3cd9f3af475f96afa20cf33cb02323cfe47e26cd1c16d2bbb665
3
+ metadata.gz: cfcd81ece1dd2fed95e2ecc6844f3a471bcd2d3a703316ac65c05721b4c1ee68
4
+ data.tar.gz: 38d6fcc2ef7c118d41fbe87c6bd4d4d5c7ffb78dd8e46b4c9754da8fefc45752
5
5
  SHA512:
6
- metadata.gz: c758c5b34a92815bab10680c367b77aae5086bff0e24ec771c47e2380e0db942021512f1f3adbd50693d07792cb9341df77d4c004f3c254eff36367b4e30b1ca
7
- data.tar.gz: a88fb13faf0304434515cab3447434845008381bd1e64c8caa5fee3ec10c9b2fd1a1bb0513f21bc779e3bc819a08a79ce48dfc0ad6a9c46deae98afdc238c309
6
+ metadata.gz: 88dd743cd104b85e2ffd7f299efdad4421da9474f5515f678ba7e7dd7a43219cac4c0823f7139116fb3afe3c267d7470096c84b79fa49380a18c64c8a52049ee
7
+ data.tar.gz: 866478f1b47392b2c9f79ca5ae4ed72a81dca46c41b8cbe0b0d8410c5016467bf4126971ccc0514289b885bc32bc5f39e55df2af7091f59ec0e5147cd6d3904a
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,14 +18,26 @@ 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/**/**/*'
20
32
  - '*.gemspec'
33
+ Naming/MemoizedInstanceVariableName:
34
+ Enabled: false
21
35
  RSpec/ExampleLength:
22
36
  Enabled: false
23
37
  RSpec/MultipleExpectations:
24
38
  Enabled: false
39
+ Style/ArgumentsForwarding:
40
+ Enabled: false
25
41
  Style/Documentation:
26
42
  Enabled: false
27
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.0] - 2021-07-19
10
+ ### Added
11
+ - Added Ruby 3.0 support
12
+
13
+ ## [1.0.3] - 2019-12-21
14
+ ### Added
15
+ - Added ruby 2.7 support
16
+ ### Removed
17
+ - Removed generator empty directory check
18
+
19
+ ## [1.0.2] - 2019-12-20
20
+ ### Removed
21
+ - Removed lite-decorator generator
22
+ - Removed spec from rails generator
23
+
24
+ ## [1.0.1] - 2019-09-02
25
+ ### Added
26
+ - Add rails generators
27
+
9
28
  ## [1.0.0] - 2019-09-01
10
29
  ### Added
11
30
  - Initial project version
data/Gemfile.lock CHANGED
@@ -1,73 +1,129 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lite-decorator (1.0.0)
4
+ lite-decorator (1.1.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- activemodel (6.0.0)
10
- activesupport (= 6.0.0)
11
- activerecord (6.0.0)
12
- activemodel (= 6.0.0)
13
- activesupport (= 6.0.0)
14
- activesupport (6.0.0)
9
+ actionpack (6.1.4)
10
+ actionview (= 6.1.4)
11
+ activesupport (= 6.1.4)
12
+ rack (~> 2.0, >= 2.0.9)
13
+ rack-test (>= 0.6.3)
14
+ rails-dom-testing (~> 2.0)
15
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
16
+ actionview (6.1.4)
17
+ activesupport (= 6.1.4)
18
+ builder (~> 3.1)
19
+ erubi (~> 1.4)
20
+ rails-dom-testing (~> 2.0)
21
+ rails-html-sanitizer (~> 1.1, >= 1.2.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)
15
28
  concurrent-ruby (~> 1.0, >= 1.0.2)
16
- i18n (>= 0.7, < 2)
17
- minitest (~> 5.1)
18
- tzinfo (~> 1.1)
19
- zeitwerk (~> 2.1, >= 2.1.8)
20
- ast (2.4.0)
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)
21
35
  colorize (0.8.1)
22
- concurrent-ruby (1.1.5)
23
- database_cleaner (1.7.0)
24
- diff-lcs (1.3)
25
- 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)
26
47
  colorize (~> 0.7)
27
- ruby_parser (>= 3.13.0)
28
- i18n (1.6.0)
48
+ ruby_parser (>= 3.14.1)
49
+ generator_spec (0.9.4)
50
+ activesupport (>= 3.0.0)
51
+ railties (>= 3.0.0)
52
+ i18n (1.8.10)
29
53
  concurrent-ruby (~> 1.0)
30
- jaro_winkler (1.5.3)
31
- minitest (5.11.3)
32
- parallel (1.17.0)
33
- parser (2.6.4.0)
34
- ast (~> 2.4.0)
54
+ loofah (2.10.0)
55
+ crass (~> 1.0.2)
56
+ nokogiri (>= 1.5.9)
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)
68
+ rack-test (1.1.0)
69
+ rack (>= 1.0, < 3)
70
+ rails-dom-testing (2.0.3)
71
+ activesupport (>= 4.2.0)
72
+ nokogiri (>= 1.6)
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)
78
+ method_source
79
+ rake (>= 0.13)
80
+ thor (~> 1.0)
35
81
  rainbow (3.0.0)
36
- rake (12.3.3)
37
- rspec (3.8.0)
38
- rspec-core (~> 3.8.0)
39
- rspec-expectations (~> 3.8.0)
40
- rspec-mocks (~> 3.8.0)
41
- rspec-core (3.8.2)
42
- rspec-support (~> 3.8.0)
43
- 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)
44
92
  diff-lcs (>= 1.2.0, < 2.0)
45
- rspec-support (~> 3.8.0)
46
- rspec-mocks (3.8.1)
93
+ rspec-support (~> 3.10.0)
94
+ rspec-mocks (3.10.2)
47
95
  diff-lcs (>= 1.2.0, < 2.0)
48
- rspec-support (~> 3.8.0)
49
- rspec-support (3.8.2)
50
- rubocop (0.74.0)
51
- jaro_winkler (~> 1.5.1)
96
+ rspec-support (~> 3.10.0)
97
+ rspec-support (3.10.2)
98
+ rubocop (1.18.3)
52
99
  parallel (~> 1.10)
53
- parser (>= 2.6)
100
+ parser (>= 3.0.0.0)
54
101
  rainbow (>= 2.2.2, < 4.0)
102
+ regexp_parser (>= 1.8, < 3.0)
103
+ rexml
104
+ rubocop-ast (>= 1.7.0, < 2.0)
55
105
  ruby-progressbar (~> 1.7)
56
- unicode-display_width (>= 1.4.0, < 1.7)
57
- rubocop-performance (1.4.1)
58
- rubocop (>= 0.71.0)
59
- rubocop-rspec (1.35.0)
60
- rubocop (>= 0.60.0)
61
- ruby-progressbar (1.10.1)
62
- ruby_parser (3.13.1)
63
- sexp_processor (~> 4.9)
64
- sexp_processor (4.12.1)
65
- sqlite3 (1.4.1)
66
- thread_safe (0.3.6)
67
- tzinfo (1.2.5)
68
- thread_safe (~> 0.1)
69
- unicode-display_width (1.6.0)
70
- 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)
71
127
 
72
128
  PLATFORMS
73
129
  ruby
@@ -77,13 +133,15 @@ DEPENDENCIES
77
133
  bundler
78
134
  database_cleaner
79
135
  fasterer
136
+ generator_spec
80
137
  lite-decorator!
81
138
  rake
82
139
  rspec
83
140
  rubocop
84
141
  rubocop-performance
142
+ rubocop-rake
85
143
  rubocop-rspec
86
144
  sqlite3
87
145
 
88
146
  BUNDLED WITH
89
- 2.0.1
147
+ 2.2.24
data/README.md CHANGED
@@ -24,12 +24,26 @@ Or install it yourself as:
24
24
 
25
25
  ## Table of Contents
26
26
 
27
+ * [Setup](#setup)
27
28
  * [Usage](#usage)
28
- * [Access](#access)
29
29
 
30
- ## Usage
30
+ ## Setup
31
+
32
+ ### Generator
33
+
34
+ Use `rails g decorator NAME` will generate the following files:
35
+
36
+ ```erb
37
+ app/decorators/[name]_decorator.rb
38
+ ```
39
+
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`.
31
43
 
32
- Using the decorator class is as simple as creating a class that inherits from the base file.
44
+ ## Decorator
45
+
46
+ You will need to fill this class with the methods you want to decorate:
33
47
 
34
48
  ```ruby
35
49
  class UserDecorator < Lite::Decorator::Base
@@ -41,7 +55,7 @@ class UserDecorator < Lite::Decorator::Base
41
55
  end
42
56
  ```
43
57
 
44
- ## Access
58
+ ## Usage
45
59
 
46
60
  To access the decorator you need to pass the object to the decorator class and thats it.
47
61
  You can even decorate a collection of objects by passing the collection to `decorate`.
@@ -0,0 +1,8 @@
1
+ Description:
2
+ Generate a decorator file
3
+
4
+ Example:
5
+ rails generate decorator NAME
6
+
7
+ This will create:
8
+ - app/decorators/[name]_decorator.rb
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators'
4
+
5
+ module Rails
6
+ class DecoratorGenerator < Rails::Generators::NamedBase
7
+
8
+ source_root File.expand_path('../templates', __FILE__)
9
+ check_class_collision suffix: 'Decorator'
10
+
11
+ def copy_files
12
+ path = File.join('app', 'decorators', class_path, "#{file_name}_decorator.rb")
13
+ template('decorator.rb.tt', path)
14
+ end
15
+
16
+ private
17
+
18
+ def file_name
19
+ @_file_name ||= remove_possible_suffix(super)
20
+ end
21
+
22
+ def remove_possible_suffix(name)
23
+ name.sub(/_?decorator$/i, '')
24
+ end
25
+
26
+ end
27
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ <% module_namespacing do -%>
4
+ class <%= class_name %>Decorator < <%= ApplicationDecorator.to_s rescue 'Lite::Decorator::Base' %>
5
+ end
6
+ <% end -%>
@@ -3,3 +3,5 @@
3
3
  %w[version base].each do |name|
4
4
  require "lite/decorator/#{name}"
5
5
  end
6
+
7
+ require 'generators/rails/decorator_generator'
@@ -3,7 +3,7 @@
3
3
  module Lite
4
4
  module Decorator
5
5
 
6
- VERSION ||= '1.0.0'
6
+ VERSION = '1.1.0'
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.
@@ -41,10 +41,12 @@ Gem::Specification.new do |spec|
41
41
  spec.add_development_dependency 'bundler'
42
42
  spec.add_development_dependency 'database_cleaner'
43
43
  spec.add_development_dependency 'fasterer'
44
+ spec.add_development_dependency 'generator_spec'
44
45
  spec.add_development_dependency 'rake'
45
46
  spec.add_development_dependency 'rspec'
46
47
  spec.add_development_dependency 'rubocop'
47
48
  spec.add_development_dependency 'rubocop-performance'
49
+ spec.add_development_dependency 'rubocop-rake'
48
50
  spec.add_development_dependency 'rubocop-rspec'
49
51
  spec.add_development_dependency 'sqlite3'
50
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.0
4
+ version: 1.1.0
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-01 00:00:00.000000000 Z
11
+ date: 2021-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: generator_spec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rake
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +136,20 @@ dependencies:
122
136
  - - ">="
123
137
  - !ruby/object:Gem::Version
124
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'
125
153
  - !ruby/object:Gem::Dependency
126
154
  name: rubocop-rspec
127
155
  requirement: !ruby/object:Gem::Requirement
@@ -150,7 +178,7 @@ dependencies:
150
178
  - - ">="
151
179
  - !ruby/object:Gem::Version
152
180
  version: '0'
153
- description:
181
+ description:
154
182
  email:
155
183
  - j.gomez@drexed.com
156
184
  executables: []
@@ -172,6 +200,9 @@ files:
172
200
  - _config.yml
173
201
  - bin/console
174
202
  - bin/setup
203
+ - lib/generators/rails/USAGE
204
+ - lib/generators/rails/decorator_generator.rb
205
+ - lib/generators/rails/templates/decorator.rb.tt
175
206
  - lib/lite/decorator.rb
176
207
  - lib/lite/decorator/base.rb
177
208
  - lib/lite/decorator/version.rb
@@ -180,7 +211,7 @@ homepage: http://drexed.github.io/lite-decorator
180
211
  licenses:
181
212
  - MIT
182
213
  metadata: {}
183
- post_install_message:
214
+ post_install_message:
184
215
  rdoc_options: []
185
216
  require_paths:
186
217
  - lib
@@ -195,8 +226,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
195
226
  - !ruby/object:Gem::Version
196
227
  version: '0'
197
228
  requirements: []
198
- rubygems_version: 3.0.4
199
- signing_key:
229
+ rubygems_version: 3.2.24
230
+ signing_key:
200
231
  specification_version: 4
201
232
  summary: Ruby Decorator based framework (aka decorator/presenter objects)
202
233
  test_files: []