Class: ActiveFields::Config

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/active_fields/config.rb

Constant Summary collapse

DEFAULT_FIELD_BASE_CLASS_NAME =
"ActiveFields::Field::Base"
DEFAULT_VALUE_CLASS_NAME =
"ActiveFields::Value"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig

Returns a new instance of Config.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/active_fields/config.rb', line 13

def initialize
  @field_base_class_name = DEFAULT_FIELD_BASE_CLASS_NAME
  @value_class_name = DEFAULT_VALUE_CLASS_NAME
  @fields = {
    boolean: "ActiveFields::Field::Boolean",
    date: "ActiveFields::Field::Date",
    date_array: "ActiveFields::Field::DateArray",
    datetime: "ActiveFields::Field::DateTime",
    datetime_array: "ActiveFields::Field::DateTimeArray",
    decimal: "ActiveFields::Field::Decimal",
    decimal_array: "ActiveFields::Field::DecimalArray",
    enum: "ActiveFields::Field::Enum",
    enum_array: "ActiveFields::Field::EnumArray",
    integer: "ActiveFields::Field::Integer",
    integer_array: "ActiveFields::Field::IntegerArray",
    text: "ActiveFields::Field::Text",
    text_array: "ActiveFields::Field::TextArray",
  }
end

Instance Attribute Details

#field_base_class_nameObject

Returns the value of attribute field_base_class_name.



10
11
12
# File 'lib/active_fields/config.rb', line 10

def field_base_class_name
  @field_base_class_name
end

#fieldsObject (readonly)

Returns the value of attribute fields.



11
12
13
# File 'lib/active_fields/config.rb', line 11

def fields
  @fields
end

#value_class_nameObject

Returns the value of attribute value_class_name.



10
11
12
# File 'lib/active_fields/config.rb', line 10

def value_class_name
  @value_class_name
end

Instance Method Details

#field_base_classObject



33
34
35
# File 'lib/active_fields/config.rb', line 33

def field_base_class
  @field_base_class ||= field_base_class_name.constantize
end

#field_base_class_changed?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/active_fields/config.rb', line 41

def field_base_class_changed?
  field_base_class_name != DEFAULT_FIELD_BASE_CLASS_NAME
end

#register_field(type_name, class_name) ⇒ Object



49
50
51
# File 'lib/active_fields/config.rb', line 49

def register_field(type_name, class_name)
  @fields[type_name.to_sym] = class_name
end

#type_class_namesObject



57
58
59
# File 'lib/active_fields/config.rb', line 57

def type_class_names
  fields.values
end

#type_namesObject



53
54
55
# File 'lib/active_fields/config.rb', line 53

def type_names
  fields.keys
end

#value_classObject



37
38
39
# File 'lib/active_fields/config.rb', line 37

def value_class
  @value_class ||= value_class_name.constantize
end

#value_class_changed?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/active_fields/config.rb', line 45

def value_class_changed?
  value_class_name != DEFAULT_VALUE_CLASS_NAME
end