Class: PaidUp::Feature
- Inherits:
-
Object
- Object
- PaidUp::Feature
- Includes:
- ActiveModel::AttributeMethods, ActiveModel::Model
- Defined in:
- lib/paid_up/feature.rb
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
-
.method_missing(method_sym, *arguments, &block) ⇒ Object
Define on self, since it’s a class method.
- .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.
19 20 21 |
# File 'lib/paid_up/feature.rb', line 19 def description @description end |
#setting_type ⇒ Object
Returns the value of attribute setting_type.
19 20 21 |
# File 'lib/paid_up/feature.rb', line 19 def setting_type @setting_type end |
#slug ⇒ Object
Returns the value of attribute slug.
19 20 21 |
# File 'lib/paid_up/feature.rb', line 19 def slug @slug end |
#title ⇒ Object
Returns the value of attribute title.
19 20 21 |
# File 'lib/paid_up/feature.rb', line 19 def title @title end |
Class Method Details
.all ⇒ Object
50 51 52 |
# File 'lib/paid_up/feature.rb', line 50 def self.all raw.values end |
.find(**conditions) ⇒ Object
70 71 72 |
# File 'lib/paid_up/feature.rb', line 70 def self.find(**conditions) find_all(conditions).first end |
.find_all(**conditions) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/paid_up/feature.rb', line 54 def self.find_all(**conditions) collection = [] for feature in all qualifies = true conditions.each do |key, value| unless feature.send(key) == value qualifies = false end end if qualifies collection << feature end end collection end |
.find_by_slug(slug) ⇒ Object
46 47 48 |
# File 'lib/paid_up/feature.rb', line 46 def self.find_by_slug(slug) raw[slug.to_sym] end |
.method_missing(method_sym, *arguments, &block) ⇒ Object
Define on self, since it’s a class method
75 76 77 78 79 80 81 82 83 84 |
# File 'lib/paid_up/feature.rb', line 75 def self.method_missing(method_sym, *arguments, &block) # the first argument is a Symbol, so you need to_s it if you want to pattern match if method_sym.to_s =~ /^find_by_(.*)$/ self.find($1.to_sym => arguments.first) elsif method_sym.to_s =~ /^find_all_by_(.*)$/ self.find_all($1.to_sym => arguments.first) else super end end |
.respond_to_missing?(method_name, include_private = false) ⇒ Boolean
86 87 88 |
# File 'lib/paid_up/feature.rb', line 86 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
42 43 44 |
# File 'lib/paid_up/feature.rb', line 42 def feature_model feature_model_name.constantize end |
#feature_model_name ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/paid_up/feature.rb', line 34 def feature_model_name acceptable_setting_types = ['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
30 31 32 |
# File 'lib/paid_up/feature.rb', line 30 def to_s slug end |