Sha256: b3183121bb85ecb019356315c42f0321a88e330a47d080a23409623ef4d7ab44

Contents?: true

Size: 1.64 KB

Versions: 10

Compression:

Stored size: 1.64 KB

Contents

module Mina
  class Application < Rake::Application
    include Configuration::DSL

    def initialize
      super
      @rakefiles = ['config/deploy.rb', minafile]
    end

    def name
      'mina'
    end

    def run
      Rake.application = self
      super
    end

    def sort_options(options)
      not_applicable_to_mina = %w(quiet silent verbose dry-run)
      options.reject! do |(switch, *)|
        switch =~ /--#{Regexp.union(not_applicable_to_mina)}/
      end

      super.push(version, verbose, simulate, debug_configuration_variables)
    end

    def top_level_tasks
      return @top_level_tasks if @top_level_tasks.include?('init')
      @top_level_tasks << :debug_configuration_variables
      @top_level_tasks << :run_commands
    end

    private

    def minafile
      File.expand_path(File.join(File.dirname(__FILE__), '..', 'Minafile'))
    end

    def version
      ['--version', '-V',
       'Display the program version.',
       lambda do |_value|
         puts "Mina, version v#{Mina::VERSION}"
         exit
       end
      ]
    end

    def verbose
      ['--verbose', '-v',
       'Print more info',
       lambda do |_value|
         set(:verbose, true)
       end
      ]
    end

    def simulate
      ['--simulate', '-s',
       'Do a simulate run without executing actions',
       lambda do |_value|
         set(:simulate, true)
       end
      ]
    end

    def debug_configuration_variables
      ['--debug-configuration-variables', '-d',
       'Display the defined config variables before runnig the tasks.',
       lambda do |_value|
         set(:debug_configuration_variables, true)
       end
      ]
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
mina-1.0.6 lib/mina/application.rb
mina-1.0.5 lib/mina/application.rb
mina-1.0.4 lib/mina/application.rb
mina-1.0.3 lib/mina/application.rb
mina-1.0.2 lib/mina/application.rb
mina-1.0.0 lib/mina/application.rb
mina-1.0.0.rc2 lib/mina/application.rb
mina-1.0.0.beta5 lib/mina/application.rb
mina-1.0.0.beta4 lib/mina/application.rb
mina-1.0.0.beta3 lib/mina/application.rb