view_component_devtools 0.1.3 → 0.1.4

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: bf5b2619905340a6dd2b5e8bc564172c9a49441a6353d48e36619585abb190b3
4
- data.tar.gz: c5fc0d7882588e18739448c3cc147d3a10a4e0c93fdad4c0a8a5406fe65958b4
3
+ metadata.gz: 9841af3364bbae0b7d4fb590a7ec9463476a68bb7b9c955e2d10dbf8da7657e2
4
+ data.tar.gz: d16c54119b57e272c70b6b4cfa15259cdc75aef61a85222dfa720383c34d0ba1
5
5
  SHA512:
6
- metadata.gz: cd02547ecaca8df7483794ee934f9b7374821fd10df047028e9739d43277207c7b1aa3cb10b92f5ae5da91f43497b84f232d61669042a30d6d2fe1bdb08288a0
7
- data.tar.gz: d3f7f7a4000c3fe7527bdd87de585806d4e8fb559d1e3970e9900d884495e817a4d537fe98b3a740d9387effcf9d1ac558a93c25182bf1cb70728009a1e64a8a
6
+ metadata.gz: 9a64b47d13bedfc1def0aec3bf2283ea598517f92558524ad4516db3607dec4a8500311478485881a5dd3fc219ce342bc7014902a80db0e21dd7e91ad4f7eb2f
7
+ data.tar.gz: d52edd88880944c3e307299f76e8e64e5352aed72943c21f11fd0f15aad634e80059940e1b7c23df0723b7d382b1ce43b93caf222e2e5882786d5fb90729bb2e
@@ -12,43 +12,14 @@ module ViewComponentDevtools
12
12
  end
13
13
 
14
14
  module ClassMethods
15
- def devtools_props(*names)
16
- @view_component_devtools_props ||= []
17
- @view_component_devtools_props.concat(names.map(&:to_sym)).uniq!
18
- end
19
-
20
- def view_component_devtools_prop_names
21
- declared = (@view_component_devtools_props || []).select do |name|
22
- directly_defined_zero_argument_method?(name)
23
- end
24
- inferred = component_initializer&.parameters&.filter_map do |kind, name|
25
- name if %i[req opt keyreq key].include?(kind) && directly_defined_attribute_reader?(name)
26
- end || []
27
-
28
- (declared + inferred).uniq
15
+ def view_component_devtools_property_names
16
+ public_instance_methods(false).select do |name|
17
+ name != :render_in && instance_method(name).parameters.empty?
18
+ end.sort
29
19
  end
30
20
 
31
21
  private
32
22
 
33
- def attr(*names)
34
- result = super
35
- reader_names = names.last == true || names.last == false ? names[0...-1] : names
36
- track_attribute_readers(reader_names)
37
- result
38
- end
39
-
40
- def attr_accessor(*names)
41
- result = super
42
- track_attribute_readers(names)
43
- result
44
- end
45
-
46
- def attr_reader(*names)
47
- result = super
48
- track_attribute_readers(names)
49
- result
50
- end
51
-
52
23
  def component_initializer
53
24
  return unless private_instance_methods(false).include?(:initialize) ||
54
25
  protected_instance_methods(false).include?(:initialize) ||
@@ -56,29 +27,6 @@ module ViewComponentDevtools
56
27
 
57
28
  instance_method(:initialize)
58
29
  end
59
-
60
- def directly_defined_attribute_reader?(name)
61
- reader = (@view_component_devtools_attribute_readers || {})[name]
62
- return false unless reader
63
- return false unless directly_defined_zero_argument_method?(name)
64
-
65
- instance_method(name) == reader
66
- end
67
-
68
- def directly_defined_zero_argument_method?(name)
69
- return false unless public_instance_methods(false).include?(name)
70
-
71
- method = instance_method(name)
72
- method.owner == self && method.arity.zero?
73
- end
74
-
75
- def track_attribute_readers(names)
76
- @view_component_devtools_attribute_readers ||= {}
77
- names.each do |name|
78
- name = name.to_sym
79
- @view_component_devtools_attribute_readers[name] = instance_method(name)
80
- end
81
- end
82
30
  end
83
31
 
84
32
  def render_in(...)
@@ -87,8 +35,11 @@ module ViewComponentDevtools
87
35
  metadata = {
88
36
  name: self.class.name,
89
37
  source_location: component_source_location,
90
- props: self.class.view_component_devtools_prop_names.to_h do |name|
91
- [name, public_send(name)]
38
+ properties: self.class.view_component_devtools_property_names.to_h do |name|
39
+ value = public_send(name)
40
+ [name, value]
41
+ rescue StandardError => error
42
+ [name, "[error #{error.class.name}]"]
92
43
  end
93
44
  }
94
45
 
@@ -16,7 +16,6 @@ module ViewComponentDevtools
16
16
  attr_accessor :allow_non_development,
17
17
  :enabled,
18
18
  :max_collection_size,
19
- :max_components,
20
19
  :max_depth,
21
20
  :max_string_length,
22
21
  :redact_keys
@@ -24,7 +23,6 @@ module ViewComponentDevtools
24
23
  def initialize
25
24
  @enabled = false
26
25
  @allow_non_development = false
27
- @max_components = 500
28
26
  @max_depth = 8
29
27
  @max_collection_size = 50
30
28
  @max_string_length = 2_000
@@ -50,7 +50,6 @@ module ViewComponentDevtools
50
50
  @component_stack = []
51
51
  @event_stack = []
52
52
  @component_count = 0
53
- @truncated = false
54
53
  @normalizer = Normalizer.new(configuration)
55
54
  end
56
55
 
@@ -85,10 +84,10 @@ module ViewComponentDevtools
85
84
 
86
85
  def payload
87
86
  {
88
- version: 1,
87
+ version: 2,
89
88
  requestId: request_id,
90
89
  generatedAt: Time.now.utc.iso8601(3),
91
- truncated: @truncated,
90
+ truncated: false,
92
91
  components:
93
92
  }
94
93
  end
@@ -98,11 +97,6 @@ module ViewComponentDevtools
98
97
  attr_reader :component_stack, :components, :configuration, :event_stack, :normalizer
99
98
 
100
99
  def build_node(payload, start_time)
101
- if @component_count >= configuration.max_components
102
- @truncated = true
103
- return nil
104
- end
105
-
106
100
  @component_count += 1
107
101
  metadata = component_stack.last
108
102
  metadata = nil unless metadata&.fetch(:name, nil) == payload[:name]
@@ -115,7 +109,7 @@ module ViewComponentDevtools
115
109
  sourceLocation: payload[:identifier] || metadata&.fetch(:source_location, nil),
116
110
  templateLocation: payload[:view_identifier],
117
111
  durationMs: nil,
118
- props: normalizer.call(metadata&.fetch(:props, {}) || {}),
112
+ properties: normalizer.call(metadata&.fetch(:properties, {}) || {}),
119
113
  children: [],
120
114
  startedAt: start_time
121
115
  }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ViewComponentDevtools
4
- VERSION = "0.1.3"
4
+ VERSION = "0.1.4"
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.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - ViewComponent DevTools contributors