Class: Thinreports::BasicReport::Core::Shape::Style::Base
- Inherits:
-
Object
- Object
- Thinreports::BasicReport::Core::Shape::Style::Base
show all
- Includes:
- Utils
- Defined in:
- lib/thinreports/basic_report/core/shape/style/base.rb
Direct Known Subclasses
Basic
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Utils
#blank_value?, #call_block_in, #deep_copy, included
Constructor Details
#initialize(format, default_styles = {}) ⇒ Base
Returns a new instance of Base.
56
57
58
59
60
61
62
|
# File 'lib/thinreports/basic_report/core/shape/style/base.rb', line 56
def initialize(format, default_styles = {})
@format = format
@styles = default_styles
@base_styles = format.style || {}
@accessible_styles = self.class.accessible_styles.dup
end
|
Instance Attribute Details
#accessible_styles ⇒ Object
52
53
54
|
# File 'lib/thinreports/basic_report/core/shape/style/base.rb', line 52
def accessible_styles
@accessible_styles
end
|
#styles ⇒ Hash
50
51
52
|
# File 'lib/thinreports/basic_report/core/shape/style/base.rb', line 50
def styles
@styles
end
|
Class Method Details
.accessible_styles ⇒ Array<Symbol>
40
41
42
|
# File 'lib/thinreports/basic_report/core/shape/style/base.rb', line 40
def accessible_styles
@accessible_styles ||= []
end
|
.inherited(s) ⇒ Object
44
45
46
|
# File 'lib/thinreports/basic_report/core/shape/style/base.rb', line 44
def inherited(s)
s.accessible_styles.concat(accessible_styles.dup)
end
|
.style_accessible(*style_methods) ⇒ Object
35
36
37
|
# File 'lib/thinreports/basic_report/core/shape/style/base.rb', line 35
def style_accessible(*style_methods)
accessible_styles.concat(style_methods)
end
|
.style_accessor(style_method, style) ⇒ void
This method returns an undefined value.
15
16
17
18
|
# File 'lib/thinreports/basic_report/core/shape/style/base.rb', line 15
def style_accessor(style_method, style)
style_reader(style_method, style)
style_writer(style_method, style)
end
|
.style_reader(style_method, style) ⇒ Object
21
22
23
24
25
|
# File 'lib/thinreports/basic_report/core/shape/style/base.rb', line 21
def style_reader(style_method, style)
define_method(style_method) do
read_internal_style(style)
end
end
|
.style_writer(style_method, style) ⇒ Object
28
29
30
31
32
|
# File 'lib/thinreports/basic_report/core/shape/style/base.rb', line 28
def style_writer(style_method, style)
define_method(:"#{style_method}=") do |value|
write_internal_style(style, value)
end
end
|
Instance Method Details
#[](style_method) ⇒ Object
66
67
68
69
|
# File 'lib/thinreports/basic_report/core/shape/style/base.rb', line 66
def [](style_method)
verify_style_method(style_method)
send(style_method.to_sym)
end
|
#[]=(style_method, value) ⇒ Object
73
74
75
76
|
# File 'lib/thinreports/basic_report/core/shape/style/base.rb', line 73
def []=(style_method, value)
verify_style_method(style_method)
send(:"#{style_method}=", value)
end
|
#copy ⇒ self
84
85
86
|
# File 'lib/thinreports/basic_report/core/shape/style/base.rb', line 84
def copy
self.class.new(@format, @styles.empty? ? {} : deep_copy(@styles))
end
|
#finalized_styles ⇒ Hash
108
109
110
111
112
113
114
115
|
# File 'lib/thinreports/basic_report/core/shape/style/base.rb', line 108
def finalized_styles
@finalized_styles ||=
if @styles.empty?
@base_styles.dup
else
@base_styles.merge(@styles)
end
end
|
#has_style?(style_method) ⇒ Boolean
103
104
105
|
# File 'lib/thinreports/basic_report/core/shape/style/base.rb', line 103
def has_style?(style_method)
accessible_styles.include?(style_method)
end
|
#identifier ⇒ String
79
80
81
|
# File 'lib/thinreports/basic_report/core/shape/style/base.rb', line 79
def identifier
create_identifier(@styles)
end
|
#read_internal_style(style) ⇒ Object
90
91
92
93
|
# File 'lib/thinreports/basic_report/core/shape/style/base.rb', line 90
def read_internal_style(style)
style = style.to_s
@styles.key?(style) ? @styles[style] : @base_styles[style]
end
|
#write_internal_style(style, value) ⇒ Object
97
98
99
|
# File 'lib/thinreports/basic_report/core/shape/style/base.rb', line 97
def write_internal_style(style, value)
@styles[style.to_s] = value
end
|