view_component 3.5.0 → 3.6.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of view_component might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ce590ddce7011ae4362dde0733f78ba65992c31add6bac215555515d02ae1dc6
4
- data.tar.gz: df4867599a61d2757e2f226a3c6b187981772e2d225fc442f9184484c0423e64
3
+ metadata.gz: e24f482306b48f037310ce13c9fd25a35ad809a1b3cc536f5b496cf4f4e17ebc
4
+ data.tar.gz: b403755a43c062e591b2b6cce09422a7148a22d263ff15ca0f2395086df965b2
5
5
  SHA512:
6
- metadata.gz: 0a39d71f089c0f4285dc1eecd324e44afc73f55565002a45c2d37292cc4fa8b05713f7237f04b530617ddc0bb2ccd08fab0c7d010400790dc00daf2d6c9c0546
7
- data.tar.gz: 252a63a4ed7eefd7db529dc93081d3ccfb78555ac1d051540f7a69829a41d4d22fd94557fa2fe9eb88c012bd8dccfd2ceb813aae2582877e387a2df347e2d915
6
+ metadata.gz: 8cac599cdbad5dfaf4bdf9e02cc3ca34bf45be4fd8832745fe00bd3487127f360e144cc746f5a975a55f1beded97193a3d5abaa42ce161c8d88535e4547fb21b
7
+ data.tar.gz: d7e4d742329eec00ac562e5cd02ca7a1cd206af87dd4544649ab8790697511fb400a2175d70c6fff39fbed9124810a97db8e4e4d92ec8f6a7735247042140417
data/docs/CHANGELOG.md CHANGED
@@ -10,6 +10,44 @@ nav_order: 5
10
10
 
11
11
  ## main
12
12
 
13
+ ## 3.6.0
14
+
15
+ * Refer to `helpers` in `NameError` message in development and test environments.
16
+
17
+ *Simon Fish*
18
+
19
+ * Fix API documentation and revert unnecessary change in `preview.rb`.
20
+
21
+ *Richard Macklin*
22
+
23
+ * Initialize ViewComponent::Config with defaults before framework load.
24
+
25
+ *Simon Fish*
26
+
27
+ * Add 3.2 to the list of Ruby CI versions
28
+
29
+ *Igor Drozdov*
30
+
31
+ * Stop running PVC's `docs:preview` rake task in CI, as the old docsite has been removed.
32
+
33
+ *Cameron Dutro*
34
+
35
+ * Minor testing documentation improvement.
36
+
37
+ *Travis Gaff*
38
+
39
+ * Add SearchApi to users list.
40
+
41
+ *Sebastjan Prachovskij*
42
+
43
+ * Fix `#with_request_url` to ensure `request.query_parameters` is an instance of ActiveSupport::HashWithIndifferentAccess.
44
+
45
+ *milk1000cc*
46
+
47
+ * Add PeopleForce to list of companies using ViewComponent.
48
+
49
+ *Volodymyr Khandiuk*
50
+
13
51
  ## 3.5.0
14
52
 
15
53
  * Add Skroutz to users list.
@@ -22,12 +22,8 @@ module ViewComponent
22
22
  #
23
23
  # @return [ActiveSupport::OrderedOptions]
24
24
  def config
25
- @config ||= ActiveSupport::OrderedOptions.new
25
+ ViewComponent::Config.current
26
26
  end
27
-
28
- # Replaces the entire config. You shouldn't need to use this directly
29
- # unless you're building a `ViewComponent::Config` elsewhere.
30
- attr_writer :config
31
27
  end
32
28
 
33
29
  include ViewComponent::InlineTemplate
@@ -223,6 +219,21 @@ module ViewComponent
223
219
  @__vc_helpers ||= __vc_original_view_context || controller.view_context
224
220
  end
225
221
 
