class Rabbit::Properties
Public Class Methods
Source
# File lib/rabbit/properties.rb, line 24 def initialize(data) @data = normalize(data) end
Public Instance Methods
Source
# File lib/rabbit/properties.rb, line 32 def []=(key, value) @data[normalize_key(key)] = value end
Source
# File lib/rabbit/properties.rb, line 64 def draws targets = @data.select do |key, _| /\Adraw\d+\z/.match?(key) end targets = targets.sort_by do |key, _| Integer(key[/\d+/], 10) end targets.collect do |_, value| YAMLLoader.load(value) end end
Source
# File lib/rabbit/properties.rb, line 36 def each(&block) @data.each(&block) end
Source
# File lib/rabbit/properties.rb, line 40 def get_boolean(key, default=nil) value = self[key] return default if value.nil? true_value?(value) end
Source
# File lib/rabbit/properties.rb, line 50 def get_float(key, default=nil) float_value(self[key] || default) end
Source
# File lib/rabbit/properties.rb, line 46 def get_integer(key, default=nil) integer_value(self[key] || default) end
Source
# File lib/rabbit/properties.rb, line 58 def get_relative_size(key, filename, default=nil) relative_size_value(self[key] || default, filename, key) end
Source
# File lib/rabbit/properties.rb, line 54 def get_size(key, filename, default=nil) size_value(self[key] || default, filename, key) end
Source
# File lib/rabbit/properties.rb, line 80 def method_missing(name, *args, &block) case args.size when 0 key = name.to_s if key.end_with?("?") key = key[0..-2] is_predict = true else is_predict = false end key = normalize_key(key) return super unless @data.key?(key) value = @data[key] if is_predict true_value?(value) else value end when 1 key = name.to_s return super unless key.end_with?("=") key = key[0..-2] @data[normalize_key(key)] = args[0] else super end end
Calls superclass method
Source
# File lib/rabbit/properties.rb, line 76 def respond_to_missing?(name, include_private) @data.key?(normalize_key(name.to_s.gsub(/\?\z/, ""))) end
Private Instance Methods
Source
# File lib/rabbit/properties.rb, line 130 def float_value(value) return nil if value.nil? Float(value) end
Source
# File lib/rabbit/properties.rb, line 125 def integer_value(value) return nil if value.nil? Integer(value, 10) end
Source
# File lib/rabbit/properties.rb, line 109 def normalize(data) normalized_data = {} (data || {}).each do |key, value| normalized_data[normalize_key(key)] = value end normalized_data end
Source
# File lib/rabbit/properties.rb, line 117 def normalize_key(key) key.to_s.gsub(/-/, "_") end
Source
# File lib/rabbit/properties.rb, line 144 def relative_size_value(value, filename, name) return nil if value.nil? begin value = Float(value) rescue ArgumentError raise InvalidSizeError.new(filename, name, value) end RelativeSize.new(value) end
Source
# File lib/rabbit/properties.rb, line 135 def size_value(value, filename, name) return nil if value.nil? begin Integer(value, 10) rescue ArgumentError raise InvalidSizeError.new(filename, name, value) end end
Source
# File lib/rabbit/properties.rb, line 121 def true_value?(value) value == true or value == "true" end