Sha256: 5137aa0076f3a0ab2cd51cf373ab36e74119c700fe5b488a8a42ecbedc728acb
Contents?: true
Size: 1 KB
Versions: 2
Compression:
Stored size: 1 KB
Contents
module Freemium class FeatureSet def initialize(hash = {}) hash.each do |key, value| self.class.class_eval { attr_accessor key.intern } self.send("#{key}=", value) end end def method_missing(method, *args, &block) # forward named routes if method.to_s.include? '?' send(method.to_s[0..-2], *args, &block) else super end end def self.find(id) self.feature_sets[id.to_s] end protected cattr_accessor :config_file def self.config_file @@config_file ||= File.join(RAILS_ROOT, 'config', 'freemium_feature_sets.yml') end cattr_accessor :feature_sets self.feature_sets = nil def self.feature_sets if @@feature_sets.nil? @@feature_sets = {} YAML::load(File.read(self.config_file)).each do |features| feature_set = FeatureSet.new(features) @@feature_sets[feature_set.id] = feature_set end end @@feature_sets end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
freemium-0.0.2 | lib/freemium/feature_set.rb |
freemium-0.0.1 | lib/freemium/feature_set.rb |