Sha256: 330ce297ba8b7c6be55010e098ea0b65f7447351a9a3e8153d49c8b61657bfff

Contents?: true

Size: 774 Bytes

Versions: 51

Compression:

Stored size: 774 Bytes

Contents

module PoolParty
  module Configurable
    module ClassMethods      
      def default_options(h={})
        @default_options ||= h
      end
    end
    
    module InstanceMethods
      def options(h={})
        @options ||= self.class.default_options.merge(h)
      end
      
      def configure(h={})
        options(h).merge!(h)
      end
      
      def reconfigure(h={})
        @options = nil
        options(h)
      end
      
      def set_vars_from_options(opts={})
        opts.each {|k,v| self.send k.to_sym, send_if_method(v) } unless opts.empty?
      end
    end
    
    def self.included(receiver)
      receiver.extend         ClassMethods
      receiver.send :include, InstanceMethods
      receiver.send :include, MethodMissingSugar
    end
  end
end

Version data entries

51 entries across 51 versions & 2 rubygems

Version Path
auser-poolparty-0.2.20 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.21 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.22 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.23 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.24 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.25 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.26 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.35 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.36 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.37 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.38 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.39 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.40 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.41 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.42 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.44 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.45 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.46 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.47 lib/poolparty/modules/configurable.rb
auser-poolparty-0.2.48 lib/poolparty/modules/configurable.rb