Sha256: 8f4af0cb91063e98df445612b7ffcdfaf9701858fea3b7046348a2ac4d4002b2
Contents?: true
Size: 1.05 KB
Versions: 4
Compression:
Stored size: 1.05 KB
Contents
module Cockpit def self.included(base) base.extend(ClassMethods) base.send(:include, InstanceMethods) end module ClassMethods def cockpit(options = {}, &block) if block_given? options = {:store => options.to_sym} unless options.is_a?(Hash) @cockpit = Cockpit::Settings.define!(options.merge(:for => self), &block) @cockpit.roots.map(&:key).flatten.each do |key| define_method key do send(:cockpit).send(key) end define_method "#{key}=" do |value| send(:cockpit).send("#{key}=", value) end define_method "#{key}?" do send(:cockpit).present?(key) end end end @cockpit end unless respond_to?(:key) def key(*args) end end end module InstanceMethods def cockpit(key = nil) @cockpit ||= Cockpit::Settings.new(:record => self) if key @cockpit.definition(key) else @cockpit end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
cockpit-0.2.4.1 | lib/cockpit/core/include.rb |
cockpit-0.2.4 | lib/cockpit/core/include.rb |
cockpit-0.2.3 | lib/cockpit/core/include.rb |
cockpit-0.2.2 | lib/cockpit/core/include.rb |