active_decorator 1.5.0 → 1.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 24bc5e2bff457e42cf67f9382718c8317b4b208ded7f64d008d4314bd3e58dd0
4
- data.tar.gz: c06a655a2d778a46a5b57559b7dc9091960130846b9f4a28f526715a5b7c652f
3
+ metadata.gz: 31bd13919bc3d2af2331782394cad408aa5119c30a4bf6ccbed87dcb0399bd42
4
+ data.tar.gz: bdcd4d4574bfcc06686deb960f4b91862ac805cf83d388c6485520d364143377
5
5
  SHA512:
6
- metadata.gz: 7535ee72c44901d579416091437f2ffe78ded2dc535a1e442412f7257004d6bb42f2eff340e31fb563a3fd3bdfa6002dc85d81c0ef4dfd32cefddd4d7b046e63
7
- data.tar.gz: c6e02769eff8fcd3e53d0e1456554639038d39377d970aba27310cf1c971c0913785c2f2b1a0e4a9e0de3fe3e34d0d4540ff661b44ead9a242321e30e0195dde
6
+ metadata.gz: 1c83e1c9d5d7d3477d1200032f6dada8afa10c37013891b7d574d5e9cba8c8845df1790f922615771f34ffe77c6e0d61853a12d18b5603b3342b5904d0004f2e
7
+ data.tar.gz: b112eec94bd7634e9d41b4d2ef5e05e7c9479d727b010205a6f4dd2454be11734afdc03af1eacefa62b124ea418e272c22170336cb2f8d02b7b81a2cfb43b710
@@ -11,8 +11,8 @@ jobs:
11
11
  name: Ruby ${{ matrix.ruby_version }} / Rails ${{ matrix.rails_version }}${{ matrix.api == '1' && ' / API' || '' }}
12
12
  strategy:
13
13
  matrix:
14
- ruby_version: [ruby-head, '3.4', '3.3', '3.2', '3.1']
15
- rails_version: [edge, '8.0', '7.2', '7.1', '7.0', '6.1']
14
+ ruby_version: [ruby-head, '4.0', '3.4', '3.3', '3.2', '3.1']
15
+ rails_version: [edge, '8.1', '8.0', '7.2', '7.1', '7.0', '6.1']
16
16
  api: ['0', '1']
17
17
 
18
18
  include:
@@ -99,16 +99,36 @@ jobs:
99
99
  bundler_version: '1'
100
100
 
101
101
  exclude:
102
+ - ruby_version: '3.2'
103
+ rails_version: edge
104
+ - ruby_version: '3.2'
105
+ rails_version: edge
106
+ api: '1'
102
107
  - ruby_version: '3.1'
103
108
  rails_version: edge
104
109
  - ruby_version: '3.1'
105
110
  rails_version: edge
106
111
  api: '1'
112
+ - ruby_version: '3.1'
113
+ rails_version: '8.1'
114
+ - ruby_version: '3.1'
115
+ rails_version: '8.1'
116
+ api: '1'
107
117
  - ruby_version: '3.1'
108
118
  rails_version: '8.0'
109
119
  - ruby_version: '3.1'
110
120
  rails_version: '8.0'
111
121
  api: '1'
122
+ - ruby_version: '4.0'
123
+ rails_version: '6.1'
124
+ - ruby_version: '4.0'
125
+ rails_version: '6.1'
126
+ api: '1'
127
+ - ruby_version: ruby-head
128
+ rails_version: '6.1'
129
+ - ruby_version: ruby-head
130
+ rails_version: '6.1'
131
+ api: '1'
112
132
 
113
133
  env:
114
134
  RAILS_VERSION: ${{ matrix.rails_version }}
@@ -117,7 +137,7 @@ jobs:
117
137
  runs-on: ubuntu-24.04
118
138
 
119
139
  steps:
120
- - uses: actions/checkout@v5
140
+ - uses: actions/checkout@v7
121
141
 
122
142
  - uses: ruby/setup-ruby@v1
123
143
  with:
data/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## 1.6.0
2
+
3
+ * Don't swallow NameError raised from inside a decorator module while loading it. Previously such an error was silently rescued and the decorator just disappeared
4
+
5
+ * Decorated objects now `respond_to?` view helper methods via `respond_to_missing?`
6
+
7
+
8
+ ## 1.5.1
9
+
10
+ * Removed unnecessary `ruby2_keywords` call that emits "warning: Skipping set of ruby2_keywords flag" [@t-kinoshita]
11
+
12
+ * Fixed another warning "assigned but unused variable - view_context_stack"
13
+
14
+
1
15
  ## 1.5.0
