class SimpleEnumeration::TypeMethodsDefiner
Attributes
collection[R]
enum_class[R]
type[R]
Public Class Methods
call(*params, **options, &block)
click to toggle source
# File lib/simple_enumeration/type_methods_definer.rb, line 13 def self.call(*params, **options, &block) new(*params, **options).call(&block) end
new(enum_class:, collection:, type:)
click to toggle source
# File lib/simple_enumeration/type_methods_definer.rb, line 7 def initialize(enum_class:, collection:, type:) @enum_class = enum_class @collection = collection @type = type end
Public Instance Methods
call()
click to toggle source
# File lib/simple_enumeration/type_methods_definer.rb, line 17 def call define_singleton_type_method define_singleton_type_value_method define_singleton_type_value_predicate_method define_instance_type_value_predicate_method end
Private Instance Methods
define_instance_type_value_predicate_method()
click to toggle source
# File lib/simple_enumeration/type_methods_definer.rb, line 50 def define_instance_type_value_predicate_method enum_class.define_method type.value_predicate_method_name do return false unless type type_value = Type.type_value_for_value_predicate_method_name(__method__) self.class.basic_collection.get_type(type_value).converted_value == type.converted_value end end
define_singleton_type_method()
click to toggle source
# File lib/simple_enumeration/type_methods_definer.rb, line 26 def define_singleton_type_method enum_class.define_singleton_method type.method_name do type_value = Type.type_value_for_method_name(__method__) basic_collection.get_type(type_value) end end
define_singleton_type_value_method()
click to toggle source
# File lib/simple_enumeration/type_methods_definer.rb, line 34 def define_singleton_type_value_method enum_class.define_singleton_method type.value_method_name do type_value = Type.type_value_for_value_method_name(__method__) basic_collection.get_type(type_value).converted_value end end
define_singleton_type_value_predicate_method()
click to toggle source
# File lib/simple_enumeration/type_methods_definer.rb, line 42 def define_singleton_type_value_predicate_method enum_class.define_singleton_method type.value_predicate_method_name do |converted_value| type_value = Type.type_value_for_value_predicate_method_name(__method__) basic_collection.get_type(type_value).converted_value == converted_value end end