Sha256: f986abe8e6018585a0b3996d7de177fdaffb177935a9e96257ebdf5b48284f78

Contents?: true

Size: 1.66 KB

Versions: 15

Compression:

Stored size: 1.66 KB

Contents

require_all File.dirname(__FILE__) + '/directory'
require 'rails3_assist/artifact'

module Rails3::Assist
  module Directory      
    class << self
      attr_accessor :rails_root
      
      def method_missing(sym, *args, &block)
        Rails3::Assist::Artifact::Directory.send sym
      end
    end    

    include Root
    extend Root

    include App
    extend App

    include Container    
    extend Container
        
    # dir_for helpers
    # -------------------

    module Methods   
      DIR = Rails3::Assist::Artifact::Directory      
      
      # :app, :config, :db, :public, :lib, :log, :doc, :test, :spec
      #
      # app_dir, config_dir ...
      Rails3::Assist::Directory::Root.root_directories.each do |name|
        class_eval %{
          def #{name}_dir options={}
            ::File.join(Rails3::Assist::Directory::Root.root_dir(options), '#{name}')
          end        
        } 
      end      
      
      def rails_dir_for type, options={}
        raise ArgumentError, '#rails_dir_for takes a dir type argument' if !type
        dir_method = "#{type}_dir"
        return send(dir_method, options) if respond_to?(dir_method)
        DIR.send(dir_method, options) if DIR.respond_to?(dir_method)
      end

      def app_dir_for type, options={}
        ::File.join(app_dir(options), type.to_s.pluralize)
      end      

      def config_dir_for type, options={}
        ::File.join(config_dir(options), type.to_s.pluralize)
      end      

      def public_dir_for type, options={}
        ::File.join(public_dir(options), type.to_s.pluralize)
      end                
    end
    
    include Methods
    extend Methods
    
  end # Directories   
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
rails3_assist-0.3.7 lib/rails3_assist/directory.rb
rails3_assist-0.3.6 lib/rails3_assist/directory.rb
rails3_assist-0.3.5 lib/rails3_assist/directory.rb
rails3_assist-0.3.4 lib/rails3_assist/directory.rb
rails3_assist-0.3.3 lib/rails3_assist/directory.rb
rails3_assist-0.3.2 lib/rails3_assist/directory.rb
rails3_assist-0.3.1 lib/rails3_assist/directory.rb
rails3_assist-0.3.0 lib/rails3_assist/directory.rb
rails3_assist-0.2.13 lib/rails3_assist/directory.rb
rails3_assist-0.2.12 lib/rails3_assist/directory.rb
rails3_assist-0.2.11 lib/rails3_assist/directory.rb
rails3_assist-0.2.10 lib/rails3_assist/directory.rb
rails3_assist-0.2.9 lib/rails3_assist/directory.rb
rails3_assist-0.2.8 lib/rails3_assist/directory.rb
rails3_assist-0.2.7 lib/rails3_assist/directory.rb