2
16
 
3
17
  * Don't drop keyword arguments when delegating helper methods via method_missing
data/Gemfile CHANGED
@@ -19,6 +19,10 @@ else
19
19
  gem 'rails'
20
20
  end
21
21
 
22
+ if ENV['RAILS_VERSION'] && (ENV['RAILS_VERSION'] < '8.1')
23
+ gem 'json', '< 3'
24
+ end
25
+
22
26
  if RUBY_VERSION < '2.7'
23
27
  gem 'puma', '< 6'
24
28
  else
@@ -28,6 +32,11 @@ end
28
32
  gem 'nokogiri', RUBY_VERSION < '2.1' ? '~> 1.6.0' : '>= 1.7'
29
33
  gem 'loofah', RUBY_VERSION < '2.5' ? '< 2.21.0' : '>= 0'
30
34
  gem 'concurrent-ruby', RUBY_VERSION < '2.3' ? '~> 1.1.0' : '>= 1.2'
35
+ if RUBY_VERSION >= '3.1'
36
+ gem 'power_assert'
37
+ elsif RUBY_VERSION >= '2.5'
38
+ gem 'power_assert', '< 3'
39
+ end
31
40
  gem 'selenium-webdriver', RUBY_VERSION == '3.0' ? '4.9.0' : '>= 0'
32
41
  gem 'webdrivers' if (ENV['RAILS_VERSION'] && ENV['RAILS_VERSION'] >= '6') && (RUBY_VERSION < '3')
33
42
  gem 'net-smtp' if RUBY_VERSION >= '3.1'
@@ -37,3 +46,4 @@ gem 'base64' if RUBY_VERSION >= '3.4'
37
46
  gem 'bigdecimal' if RUBY_VERSION >= '3.4'
38
47
  gem 'logger' if RUBY_VERSION >= '3.5'
39
48
  gem 'benchmark' if RUBY_VERSION >= '3.5'
49
+ gem 'tsort' if RUBY_VERSION >= '4.1'
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # ActiveDecorator [![Build Status](https://github.com/amatsuda/active_decorator/actions/workflows/main.yml/badge.svg)](https://github.com/amatsuda/active_decorator/actions) [![Code Climate](https://codeclimate.com/github/amatsuda/active_decorator/badges/gpa.svg)](https://codeclimate.com/github/amatsuda/active_decorator)
1
+ # ActiveDecorator [![Build Status](https://github.com/amatsuda/active_decorator/actions/workflows/main.yml/badge.svg)](https://github.com/amatsuda/active_decorator/actions)
2
2
 
3
3
  A simple and Rubyish view helper for Rails 4, Rails 5, Rails 6, Rails 7, and Rails 8. Keep your helpers and views Object-Oriented!
4
4
 
@@ -15,9 +15,9 @@ A simple and Rubyish view helper for Rails 4, Rails 5, Rails 6, Rails 7, and Rai
15
15
 
16
16
  ## Supported versions ##
17
17
 
18
- * Ruby 2.1.x, 2.2.x, 2.3.x, 2.4.x, 2.5.x, 2.6.x, 2.7.x, 3.0.x, 3.1.x, 3.2.x, 3.3.x, 3.4.x, and 3.5 (trunk)
18
+ * Ruby 2.1.x, 2.2.x, 2.3.x, 2.4.x, 2.5.x, 2.6.x, 2.7.x, 3.0.x, 3.1.x, 3.2.x, 3.3.x, 3.4.x, 4.0.x, and 4.1 (trunk)
19
19
 
20
- * Rails 4.2.x, 5.0, 5.1, 5.2, 6.0, 6.1, 7.0, 7.1, 7.2, 8.0, and 8.1 (edge)
20
+ * Rails 4.2.x, 5.0, 5.1, 5.2, 6.0, 6.1, 7.0, 7.1, 7.2, 8.0, 8.1, and 8.2 (edge)
21
21
 
22
22
 
23
23
  ## Supported ORMs ##
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'singleton'
4
+ require 'active_support/core_ext/name_error'
4
5
  require 'active_decorator/helpers'
5
6
  require 'active_decorator/decorated'
6
7
 
@@ -69,7 +70,10 @@ module ActiveDecorator
69
70
  # Cache nil results
70
71
  @decorators[model_class] = nil
71
72
  end
72
- rescue NameError
73
+ rescue NameError => e
74
+ # Re-raise NameErrors that were raised from inside the decorator module while loading it
75
+ raise unless e.missing_name?(decorator_name)
76
+
73
77
  if model_class.respond_to?(:base_class) && (model_class.base_class != model_class)
