Sha256: 207b09db9ffb4b5575003f7d1f550ed7652e4d7d0acef40819078cd64b13d6a6
Contents?: true
Size: 1.01 KB
Versions: 2
Compression:
Stored size: 1.01 KB
Contents
module KB class Plan < BaseModel include Listable kb_api :plan def self.attributes_from_response(response) response.transform_keys(&:underscore).transform_keys(&:to_sym).slice(*FIELDS) end private_class_method :attributes_from_response STRING_FIELDS = %i[key description plan_name type].freeze HASH_FIELDS = %i[benefits price].freeze FIELDS = [*STRING_FIELDS, *HASH_FIELDS, :plan_life_in_months, :buyable].freeze define_attribute_methods(*FIELDS) attribute :plan_life_in_months, :integer attribute :buyable, :boolean define_attributes STRING_FIELDS, :string define_attributes HASH_FIELDS def save! return unless changed? run_callbacks :save do self.attributes = if @persisted self.class.update key, changes.transform_values(&:last) else self.class.create changes.transform_values(&:last) end self end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
barkibu-kb-0.27.0 | lib/kb/models/plan.rb |
barkibu-kb-0.26.0 | lib/kb/models/plan.rb |