222
+ if Rails.env.development? || Rails.env.test?
223
+ def method_missing(method_name, *args) # rubocop:disable Style/MissingRespondToMissing
224
+ super
225
+ rescue => e # rubocop:disable Style/RescueStandardError
226
+ e.set_backtrace e.backtrace.tap(&:shift)
227
+ raise e, <<~MESSAGE.chomp if view_context && e.is_a?(NameError) && helpers.respond_to?(method_name)
228
+ #{e.message}
229
+
230
+ You may be trying to call a method provided as a view helper. Did you mean `helpers.#{method_name}'?
231
+ MESSAGE
232
+
233
+ raise
234
+ end
235
+ end
236
+
226
237
  # Exposes .virtual_path as an instance method
227
238
  #
228
239
  # @private
@@ -167,6 +167,14 @@ module ViewComponent
167
167
  end
168
168
  end
169
169
 
170
+ # @!attribute current
171
+ # @return [ViewComponent::Config]
172
+ # Returns the current ViewComponent::Config. This is persisted against this
173
+ # class so that config options remain accessible before the rest of
174
+ # ViewComponent has loaded. Defaults to an instance of ViewComponent::Config
175
+ # with all other documented defaults set.
176
+ class_attribute :current, default: defaults, instance_predicate: false
177
+
170
178
  def initialize
171
179
  @config = self.class.defaults
172
180
  end
@@ -6,7 +6,7 @@ require "view_component/deprecation"
6
6
 
7
7
  module ViewComponent
8
8
  class Engine < Rails::Engine # :nodoc:
9
- config.view_component = ViewComponent::Config.defaults
9
+ config.view_component = ViewComponent::Config.current
10
10
 
11
11
  rake_tasks do
12
12
  load "view_component/rails/tasks/view_component.rake"
@@ -15,6 +15,9 @@ module ViewComponent
15
15
  initializer "view_component.set_configs" do |app|
16
16
  options = app.config.view_component
17
17
 
18
+ %i[generate preview_controller preview_route show_previews_source].each do |config_option|
19
+ options[config_option] ||= ViewComponent::Base.public_send(config_option)
20
+ end
18
21
  options.instrumentation_enabled = false if options.instrumentation_enabled.nil?
19
22
  options.render_monkey_patch_enabled = true if options.render_monkey_patch_enabled.nil?
20
23
  options.show_previews = (Rails.env.development? || Rails.env.test?) if options.show_previews.nil?
@@ -37,8 +40,6 @@ module ViewComponent
37
40
 
38
41
  initializer "view_component.enable_instrumentation" do |app|
39
42
  ActiveSupport.on_load(:view_component) do
40
- Base.config = app.config.view_component
41
-
42
43
  if app.config.view_component.instrumentation_enabled.present?
43
44
  # :nocov: Re-executing the below in tests duplicates initializers and causes order-dependent failures.
44
45
  ViewComponent::Base.prepend(ViewComponent::Instrumentation)
@@ -177,7 +177,8 @@ module ViewComponent
177
177
  vc_test_request.host = host if host
178
178
  vc_test_request.path_info = path
179
179
  vc_test_request.path_parameters = Rails.application.routes.recognize_path_with_request(vc_test_request, path, {})
180
- vc_test_request.set_header("action_dispatch.request.query_parameters", Rack::Utils.parse_nested_query(query))
180
+ vc_test_request.set_header("action_dispatch.request.query_parameters",
181
+ Rack::Utils.parse_nested_query(query).with_indifferent_access)
181
182
  vc_test_request.set_header(Rack::QUERY_STRING, query)
182
183
  yield
183
184
  ensure
@@ -3,7 +3,7 @@
3
3
  module ViewComponent
4
4
  module VERSION
5
5
  MAJOR = 3
6
- MINOR = 5
6
+ MINOR = 6
7
7
  PATCH = 0
8
8
  PRE = nil
9
9
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: view_component
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.0
4
+ version: 3.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ViewComponent Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-24 00:00:00.000000000 Z
11
+ date: 2023-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport