class ImageParadise::Gruff::Scene
Attributes
layers[R]
An array listing the foldernames that will be rendered, from back to front.
g.layers = %w(sky clouds buildings street people)
Public Class Methods
new(target_width, base_dir)
click to toggle source
initialize¶ ↑
Calls superclass method
ImageParadise::Gruff::Base::new
# File lib/image_paradise/graphs/scene.rb, line 57 def initialize(target_width, base_dir) @base_dir = base_dir @groups = {} @layers = [] super target_width end
Public Instance Methods
draw()
click to toggle source
layers=(ordered_list)
click to toggle source
method_missing(method_name, *args)
click to toggle source
Group layers to input values
g.weather_group = ["sky", "sea", "clouds"]
Set input values
g.weather = "cloudy"
Calls superclass method
# File lib/image_paradise/graphs/scene.rb, line 85 def method_missing(method_name, *args) case method_name.to_s when /^(\w+)_group=$/ add_group $1, *args return when /^(\w+)=$/ set_input $1, args.first return end super end
Private Instance Methods
add_group(input_name, layer_names)
click to toggle source
# File lib/image_paradise/graphs/scene.rb, line 99 def add_group(input_name, layer_names) @groups[input_name] = Gruff::Group.new(input_name, @layers.select { |layer| layer_names.include?(layer.name) }) end
set_input(input_name, input_value)
click to toggle source
# File lib/image_paradise/graphs/scene.rb, line 103 def set_input(input_name, input_value) if not @groups[input_name].nil? @groups[input_name].send_updates(input_value) else if chosen_layer = @layers.detect { |layer| layer.name == input_name } chosen_layer.update input_value end end end