Class: Lookbook::CodeInspector
- Inherits:
-
Object
- Object
- Lookbook::CodeInspector
show all
- Includes:
- Utils
- Defined in:
- lib/lookbook/code_inspector.rb
Constant Summary
Constants included
from Utils
Utils::FRONTMATTER_REGEX, Utils::POSITION_PREFIX_REGEX
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(taggable_object_path) ⇒ CodeInspector
Returns a new instance of CodeInspector.
8
9
10
|
# File 'lib/lookbook/code_inspector.rb', line 8
def initialize(taggable_object_path)
@code_object = Lookbook::Engine.parser.get_code_object(taggable_object_path)
end
|
Instance Attribute Details
#code_object ⇒ Object
Returns the value of attribute code_object.
5
6
7
|
# File 'lib/lookbook/code_inspector.rb', line 5
def code_object
@code_object
end
|
Instance Method Details
#display_params ⇒ Object
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/lookbook/code_inspector.rb', line 42
def display_params
display_params = {}.with_indifferent_access
if code_object&.tags(:display).present?
code_object.tags(:display).each do |tag|
parts = tag.text.strip.match(/^([^\s]*)\s?(.*)$/)
if parts.present?
begin
display_params[parts[1]] = YAML.safe_load(parts[2] || "~")
rescue SyntaxError => err
Lookbook.logger.error("\nš [Lookbook] Invalid JSON in @display tag.\nš [Lookbook] (#{err})\n")
end
end
end
end
display_params
end
|
#group ⇒ Object
34
35
36
|
# File 'lib/lookbook/code_inspector.rb', line 34
def group
code_object&.group
end
|
#hidden? ⇒ Boolean
12
13
14
15
16
|
# File 'lib/lookbook/code_inspector.rb', line 12
def hidden?
if code_object&.tag(:hidden)
code_object.tag(:hidden).text.strip != "false"
end
end
|
#id ⇒ Object
18
19
20
21
22
|
# File 'lib/lookbook/code_inspector.rb', line 18
def id
if code_object&.tag(:id)&.text&.present?
generate_id(code_object&.tag(:id)&.text)
end
end
|
#label ⇒ Object
24
25
26
|
# File 'lib/lookbook/code_inspector.rb', line 24
def label
code_object&.tag(:label)&.text
end
|
#methods ⇒ Object
69
70
71
|
# File 'lib/lookbook/code_inspector.rb', line 69
def methods
code_object&.meths
end
|
#notes ⇒ Object
28
29
30
31
32
|
# File 'lib/lookbook/code_inspector.rb', line 28
def notes
if code_object&.docstring
code_object.docstring.to_s.strip
end
end
|
#parameter_defaults ⇒ Object
59
60
61
|
# File 'lib/lookbook/code_inspector.rb', line 59
def parameter_defaults
code_object&.parameters&.map { |str| Params.parse_method_param_str(str) }&.compact&.to_h
end
|
#params ⇒ Object
63
64
65
66
67
|
# File 'lib/lookbook/code_inspector.rb', line 63
def params
code_object&.tags("param")&.map do |param|
Lookbook::Params.build_param(param, parameter_defaults[param.name])
end
end
|
#position ⇒ Object
38
39
40
|
# File 'lib/lookbook/code_inspector.rb', line 38
def position
code_object&.tag(:position)&.text&.to_i || 10000
end
|