lib/sham/config.rb in sham-1.0.2 vs lib/sham/config.rb in sham-1.0.3
- old
+ new
@@ -1,33 +1,45 @@
+require 'sham/shammable'
+require 'sham/config/attributes'
+require 'sham/config/parameters'
+require 'sham/config/empty'
+require 'sham/config/no_args'
+
module Sham
class << self
def config klass, name = :default
- unless klass.include?(Sham::Shammable)
- klass.send(:include, Sham::Shammable)
+ unless (class << klass; self; end).include?(Sham::Shammable)
+ klass.extend(Sham::Shammable)
end
- yield(Sham::Config.new(klass, name))
+ yield(Sham::Config.new(klass, name)) if block_given?
end
end
class Config
def self.activate! root = nil
root = Rails.root if root.nil? && defined?(Rails.root)
root = File.join(root, 'sham', '**', '*.rb')
Dir[root].each{ |f| load(f) }
end
- attr_accessor :klass, :name
-
def initialize klass, name
- self.klass = klass
- self.name = name
+ @klass = klass
+ @name = name
end
- def attributes &config
- klass.add_sham_config(name, config)
+ def attributes(&config)
+ @klass.add_sham_config(@name, Sham::Config::Attributes.new(config))
end
+ def parameters(&config)
+ @klass.add_sham_config(@name, Sham::Config::Parameters.new(config))
+ end
+
def empty
- klass.add_sham_config(name, Proc.new{ Hash.new() })
+ @klass.add_sham_config(@name, Sham::Config::Empty.new)
+ end
+
+ def no_args
+ @klass.add_sham_config(@name, Sham::Config::NoArgs.new)
end
end
end