module Hashie::Extensions::Dash::PredefinedValues::ClassMethods
def assert_predefined_values!(predefined_values)
def assert_predefined_values!(predefined_values) return if supported_type?(predefined_values) raise ArgumentError, %(`values` accepts an Array or a Range.) end
def inherited(klass)
def inherited(klass) super klass.instance_variable_set(:@values_for_properties, values_for_properties.dup) end
def property(property_name, options = {})
def property(property_name, options = {}) super return unless (predefined_values = options[:values]) assert_predefined_values!(predefined_values) set_predefined_values(property_name, predefined_values) end
def set_predefined_values(property_name, predefined_values)
def set_predefined_values(property_name, predefined_values) @values_for_properties[property_name] = predefined_values end
def supported_type?(predefined_values)
def supported_type?(predefined_values) [::Array, ::Range].any? { |klass| predefined_values.is_a?(klass) } end