module Plotrb::Kernel
Public Class Methods
axes()
click to toggle source
a global space keeping track of all Axis
objects defined
# File lib/plotrb/kernel.rb, line 22 def self.axes @axes ||= [] end
data()
click to toggle source
a global space keeping track of all Data
objects defined
# File lib/plotrb/kernel.rb, line 7 def self.data @data ||= [] end
duplicate_data?(name)
click to toggle source
@return [Boolean] if a Data
object with same name already exists
# File lib/plotrb/kernel.rb, line 17 def self.duplicate_data?(name) @data.select { |d| d.name == name.to_s }.size > 1 end
duplicate_mark?(name)
click to toggle source
@return [Boolean] if a Mark
object with same name already exists
# File lib/plotrb/kernel.rb, line 52 def self.duplicate_mark?(name) @marks.select { |m| m.name == name.to_s }.size > 1 end
duplicate_scale?(name)
click to toggle source
@return [Boolean] if a Scale
object with same name already exists
# File lib/plotrb/kernel.rb, line 37 def self.duplicate_scale?(name) @scales.select { |s| s.name == name.to_s }.size > 1 end
find_data(name)
click to toggle source
@return [Data] find Data
object by name
# File lib/plotrb/kernel.rb, line 12 def self.find_data(name) @data.find { |d| d.name == name.to_s } end
find_mark(name)
click to toggle source
@return [Mark] find Mark
object by name
# File lib/plotrb/kernel.rb, line 47 def self.find_mark(name) @marks.find { |m| m.name == name.to_s } end
find_scale(name)
click to toggle source
@return [Scale] find Scale
object by name
# File lib/plotrb/kernel.rb, line 32 def self.find_scale(name) @scales.find { |s| s.name == name.to_s } end
legends()
click to toggle source
a global space keeping track of all Transform
objects defined
# File lib/plotrb/kernel.rb, line 62 def self.legends @legends ||= [] end
marks()
click to toggle source
a global space keeping track of all Mark
objects defined
# File lib/plotrb/kernel.rb, line 42 def self.marks @marks ||= [] end
scales()
click to toggle source
a global space keeping track of all Scale
objects defined
# File lib/plotrb/kernel.rb, line 27 def self.scales @scales ||= [] end
transforms()
click to toggle source
a global space keeping track of all Transform
objects defined
# File lib/plotrb/kernel.rb, line 57 def self.transforms @transforms ||= [] end
Public Instance Methods
legend(&block)
click to toggle source
# File lib/plotrb/kernel.rb, line 78 def legend(&block) ::Plotrb::Legend.new(&block) end
method_missing(method, *args, &block)
click to toggle source
Calls superclass method
# File lib/plotrb/kernel.rb, line 82 def method_missing(method, *args, &block) case method.to_s when /^(\w)_axis$/ # Initialize ::Plotrb::Axis objects if ::Plotrb::Axis::TYPES.include?($1.to_sym) cache_method($1, 'axis') self.send(method) else super end when /^(\w+)_scale$/ # Initialize ::Plotrb::Scale objects if ::Plotrb::Scale::TYPES.include?($1.to_sym) cache_method($1, 'scale') self.send(method) else super end when /^(\w+)_transform$/ # Initialize ::Plotrb::Transform objects if ::Plotrb::Transform::TYPES.include?($1.to_sym) cache_method($1, 'transform') self.send(method) else super end when /^(\w+)_mark$/ # Initialize ::Plotrb::Mark objects if ::Plotrb::Mark::TYPES.include?($1.to_sym) cache_method($1, 'mark') self.send(method) else super end else super end end
pdata(&block)
click to toggle source
Initialize ::Plotrb::Data
objects
# File lib/plotrb/kernel.rb, line 74 def pdata(&block) ::Plotrb::Data.new(&block) end
visualization(&block)
click to toggle source
Initialize ::Plotrb::Visualization
object
# File lib/plotrb/kernel.rb, line 68 def visualization(&block) ::Plotrb::Visualization.new(&block) end
Protected Instance Methods
cache_method(type, klass)
click to toggle source
# File lib/plotrb/kernel.rb, line 123 def cache_method(type, klass) self.class.class_eval { define_method("#{type}_#{klass}") do |&block| # class names are constants # create shortcut methods to initialize Plotrb objects ::Kernel::const_get("::Plotrb::#{klass.capitalize}"). new(type.to_sym, &block) end } end