Sha256: 20e96f0da4c623ee4c47848e9c38464bd5fc632fb03b5d283c55bbb3c52c7d83

Contents?: true

Size: 1.66 KB

Versions: 10

Compression:

Stored size: 1.66 KB

Contents

# Rails3::Assist::UseMacro

module Rails3::Assist
  module UseMacro
    def use_orm orm
      class_eval do
        begin
          include "Rails3::Assist::Orm::#{orm.to_s.camelize}".constantize
        rescue
          raise ArgumentError, "Unregistered ORM library: #{orm}"
        end
      end
    end
  
    def assist_with *types      
      types.each{|type| use_helper type}      
    end
    alias_method :load_helpers, :assist_with
    alias_method :use_helpers,  :assist_with

    def rails_assist type
      class_eval do
        begin
          module_name = "Rails3::Assist::#{type.to_s.camelize}"
          include module_name.constantize
          if [:files, :directory].include? type
            module_name = "Rails3::Assist::Artifact::#{type.to_s.camelize}"
            include module_name.constantize          
          end
        rescue
          raise ArgumentError, "Unregistered Rails3 assist library: #{type}, #{module_name}"
        end
      end
    end

    def artifact_assist type
      class_eval do
        begin
          module_name = "Rails3::Assist::Artifact::#{type.to_s.camelize}"
          include module_name.constantize
        rescue
          raise ArgumentError, "Unregistered Rails3 Artifact assist library: #{type}, #{module_name}"
        end
      end
    end
  
    def use_helper type
      if type == :special
        class_eval do
          include "Rails3::Assist::File::Special".constantize
        end        
        return
      end

      return rails_assist(type) if [:file, :files, :directory, :app].include?(type)        
      artifact_assist(type)
    end 
    alias_method :load_helper, :use_helper
  end                         
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
rails3_artifactor-0.4.0 lib/rails3_artifactor/macro.rb
rails3_artifactor-0.3.2 lib/rails3_artifactor/macro.rb
rails3_artifactor-0.3.1 lib/rails3_artifactor/macro.rb
rails3_artifactor-0.3.0 lib/rails3_artifactor/macro.rb
rails3_artifactor-0.2.8 lib/rails3_artifactor/macro.rb
rails3_artifactor-0.2.7 lib/rails3_artifactor/macro.rb
rails3_artifactor-0.2.6 lib/rails3_artifactor/macro.rb
rails3_artifactor-0.2.5 lib/rails3_artifactor/rspec/macro.rb
rails3_artifactor-0.2.4 lib/rails3_artifactor/rspec/macro.rb
rails3_artifactor-0.2.3 lib/rails3_artifactor/rspec/macro.rb