Sha256: 52eeb670d4eeecf99ebf8f7b5a57f1eb2d163cfd9c66dbbb5a69c414757debd1

Contents?: true

Size: 1.11 KB

Versions: 25

Compression:

Stored size: 1.11 KB

Contents

# Extension: Sorts the Dir[lookup] to ensure deterministic ordering of actions
# to allow test assertions

class Thor
  module Actions
    class Directory < EmptyDirectory #:nodoc:
      protected

        def execute!
          lookup = config[:recursive] ? File.join(source, '**') : source
          lookup = File.join(lookup, '{*,.[a-z]*}')

          Dir[lookup].sort.each do |file_source|
            next if File.directory?(file_source)
            file_destination = File.join(given_destination, file_source.gsub(source, '.'))
            file_destination.gsub!('/./', '/')

            case file_source
              when /\.empty_directory$/
                dirname = File.dirname(file_destination).gsub(/\/\.$/, '')
                next if dirname == given_destination
                base.empty_directory(dirname, config)
              when /\.tt$/
                destination = base.template(file_source, file_destination[0..-4], config, &@block)
              else
                destination = base.copy_file(file_source, file_destination, config, &@block)
            end
          end
        end

    end
  end
end

Version data entries

25 entries across 25 versions & 3 rubygems

Version Path
engineyard-recipes-0.5.0 lib/engineyard-recipes/thor-ext/actions/directory.rb
engineyard-recipes-0.4.0 lib/engineyard-recipes/thor-ext/actions/directory.rb
engineyard-recipes-0.3.2 lib/engineyard-recipes/thor-ext/actions/directory.rb
engineyard-recipes-0.3.2.pre lib/engineyard-recipes/thor-ext/actions/directory.rb
engineyard-recipes-0.3.0 lib/engineyard-recipes/thor-ext/actions/directory.rb
engineyard-recipes-0.2.0 lib/engineyard-recipes/thor-ext/actions/directory.rb
engineyard-recipes-0.2.0.pre3 lib/engineyard-recipes/thor-ext/actions/directory.rb
engineyard-recipes-0.2.0.pre2 lib/engineyard-recipes/thor-ext/actions/directory.rb
engineyard-recipes-0.2.0.pre1 lib/engineyard-recipes/thor-ext/actions/directory.rb
engineyard-recipes-0.1.3 lib/engineyard-recipes/thor-ext/actions/directory.rb
engineyard-recipes-0.1.2 lib/engineyard-recipes/thor-ext/actions/directory.rb
engineyard-recipes-0.1.1 lib/engineyard-recipes/thor-ext/actions/directory.rb
engineyard-recipes-0.1.0 lib/engineyard-recipes/thor-ext/actions/directory.rb
engineyard-recipes-0.0.3 lib/engineyard-recipes/thor-ext/actions/directory.rb
engineyard-recipes-0.0.2 lib/engineyard-recipes/thor-ext/actions/directory.rb
engineyard-recipes-0.0.1 lib/engineyard-recipes/thor-ext/actions/directory.rb
engineyard-jenkins-0.5.1 lib/engineyard-jenkins/thor-ext/actions/directory.rb
engineyard-jenkins-0.5.0 lib/engineyard-jenkins/thor-ext/actions/directory.rb
engineyard-jenkins-0.4.0 lib/engineyard-jenkins/thor-ext/actions/directory.rb
engineyard-hudson-0.3.2 lib/engineyard-hudson/thor-ext/actions/directory.rb