Sha256: d655fa77ef05f6dfc51badf87e937e045dd6a9a85923b7aadb5e8b7399f1a62c

Contents?: true

Size: 897 Bytes

Versions: 23

Compression:

Stored size: 897 Bytes

Contents

module Dragonfly
  class Job
    class Step

      class << self
        # Dragonfly::Job::Fetch -> 'Fetch'
        def basename
          @basename ||= name.split('::').last
        end
        # Dragonfly::Job::Fetch -> :fetch
        def step_name
          @step_name ||= basename.gsub(/[A-Z]/){ "_#{$&.downcase}" }.sub('_','').to_sym
        end
        # Dragonfly::Job::Fetch -> 'f'
        def abbreviation
          @abbreviation ||= basename.scan(/[A-Z]/).join.downcase
        end
      end

      def initialize(job, *args)
        @job, @args = job, args
        init
      end

      def init # To be overridden
      end

      attr_reader :job, :args

      def app
        job.app
      end

      def to_a
        [self.class.abbreviation, *args]
      end

      def inspect
        "#{self.class.step_name}(#{args.map{|a| a.inspect }.join(', ')})"
      end

    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
dragonfly-1.4.1 lib/dragonfly/job/step.rb
dragonfly-1.4.0 lib/dragonfly/job/step.rb
dragonfly-1.3.0 lib/dragonfly/job/step.rb
dragonfly-1.2.1 lib/dragonfly/job/step.rb
dragonfly-1.2.0 lib/dragonfly/job/step.rb
dragonfly-1.1.5 lib/dragonfly/job/step.rb
dragonfly-1.1.4 lib/dragonfly/job/step.rb
dragonfly-1.1.3 lib/dragonfly/job/step.rb
dragonfly-1.1.2 lib/dragonfly/job/step.rb
dragonfly-1.1.1 lib/dragonfly/job/step.rb
dragonfly-1.1.0 lib/dragonfly/job/step.rb
dragonfly-1.0.12 lib/dragonfly/job/step.rb
dragonfly-1.0.11 lib/dragonfly/job/step.rb
dragonfly-1.0.10 lib/dragonfly/job/step.rb
dragonfly-1.0.9 lib/dragonfly/job/step.rb
dragonfly-1.0.8 lib/dragonfly/job/step.rb
dragonfly-1.0.7 lib/dragonfly/job/step.rb
dragonfly-1.0.6 lib/dragonfly/job/step.rb
dragonfly-1.0.5 lib/dragonfly/job/step.rb
dragonfly-1.0.4 lib/dragonfly/job/step.rb