Module: Thinreports::BasicReport::Core::Shape::Manager::Target

Includes:
Utils
Included in:
List::SectionInterface, Report::Page
Defined in:
lib/thinreports/basic_report/core/shape/manager/target.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Utils

#blank_value?, #call_block_in, #deep_copy, included

Instance Attribute Details

#managerObject (readonly)

Returns the value of attribute manager.



11
12
13
# File 'lib/thinreports/basic_report/core/shape/manager/target.rb', line 11

def manager
  @manager
end

Instance Method Details

#[](id) ⇒ Thinreports::BasicReport::Core::Shape::Base::Interface

Examples:

page[:text_block].style(:bold, true)
page[:rect].style(:border_color, 'red')

page[:list]       # => Error: UnknownItemId
page[:unknown_id] # => Error: UnknownItemId

Parameters:

  • id (String, Symbol)

Returns:



48
49
50
# File 'lib/thinreports/basic_report/core/shape/manager/target.rb', line 48

def [](id)
  item(id)
end

#[]=(id, value) ⇒ Object

Examples:

page[:text_block]  = 'Title'
page[:image_block] = '/path/to/image.png'
page[:list]        = 'value' # => Error: UnknownItemId
page[:ellipse]     = 'value' # => Error: NoMethodError #value
page[:unknown_id]  = 'value' # => Error: UnknownItemId

Parameters:

  • id (String, Symbol)
  • value (Object)


60
61
62
# File 'lib/thinreports/basic_report/core/shape/manager/target.rb', line 60

def []=(id, value)
  item(id).value = value
end

#item(id) {|item, | ... } ⇒ Thinreports::BasicReport::Core::Shape::Base::Interface

Examples:

item(:title).value('Title').style(:fill, 'red')

item(:title) do
  value('Title')
  style(:fill, 'red')
end

item(:title) do |t|
  t.value('Title')
  t.style(:fill, 'red')
end
item(:list)       # => Error: UnknownItemId
item(:unknown_id) # => Error: UnknownItemId

Parameters:

  • id (String, Symbol)

Yields:

Yield Parameters:

Returns:

Raises:



32
33
34
35
36
37
38
# File 'lib/thinreports/basic_report/core/shape/manager/target.rb', line 32

def item(id, &block)
  shape = find_item(id, except: Core::Shape::List::TYPE_NAME)

  raise Thinreports::BasicReport::Errors::UnknownItemId, id unless shape

  call_block_in(shape, &block)
end

#item_exists?(id) ⇒ Boolean Also known as: exists?

Parameters:

  • id (Symbol, String)

Returns:

  • (Boolean)


74
75
76
# File 'lib/thinreports/basic_report/core/shape/manager/target.rb', line 74

def item_exists?(id)
  !manager.find_format(id).nil?
end

#list(id = nil, &block) ⇒ Object

Examples:

report.list.add_row do |row|
  row.item(:price).value(1000)
end

report.list(:list_id) # => List
report.list(:text_block_id) # => raises UnknownItemId

Raises:

See Also:



87
88
89
90
91
92
93
94
# File 'lib/thinreports/basic_report/core/shape/manager/target.rb', line 87

def list(id = nil, &block)
  shape = find_item(id ||= :default, only: Core::Shape::List::TYPE_NAME)

  raise Thinreports::BasicReport::Errors::UnknownItemId.new(id, 'List') unless shape

  manager.lists[id.to_sym] ||= shape
  call_block_in(shape, &block)
end

#values(item_values) ⇒ Object

Examples:

page.values text_block: 'value',
            image_block: '/path/to/image.png'

Parameters:

  • item_values (Hash)


68
69
70
# File 'lib/thinreports/basic_report/core/shape/manager/target.rb', line 68

def values(item_values)
  item_values.each { |id, val| item(id).value(val) }
end