Class: UserChoices::Conversion

Inherits:
Object
  • Object
show all
Defined in:
lib/user-choices/conversions.rb

Overview

:nodoc:

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

Returns:

  • (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_abstractObject



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?   # This simplifies caller.
  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

#descriptionObject



34
# File 'lib/user-choices/conversions.rb', line 34

def description; subclass_responsibility; end

#does_length_check?Boolean

Returns:

  • (Boolean)


37
# File 'lib/user-choices/conversions.rb', line 37

def does_length_check?; false; end

#suitable?(actual) ⇒ Boolean

Returns:

  • (Boolean)


33
# File 'lib/user-choices/conversions.rb', line 33

def suitable?(actual); subclass_responsibility; end