Sha256: 1e1ae434d35857a0e4e1bca61dc4b707ae63eb51ea5c29f942bd7c4aeb1a9b2f

Contents?: true

Size: 1 KB

Versions: 25

Compression:

Stored size: 1 KB

Contents

module Sprout

  module Executable

    ##
    # Concrete param object for :file values
    #
    # This class is actually referenced in Excecutables with:
    #
    #   add_param :some_name, File
    #
    # @see Sprout::Executable::ParameterFactory
    #
    class FileParam < Param 

      def initialize
        super
        @option_parser_type_name = 'FILE'
      end

      def shell_value
        clean_path value
      end

      def prepare_prerequisites
        if file_task_name
          self.value ||= belongs_to.rake_task_name
          return
        end

        if prerequisite?(value)
          file value
          belongs_to.prerequisites << value
        end
      end

      def validate
        super

        if(!file_task_name && !value.nil? && !File.exists?(value))
          raise Sprout::Errors::InvalidArgumentError.new "No such file or directory - #{value}"
        end
      end

      private

      def prerequisite?(file)
        file && !file_is_output?(file)
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
sprout-1.0.32.pre lib/sprout/executable/file_param.rb
sprout-1.0.31.pre lib/sprout/executable/file_param.rb
sprout-1.0.29.pre lib/sprout/executable/file_param.rb
sprout-1.0.26.pre lib/sprout/executable/file_param.rb
sprout-1.0.25.pre lib/sprout/executable/file_param.rb
sprout-1.0.24.pre lib/sprout/executable/file_param.rb
sprout-1.0.23.pre lib/sprout/executable/file_param.rb
sprout-1.0.22.pre lib/sprout/executable/file_param.rb
sprout-1.0.20.pre lib/sprout/executable/file_param.rb
sprout-1.0.19.pre lib/sprout/executable/file_param.rb
sprout-1.0.18.pre lib/sprout/executable/file_param.rb
sprout-1.0.17.pre lib/sprout/executable/file_param.rb
sprout-1.0.16.pre lib/sprout/executable/file_param.rb
sprout-1.0.15.pre lib/sprout/executable/file_param.rb
sprout-1.0.14.pre lib/sprout/executable/file_param.rb
sprout-1.0.13.pre lib/sprout/executable/file_param.rb
sprout-1.0.11.pre lib/sprout/executable/file_param.rb
sprout-1.0.9.pre lib/sprout/executable/file_param.rb
sprout-1.0.8.pre lib/sprout/executable/file_param.rb
sprout-1.0.5.pre lib/sprout/executable/file_param.rb