Sha256: cdbd66b58c6af353725cb1dd55cbf7b1f1e9220f899ed0552ba49d403f4f7022
Contents?: true
Size: 800 Bytes
Versions: 1
Compression:
Stored size: 800 Bytes
Contents
module SerialPreference class PreferenceGroup attr_accessor :name, :label def initialize(name, opts = {}) @preferences = {} @name = name @label = opts[:label] end def label @label.presence || name.to_s.titleize end def preference_keys @preferences.keys end def preferences @preferences.values end def pref(name,opts = {}) @preferences[name] = Preference.new(name,opts) end SerialPreference::Preference::SUPPORTED_TYPES.each do |dt| define_method dt do |name,opts = {}| pref(name,opts.merge!(:data_type => dt)) end end def respond_to?(name,*opts) @preferences[name].present? end def method_missing(name,*opts,&block) pref(name,*opts) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
serial_preference-0.1.2 | lib/serial_preference/preference_group.rb |