module Condensable

Constants

DEFAULT_VALUES

map class with default values

VERSION

Public Class Methods

included(base) click to toggle source
# File lib/condensable.rb, line 9
def self.included(base)
  base.include(Condensable::GravityAbsorber)
  base.extend(Condensable::GravityAbsorber::ClassLevelMethods)
end
new(*args, &block) click to toggle source
# File lib/condensable.rb, line 14
def self.new(*args, &block)
  # make class on the fly, on the fly
  klass = Class.new do
    include Condensable
  end

  # initialize if args are specified
  args.each do |arg|
    if arg.is_a?(Hash)
      default_value = arg[:default] || arg['default']
      if default_value
        klass.class_eval do 
          condensable default: default_value
        end
      end
    end
  end

  # if block is given, execute the block
  if block_given?
    klass.class_eval(&block)
  end

  klass
end