Class: MontageRails::Base::Column
- Inherits:
-
Object
- Object
- MontageRails::Base::Column
- Defined in:
- lib/montage_rails/base/column.rb
Constant Summary collapse
- TYPE_MAP =
{ "integer" => Integer, "float" => Float, "text" => String, "date" => Date, "time" => Time, "datetime" => DateTime, "numeric" => Numeric, "boolean" => Boolean }
Instance Attribute Summary collapse
-
#name ⇒ Object
Returns the value of attribute name.
-
#required ⇒ Object
(also: #required?)
Returns the value of attribute required.
-
#type ⇒ Object
Returns the value of attribute type.
Instance Method Summary collapse
- #coerce(value) ⇒ Object
-
#initialize(name, type, required = false) ⇒ Column
constructor
A new instance of Column.
-
#is_boolean?(value) ⇒ Boolean
Determines if the string is a Boolean Returns true or false.
-
#is_f?(value) ⇒ Boolean
Determines if the string value passed in is a float Returns true or false.
-
#is_i?(value) ⇒ Boolean
Determines if the string value passed in is an integer Returns true or false.
- #value_valid?(value) ⇒ Boolean
Constructor Details
#initialize(name, type, required = false) ⇒ Column
Returns a new instance of Column.
21 22 23 24 25 |
# File 'lib/montage_rails/base/column.rb', line 21 def initialize(name, type, required = false) @name = name @type = type @required = required end |
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
17 18 19 |
# File 'lib/montage_rails/base/column.rb', line 17 def name @name end |
#required ⇒ Object Also known as: required?
Returns the value of attribute required.
17 18 19 |
# File 'lib/montage_rails/base/column.rb', line 17 def required @required end |
#type ⇒ Object
Returns the value of attribute type.
17 18 19 |
# File 'lib/montage_rails/base/column.rb', line 17 def type @type end |
Instance Method Details
#coerce(value) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/montage_rails/base/column.rb', line 52 def coerce(value) return nil unless value return value if value.is_a?(TYPE_MAP[type]) if is_i?(value) coerce_to = Integer elsif is_f?(value) coerce_to = Float elsif is_boolean?(value) coerce_to = Axiom::Types::Boolean else coerce_to = TYPE_MAP[type] end Virtus::Attribute.build(coerce_to).coerce(value) end |
#is_boolean?(value) ⇒ Boolean
Determines if the string is a Boolean Returns true or false
48 49 50 |
# File 'lib/montage_rails/base/column.rb', line 48 def is_boolean?(value) Boolean.is_me?(value) end |
#is_f?(value) ⇒ Boolean
Determines if the string value passed in is a float Returns true or false
41 42 43 |
# File 'lib/montage_rails/base/column.rb', line 41 def is_f?(value) /\A\d+\.\d+\z/ =~ value.to_s end |
#is_i?(value) ⇒ Boolean
Determines if the string value passed in is an integer Returns true or false
34 35 36 |
# File 'lib/montage_rails/base/column.rb', line 34 def is_i?(value) /\A\d+\z/ =~ value.to_s end |
#value_valid?(value) ⇒ Boolean
27 28 29 |
# File 'lib/montage_rails/base/column.rb', line 27 def value_valid?(value) !(required? && value.nil?) end |