Class: PaidUp::Feature
- Inherits:
-
Object
- Object
- PaidUp::Feature
- Includes:
- ActiveModel::AttributeMethods, ActiveModel::Model
- Defined in:
- lib/paid_up/feature.rb
Overview
Feature Class: Not an ActiveRecord object.
Instance Attribute Summary collapse
-
#description ⇒ Object
Returns the value of attribute description.
-
#setting_type ⇒ Object
Returns the value of attribute setting_type.
-
#slug ⇒ Object
Returns the value of attribute slug.
-
#title ⇒ Object
Returns the value of attribute title.
Class Method Summary collapse
- .all ⇒ Object
- .find(**conditions) ⇒ Object
- .find_all(**conditions) ⇒ Object
- .find_by_slug(slug) ⇒ Object
- .find_by_slug!(slug) ⇒ Object
- .method_missing(method_sym, *arguments, &block) ⇒ Object
- .raw ⇒ Object
- .respond_to_missing?(method_name, include_private = false) ⇒ Boolean
Instance Method Summary collapse
Instance Attribute Details
#description ⇒ Object
Returns the value of attribute description.
21 22 23 |
# File 'lib/paid_up/feature.rb', line 21 def description @description end |
#setting_type ⇒ Object
Returns the value of attribute setting_type.
21 22 23 |
# File 'lib/paid_up/feature.rb', line 21 def setting_type @setting_type end |
#slug ⇒ Object
Returns the value of attribute slug.
21 22 23 |
# File 'lib/paid_up/feature.rb', line 21 def slug @slug end |
#title ⇒ Object
Returns the value of attribute title.
21 22 23 |
# File 'lib/paid_up/feature.rb', line 21 def title @title end |
Class Method Details
.all ⇒ Object
69 70 71 |
# File 'lib/paid_up/feature.rb', line 69 def self.all raw.values end |
.find(**conditions) ⇒ Object
85 86 87 |
# File 'lib/paid_up/feature.rb', line 85 def self.find(**conditions) find_all(conditions).first end |
.find_all(**conditions) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/paid_up/feature.rb', line 73 def self.find_all(**conditions) collection = [] all.each do |feature| qualifies = true conditions.each do |key, value| feature.send(key) != value && (qualifies = false) end qualifies && collection << feature end collection end |
.find_by_slug(slug) ⇒ Object
61 62 63 |
# File 'lib/paid_up/feature.rb', line 61 def self.find_by_slug(slug) raw[slug.to_sym] end |
.find_by_slug!(slug) ⇒ Object
65 66 67 |
# File 'lib/paid_up/feature.rb', line 65 def self.find_by_slug!(slug) find_by_slug(slug) || raise(:feature_not_found.l) end |
.method_missing(method_sym, *arguments, &block) ⇒ Object
89 90 91 92 93 94 95 96 97 |
# File 'lib/paid_up/feature.rb', line 89 def self.method_missing(method_sym, *arguments, &block) if method_sym.to_s =~ /^find_by_(.*)$/ find(Regexp.last_match[1].to_sym => arguments.first) elsif method_sym.to_s =~ /^find_all_by_(.*)$/ find_all(Regexp.last_match[1].to_sym => arguments.first) else super end end |
.respond_to_missing?(method_name, include_private = false) ⇒ Boolean
99 100 101 |
# File 'lib/paid_up/feature.rb', line 99 def self.respond_to_missing?(method_name, include_private = false) method_name.to_s.start_with?('find_') || super end |
Instance Method Details
#feature_model ⇒ Object
57 58 59 |
# File 'lib/paid_up/feature.rb', line 57 def feature_model feature_model_name.constantize end |
#feature_model_name ⇒ Object
49 50 51 52 53 54 55 |
# File 'lib/paid_up/feature.rb', line 49 def feature_model_name acceptable_setting_types = %w(table_rows rolify_rows) unless acceptable_setting_types.include? setting_type raise :no_implicit_conversion_of_type_features.l(type: setting_type) end slug.classify end |
#to_s ⇒ Object
45 46 47 |
# File 'lib/paid_up/feature.rb', line 45 def to_s slug end |