74
78
  @decorators[model_class] = decorator_for model_class.base_class
75
79
  else
@@ -29,6 +29,12 @@ module ActiveDecorator
29
29
  raise e1
30
30
  end
31
31
  end
32
- ruby2_keywords :method_missing if respond_to?(:ruby2_keywords, true)
32
+
33
+ def respond_to_missing?(method, include_private = false)
34
+ return true if super
35
+
36
+ view_context = ActiveDecorator::ViewContext.current
37
+ !view_context.nil? && view_context.respond_to?(method)
38
+ end
33
39
  end
34
40
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveDecorator
4
- VERSION = '1.5.0'
4
+ VERSION = '1.6.0'
5
5
  end
@@ -14,10 +14,10 @@ module ActiveDecorator
14
14
  def view_context_stack
15
15
  attributes[:view_context_stack] ||= []
16
16
  end
17
- end
18
17
 
19
- resets do
20
- view_context_stack = nil
18
+ resets do
19
+ self.view_context_stack = nil
20
+ end
21
21
  end
22
22
  end
23
23
  else
metadata CHANGED
@@ -1,182 +1,200 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_decorator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
- - Akira Matsuda
7
+ - Akira Matsuda
8
8
  bindir: bin
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
- - !ruby/object:Gem::Dependency
13
- name: activesupport
14
- requirement: !ruby/object:Gem::Requirement
15
- requirements:
16
- - - ">="
17
- - !ruby/object:Gem::Version
18
- version: '0'
19
- type: :runtime
20
- prerelease: false
21
- version_requirements: !ruby/object:Gem::Requirement
22
- requirements:
23
- - - ">="
24
- - !ruby/object:Gem::Version
25
- version: '0'
26
- - !ruby/object:Gem::Dependency
27
- name: test-unit-rails
28
- requirement: !ruby/object:Gem::Requirement
29
- requirements:
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: '0'
33
- type: :development
34
- prerelease: false
35
- version_requirements: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: '0'
40
- - !ruby/object:Gem::Dependency
41
- name: selenium-webdriver
42
- requirement: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: '0'
47
- type: :development
48
- prerelease: false
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- - !ruby/object:Gem::Dependency
55
- name: puma
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: '0'
61
- type: :development
62
- prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: '0'
68
- - !ruby/object:Gem::Dependency
69
- name: capybara
70
- requirement: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: '0'
75
- type: :development
76
- prerelease: false
77
- version_requirements: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- version: '0'
82
- - !ruby/object:Gem::Dependency
83
- name: sqlite3
84
- requirement: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: '0'
89
- type: :development
90
- prerelease: false
91
- version_requirements: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: '0'
96
- - !ruby/object:Gem::Dependency
97
- name: rake
98
- requirement: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: '0'
103
- type: :development
104
- prerelease: false
105
- version_requirements: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- - !ruby/object:Gem::Dependency
111
- name: byebug
112
- requirement: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- version: '0'
117
- type: :development
118
- prerelease: false
119
- version_requirements: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: '0'
12
+ - !ruby/object:Gem::Dependency
13
+ name: activesupport
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ -
17
+ - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: "0"
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ -
25
+ - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: "0"
28
+ - !ruby/object:Gem::Dependency
29
+ name: test-unit-rails
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ -
33
+ - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: "0"
36
+ type: :development
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ -
41
+ - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ - !ruby/object:Gem::Dependency
45
+ name: selenium-webdriver
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ -
49
+ - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: "0"
52
+ type: :development
53
+ prerelease: false
54
+ version_requirements: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ -
57
+ - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: "0"
60
+ - !ruby/object:Gem::Dependency
61
+ name: puma
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ -
65
+ - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: "0"
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ -
73
+ - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: "0"
76
+ - !ruby/object:Gem::Dependency
77
+ name: capybara
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ -
81
+ - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: "0"
84
+ type: :development
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ -
89
+ - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: "0"
92
+ - !ruby/object:Gem::Dependency
93
+ name: sqlite3
94
+ requirement: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ -
97
+ - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: "0"
100
+ type: :development
101
+ prerelease: false
102
+ version_requirements: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ -
105
+ - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: "0"
108
+ - !ruby/object:Gem::Dependency
109
+ name: rake
110
+ requirement: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ -
113
+ - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: "0"
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ -
121
+ - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: "0"
124
+ - !ruby/object:Gem::Dependency
125
+ name: byebug
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ -
129
+ - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: "0"
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ -
137
+ - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: "0"
124
140
  description: A simple and Rubyish view helper for Rails
