view_component_devtools 0.1.0 → 0.1.2

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: 21babb25c8660808d7564914dd2105566e39e9954a197643e7862815ea867583
4
- data.tar.gz: c64e1042bef475216ff30b64d7fc8f5ac16d308524bb916d2460ef3a9d3e75a9
3
+ metadata.gz: 2af7b0e20aeaa0d3d3e75c5255b567050c2425b73d95819c539eff4ea289bfaf
4
+ data.tar.gz: 7653f7e096b59b3629a591610e814917c55d8ebac86a760993eb204fe61e1714
5
5
  SHA512:
6
- metadata.gz: f88cbecd121cc209eb6dd9e2a82e792cf1f7636becbc183ab6ea490cf563af7b3318d86246bce203780f79465ad5f457047ad348704732185d3ce952109fded6
7
- data.tar.gz: e9420245c4fdad743a6cec795c2e2c8846d247181436ec3bc0d41f4a1868dc0c793a745f0744be4f565e31976ff5a7a3b70d0ac69a49ebd6c97b271b2727d1d2
6
+ metadata.gz: d05d4d3bc6e21473251b807f4680ce8a551c5d9de5bc195f37be2e730aaea7b19598ced8b9b948f5a1637ab108fb7818b869b82b9a06ffd6ecf83281649818ab
7
+ data.tar.gz: 309af696584ad38c6bed98e5210707c480401f355e66ece9f4183e88ba5555f65542bea0d77ea556384f548a6a51cf833adf72517d397747a0d4b1e706763b87
@@ -13,38 +13,32 @@ module ViewComponentDevtools
13
13
  end
14
14
 
15
15
  def view_component_devtools_prop_names
16
- inherited = superclass.respond_to?(:view_component_devtools_prop_names) ?
17
- superclass.view_component_devtools_prop_names : []
18
- initializer_names = instance_method(:initialize).parameters.filter_map do |kind, name|
19
- name if %i[req opt keyreq key].include?(kind)
20
- end
21
16
  declared = @view_component_devtools_props || []
22
- trusted = inherited + declared
17
+ inferred = component_initializer&.parameters&.filter_map do |kind, name|
18
+ name if %i[req opt keyreq key].include?(kind)
19
+ end || []
23
20
 
24
- (trusted + initializer_names).uniq.select do |name|
25
- prop_reader?(name, trusted: trusted.include?(name))
21
+ (declared + inferred).uniq.select do |name|
22
+ directly_defined_reader?(name)
26
23
  end
27
24
  end
28
25
 
29
26
  private
30
27
 
31
- def prop_reader?(name, trusted:)
32
- return false unless public_method_defined?(name)
28
+ def component_initializer
29
+ return unless private_instance_methods(false).include?(:initialize) ||
30
+ protected_instance_methods(false).include?(:initialize) ||
31
+ public_instance_methods(false).include?(:initialize)
33
32
 
34
- method = instance_method(name)
35
- callable_without_arguments = method.parameters.none? do |kind, _|
36
- %i[req keyreq].include?(kind)
37
- end
38
- callable_without_arguments && (trusted || component_class_owner?(method.owner))
33
+ instance_method(:initialize)
39
34
  end
40
35
 
41
- def component_class_owner?(owner)
42
- return false unless owner.is_a?(Class)
36
+ def directly_defined_reader?(name)
37
+ return false unless public_instance_methods(false).include?(name)
43
38
 
44
- if defined?(ViewComponent::Base) && self < ViewComponent::Base
45
- owner < ViewComponent::Base
46
- else
47
- self <= owner
39
+ method = instance_method(name)
40
+ method.parameters.none? do |kind, _|
41
+ %i[req keyreq].include?(kind)
48
42
  end
49
43
  end
50
44
  end
@@ -71,7 +65,8 @@ module ViewComponentDevtools
71
65
  return identifier if identifier
72
66
  end
73
67
 
74
- self.class.instance_method(:initialize).source_location&.join(":")
68
+ initializer = self.class.send(:component_initializer)
69
+ initializer&.source_location&.join(":")
75
70
  end
76
71
  end
77
72
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ViewComponentDevtools
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.2"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: view_component_devtools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - ViewComponent DevTools contributors