Class: Iqvoc::Origin

Inherits:
Object
  • Object
show all
Defined in:
lib/iqvoc/origin.rb

Defined Under Namespace

Modules: Filters

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value) ⇒ Origin

Returns a new instance of Origin.



78
79
80
81
# File 'lib/iqvoc/origin.rb', line 78

def initialize(value)
  self.initial_value = value.to_s
  self.value = initial_value
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(meth, *args) ⇒ Object



93
94
95
96
97
98
99
# File 'lib/iqvoc/origin.rb', line 93

def method_missing(meth, *args)
  if Filters.registered.keys.include?(meth.to_sym)
    Filters.registered[meth.to_sym].new.call(self, value)
  else
    super
  end
end

Instance Attribute Details

#filtersObject

Returns the value of attribute filters.



76
77
78
# File 'lib/iqvoc/origin.rb', line 76

def filters
  @filters
end

#initial_valueObject

Returns the value of attribute initial_value.



76
77
78
# File 'lib/iqvoc/origin.rb', line 76

def initial_value
  @initial_value
end

#valueObject

Returns the value of attribute value.



76
77
78
# File 'lib/iqvoc/origin.rb', line 76

def value
  @value
end

Instance Method Details

#inspectObject



107
108
109
# File 'lib/iqvoc/origin.rb', line 107

def inspect
  '#<Iqvoc::Origin:0x%08x>' % object_id
end

#run_filters!Object



87
88
89
90
91
# File 'lib/iqvoc/origin.rb', line 87

def run_filters!
  Filters.registered.each do |key, filter_class|
    filter_class.new.call(self, value)
  end
end

#to_sObject



101
102
103
104
105
# File 'lib/iqvoc/origin.rb', line 101

def to_s
  return value if touched?
  run_filters!
  value
end

#touched?Boolean

Returns:

  • (Boolean)


83
84
85
# File 'lib/iqvoc/origin.rb', line 83

def touched?
  value != initial_value
end