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