Sha256: 742526d21bd88f45735f5a5a7ae2872cfee39116fa44ddf83582068dbc072909

Contents?: true

Size: 1.82 KB

Versions: 13

Compression:

Stored size: 1.82 KB

Contents

require 'sugar-high/regexp'

module Rails3::Assist::Artifact
  module Files  
    module Methods  
      [:model].each do |name|
        class_eval %{
          def #{name}_files expr=nil
            files = Rails3::Assist::Files.rails_app_files(:#{name.to_s.pluralize}).grep_it expr
            yield files if block_given?
            files
          end          
        }
      end

      # artifact files using xxx_[artifact].rb convention, i.e postfixing with type of artifact
      [:mailer, :observer, :permit, :controller, :helper].each do |name|
        class_eval %{
          def #{name}_files expr=nil
            files = Rails3::Assist::Files.rails_app_files(:#{name.to_s.pluralize}, :pattern => '**/*_#{name}.rb').grep_it expr
            yield files if block_given?
            files
          end  
        }
      end   

      def view_files *args 
        expr, model_name = Helper.get_view_args args
        ext = last_option(args)[:template_language] || 'erb'
        pattern = model_name ? "#{model_name.to_s.pluralize}/*.#{ext}*" : "**/*.#{ext}*"
        files = Rails3::Assist::Files.rails_app_files(:views, :pattern => pattern).grep_it expr
        yield files if block_given?
        files          
      end


      [:erb, :haml].each do |name|
        class_eval %{
          def #{name}_view_files *args 
            view_files args, :template_language => :#{name}
          end
        }
      end
    end
    extend Methods
    include Methods

    module Helper    
      def self.get_view_args args 
        args = args.flatten
        first_arg = args.first      
        case first_arg
        when Regexp
          expr = first_arg
        when String, Symbol
          _model = first_arg
        end
        expr = args[1] if args.size > 1 && args[1].kind_of?(Regexp)
        [expr, _model]
      end        
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
rails3_assist-0.3.4 lib/rails3_assist/artifact/files.rb
rails3_assist-0.3.3 lib/rails3_assist/artifact/files.rb
rails3_assist-0.3.2 lib/rails3_assist/artifact/files.rb
rails3_assist-0.3.1 lib/rails3_assist/artifact/files.rb
rails3_assist-0.3.0 lib/rails3_assist/artifact/files.rb
rails3_assist-0.2.13 lib/rails3_assist/artifact/files.rb
rails3_assist-0.2.12 lib/rails3_assist/artifact/files.rb
rails3_assist-0.2.11 lib/rails3_assist/artifact/files.rb
rails3_assist-0.2.10 lib/rails3_assist/artifact/files.rb
rails3_assist-0.2.9 lib/rails3_assist/artifact/files.rb
rails3_assist-0.2.8 lib/rails3_assist/artifact/files.rb
rails3_assist-0.2.7 lib/rails3_assist/artifact/files.rb
rails3_assist-0.2.5 lib/rails3_assist/artifact/files.rb