Class: ActiveRecord::Enum
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
add_option, extract_values_and_options
Constructor Details
#initialize(attrs = {}) ⇒ Enum
Returns a new instance of Enum.
8
9
10
11
12
|
# File 'lib/ar_enums/enum.rb', line 8
def initialize attrs = {}
@id = attrs.delete(:id).to_i
@name = attrs.delete(:name).to_s
@extra_columns = attrs.reject { |k, _| [:enum_class, :on_style_not_matched].include?(k) }
end
|
Instance Attribute Details
#extra_columns ⇒ Object
Returns the value of attribute extra_columns.
5
6
7
|
# File 'lib/ar_enums/enum.rb', line 5
def extra_columns
@extra_columns
end
|
Returns the value of attribute id.
5
6
7
|
# File 'lib/ar_enums/enum.rb', line 5
def id
@id
end
|
Returns the value of attribute name.
5
6
7
|
# File 'lib/ar_enums/enum.rb', line 5
def name
@name
end
|
Class Method Details
.[](name_or_id) ⇒ Object
43
44
45
|
# File 'lib/ar_enums/enum.rb', line 43
def self.[] name_or_id
all.detect { |enum| enum == name_or_id }
end
|
.create_from(value, values, options) ⇒ Object
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/ar_enums/enum.rb', line 14
def self.create_from value, values, options
required_attrs = case value
when String, Symbol
{ :name => value }
else
value
end
required_attrs[:id] ||= values.index(value) + 1
new options.merge(required_attrs)
end
|
.enumeration(*config, &block) ⇒ Object
38
39
40
41
|
# File 'lib/ar_enums/enum.rb', line 38
def self.enumeration *config, &block
add_option config, :class_name => self
define_enums_getter ActiveRecord::Enumerations::Factory.make_enums(*config, &block)
end
|
.find_all_by_id(ids, options = {}) ⇒ Object
47
48
49
|
# File 'lib/ar_enums/enum.rb', line 47
def self.find_all_by_id ids, options = {}
all.select { |enum| ids.include? enum.id }
end
|
Instance Method Details
#==(other) ⇒ Object
25
26
27
28
|
# File 'lib/ar_enums/enum.rb', line 25
def == other
return id == other.id if other.is_a?(Enum)
[id.to_s, name].include?(other.to_s)
end
|
#in?(*enums) ⇒ Boolean
51
52
53
|
# File 'lib/ar_enums/enum.rb', line 51
def in? *enums
enums.any? { |e| self == e }
end
|
30
31
32
|
# File 'lib/ar_enums/enum.rb', line 30
def to_s
try_labelize(self, :desc) || try_labelize(name, :titleize)
end
|
34
35
36
|
# File 'lib/ar_enums/enum.rb', line 34
def to_sym
name.to_sym
end
|