125
141
  email:
126
- - ronnie@dio.jp
142
+ - ronnie@dio.jp
127
143
  executables: []
128
144
  extensions: []
129
145
  extra_rdoc_files: []
130
146
  files:
131
- - ".github/dependabot.yml"
132
- - ".github/workflows/main.yml"
133
- - ".gitignore"
134
- - CHANGELOG.md
135
- - Gemfile
136
- - MIT-LICENSE
137
- - README.md
138
- - Rakefile
139
- - active_decorator.gemspec
140
- - lib/active_decorator.rb
141
- - lib/active_decorator/config.rb
142
- - lib/active_decorator/decorated.rb
143
- - lib/active_decorator/decorator.rb
144
- - lib/active_decorator/helpers.rb
145
- - lib/active_decorator/monkey/abstract_controller/rendering.rb
146
- - lib/active_decorator/monkey/action_controller/base/rescue_from.rb
147
- - lib/active_decorator/monkey/action_view/collection_renderer.rb
148
- - lib/active_decorator/monkey/action_view/object_renderer.rb
149
- - lib/active_decorator/monkey/action_view/partial_renderer.rb
150
- - lib/active_decorator/monkey/active_record/associations.rb
151
- - lib/active_decorator/railtie.rb
152
- - lib/active_decorator/version.rb
153
- - lib/active_decorator/view_context.rb
154
- - lib/generators/rails/USAGE
155
- - lib/generators/rails/decorator_generator.rb
156
- - lib/generators/rails/templates/decorator.rb
157
- - lib/generators/rspec/decorator_generator.rb
158
- - lib/generators/rspec/templates/decorator_spec.rb
159
- - lib/generators/test_unit/decorator_generator.rb
160
- - lib/generators/test_unit/templates/decorator_test.rb
161
- homepage: https://github.com/amatsuda/active_decorator
147
+ - .github/dependabot.yml
148
+ - .github/workflows/main.yml
149
+ - .gitignore
150
+ - CHANGELOG.md
151
+ - Gemfile
152
+ - MIT-LICENSE
153
+ - README.md
154
+ - Rakefile
155
+ - active_decorator.gemspec
156
+ - lib/active_decorator.rb
157
+ - lib/active_decorator/config.rb
158
+ - lib/active_decorator/decorated.rb
159
+ - lib/active_decorator/decorator.rb
160
+ - lib/active_decorator/helpers.rb
161
+ - lib/active_decorator/monkey/abstract_controller/rendering.rb
162
+ - lib/active_decorator/monkey/action_controller/base/rescue_from.rb
163
+ - lib/active_decorator/monkey/action_view/collection_renderer.rb
164
+ - lib/active_decorator/monkey/action_view/object_renderer.rb
165
+ - lib/active_decorator/monkey/action_view/partial_renderer.rb
166
+ - lib/active_decorator/monkey/active_record/associations.rb
167
+ - lib/active_decorator/railtie.rb
168
+ - lib/active_decorator/version.rb
169
+ - lib/active_decorator/view_context.rb
170
+ - lib/generators/rails/USAGE
171
+ - lib/generators/rails/decorator_generator.rb
172
+ - lib/generators/rails/templates/decorator.rb
173
+ - lib/generators/rspec/decorator_generator.rb
174
+ - lib/generators/rspec/templates/decorator_spec.rb
175
+ - lib/generators/test_unit/decorator_generator.rb
176
+ - lib/generators/test_unit/templates/decorator_test.rb
177
+ homepage: "https://github.com/amatsuda/active_decorator"
162
178
  licenses:
163
- - MIT
179
+ - MIT
164
180
  metadata: {}
165
181
  rdoc_options: []
166
182
  require_paths:
167
- - lib
183
+ - lib
168
184
  required_ruby_version: !ruby/object:Gem::Requirement
169
185
  requirements:
170
- - - ">="
171
- - !ruby/object:Gem::Version
172
- version: '0'
186
+ -
187
+ - ">="
188
+ - !ruby/object:Gem::Version
189
+ version: "0"
173
190
  required_rubygems_version: !ruby/object:Gem::Requirement
174
191
  requirements:
175
- - - ">="
176
- - !ruby/object:Gem::Version
177
- version: '0'
192
+ -
193
+ - ">="
194
+ - !ruby/object:Gem::Version
195
+ version: "0"
178
196
  requirements: []
179
- rubygems_version: 3.8.0.dev
197
+ rubygems_version: 4.1.0.beta2
180
198
  specification_version: 4
181
199
  summary: A simple and Rubyish view helper for Rails
182
200
  test_files: []