Class: UserChoices::Conversion
- Inherits:
-
Object
- Object
- UserChoices::Conversion
show all
- Defined in:
- lib/user-choices/conversions.rb
Overview
Constant Summary
collapse
- @@subclasses =
[]
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(conversion_tag) ⇒ Conversion
Returns a new instance of Conversion.
28
29
30
|
# File 'lib/user-choices/conversions.rb', line 28
def initialize(conversion_tag)
@conversion_tag = conversion_tag
end
|
Class Method Details
.described_by?(conversion_tag) ⇒ Boolean
32
|
# File 'lib/user-choices/conversions.rb', line 32
def self.described_by?(conversion_tag); subclass_responsibility; end
|
.for(conversion_tag) ⇒ Object
22
23
24
25
26
|
# File 'lib/user-choices/conversions.rb', line 22
def self.for(conversion_tag)
subclass = @@subclasses.find { |sc| sc.described_by?(conversion_tag) }
user_claims(subclass) { "#{conversion_tag} doesn't describe any Conversion object." }
subclass.new(conversion_tag)
end
|
.inherited(subclass) ⇒ Object
9
10
11
|
# File 'lib/user-choices/conversions.rb', line 9
def self.inherited(subclass)
@@subclasses << subclass
end
|
.is_abstract ⇒ Object
13
14
15
|
# File 'lib/user-choices/conversions.rb', line 13
def self.is_abstract
@@subclasses.delete(self)
end
|
.record_for(conversion_tag, recorder) ⇒ Object
17
18
19
20
|
# File 'lib/user-choices/conversions.rb', line 17
def self.record_for(conversion_tag, recorder)
return if conversion_tag.nil?
recorder << self.for(conversion_tag)
end
|
Instance Method Details
#convert(value) ⇒ Object
Some conversions are just for error-checking
36
|
# File 'lib/user-choices/conversions.rb', line 36
def convert(value); value; end
|
#description ⇒ Object
34
|
# File 'lib/user-choices/conversions.rb', line 34
def description; subclass_responsibility; end
|
#does_length_check? ⇒ Boolean
37
|
# File 'lib/user-choices/conversions.rb', line 37
def does_length_check?; false; end
|
#suitable?(actual) ⇒ Boolean
33
|
# File 'lib/user-choices/conversions.rb', line 33
def suitable?(actual); subclass_responsibility; end
|