Module: Manhattan::ClassMethods

Defined in:
lib/manhattan.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#default_status_valueObject

Returns the value of attribute default_status_value.



38
39
40
# File 'lib/manhattan.rb', line 38

def default_status_value
  @default_status_value
end

#status_column_nameObject

Returns the value of attribute status_column_name.



38
39
40
# File 'lib/manhattan.rb', line 38

def status_column_name
  @status_column_name
end

Instance Method Details

#has_statuses(*statuses) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/manhattan.rb', line 40

def has_statuses(*statuses)
  options = statuses.pop if statuses.last.is_a? Hash
  options ||= {}

  common_methods = statuses & self.methods
  raise Manhattan::AlreadyDefinedMethod, "Already defined method #{common_methods}" unless common_methods.empty?

  @status_column_name = options[:column_name]
  @status_column_name ||= :status

  @default_status_value = options[:default_value]
  @statuses_names = localize_names(statuses)

  after_initialize :set_default_value

  statuses.each_with_index do |status, index|
    add_to_statuses_hash(status, index)
    create_query_methods(status)
  end

end

#status(queried_status) ⇒ Object



62
63
64
# File 'lib/manhattan.rb', line 62

def status(queried_status)
  @statuses[queried_status]
end

#statusesObject



66
67
68
# File 'lib/manhattan.rb', line 66

def statuses
  @statuses.values
end