class PRRD::Graph
Attributes
base[RW]
border[RW]
database[RW]
Accessors
end[RW]
entities[RW]
full_size_mode[RW]
height[RW]
imgformat[RW]
legend_direction[RW]
legend_position[RW]
lower_limit[RW]
no_legend[RW]
only_graph[RW]
path[RW]
Accessors
rigid[RW]
start[RW]
step[RW]
title[RW]
upper_limit[RW]
vertical_label[RW]
watermark[RW]
width[RW]
zoom[RW]
Public Class Methods
new(values = nil)
click to toggle source
Constructor
# File lib/prrd/graph.rb, line 21 def initialize(values = nil) @entities = { colors: [], definitions: [], areas: [], lines: [], prints: [], comments: [], hrules: [], vrules: [], shift: [], textalign: [] } unless values.nil? values.each do |k, v| m = "#{k}=".to_sym next unless respond_to? m send m, v end end end
Public Instance Methods
<<(object)
click to toggle source
Add an object @param object [Object]
# File lib/prrd/graph.rb, line 72 def <<(object) if object.is_a? PRRD::Graph::Definition @entities[:definitions] << object elsif object.is_a? PRRD::Graph::Color @entities[:colors] << object elsif object.is_a? PRRD::Graph::Area @entities[:areas] << object elsif object.is_a? PRRD::Graph::Line @entities[:lines] << object elsif object.is_a? PRRD::Graph::Print @entities[:prints] << object elsif object.is_a? PRRD::Graph::Comment @entities[:comments] << object elsif object.is_a? PRRD::Graph::Hrule @entities[:hrules] << object elsif object.is_a? PRRD::Graph::Vrule @entities[:vrules] << object elsif object.is_a? PRRD::Graph::Shift @entities[:shift] << object elsif object.is_a? PRRD::Graph::Textalign @entities[:textalign] << object else fail 'Can not add this kind of object in PRRD::Graph' end end
check_database()
click to toggle source
Check database existence
# File lib/prrd/graph.rb, line 50 def check_database fail 'No database provided' if @database.nil? end
check_file()
click to toggle source
Check image existence
# File lib/prrd/graph.rb, line 45 def check_file fail 'Image path is missing' if @path.nil? end
generate()
click to toggle source
Generate a graph @return [String]
# File lib/prrd/graph.rb, line 100 def generate check_file check_database fail 'Definitions are missing' if @entities[:definitions].empty? cmd = [] cmd << "#{PRRD.bin} graph #{@path}" cmd << "--start=#{@start}" unless @start.nil? cmd << "--end=#{@end}" unless @end.nil? cmd << "--step=#{@step}" unless @step.nil? cmd << "--title=\"#{@title}\"" unless @title.nil? cmd << "--vertical-label=\"#{@vertical_label}\"" unless @vertical_label.nil? cmd << "--width=#{@width}" unless @width.nil? cmd << "--height=#{@height}" unless @height.nil? cmd << '--only-graph' unless @only_graph.nil? cmd << '--full-size-mode' unless @full_size_mode.nil? cmd << "--lower-limit=#{@lower_limit}" unless @lower_limit.nil? cmd << "--upper-limit=#{@upper_limit}" unless @upper_limit.nil? cmd << '--rigid' unless @rigid.nil? cmd << "--no-legend" unless @no_legend.nil? cmd << "--legend-position=\"#{@legend_position}\"" unless @legend_position.nil? cmd << "--legend-direction=\"#{@legend_direction}\"" unless @legend_direction.nil? cmd << "--base=#{@base}" unless @base.nil? cmd << "--border=#{@border}" unless @border.nil? cmd << "--zoom=#{@zoom}" unless @zoom.nil? cmd << "--imgformat=\"#{@imgformat}\"" unless @imgformat.nil? cmd << "--watermark=\"#{@watermark}\"" unless @watermark.nil? @entities.each do |k, v| next if v.empty? v.each do |e| cmd << e.to_s end end # Exectute PRRD.execute cmd.join ' ' end
method_missing(m, *args, &block)
click to toggle source
Calls superclass method
# File lib/prrd/graph.rb, line 54 def method_missing(m, *args, &block) entities = @entities.keys.map(&:to_s) + @entities.keys.map! { |e| e.to_s[0..-2] } ms = m.to_s.gsub 'add_', '' if entities.include? ms if ms[-1] == 's' @entities[ms.to_sym] = args[0] else @entities["#{ms}s".to_sym] << args[0] end return true end super end