Sha256: b436793caa4588c3de684ff29f3d06a57d5d3eebfe324004d88e31c31879e3ae
Contents?: true
Size: 876 Bytes
Versions: 2
Compression:
Stored size: 876 Bytes
Contents
module SerialPreference class PreferenceGroup attr_accessor :name, :label def initialize(name, opts = {}) @preferences = {} @name = name @label = opts[:label] end def to_s name.to_s end def titleize 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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
serial_preference-0.2.2 | lib/serial_preference/preference_group.rb |
serial_preference-0.2.0 | lib/serial_preference/preference_group.rb |