Sha256: fdaa217d7c9f7976c39add12e7745e8a45bdca7f0922fff541b928ec26b59ff3

Contents?: true

Size: 1.16 KB

Versions: 37

Compression:

Stored size: 1.16 KB

Contents

require 'json'

# Job public methods get turned into Lambda functions.
#
# Jets::Job::Base < Jets::Lambda::Functions
# Both Jets::Job::Base and Jets::Lambda::Functions have Dsl modules included.
# So the Jets::Job::Dsl overrides some of the Jets::Lambda::Functions behavior.
module Jets::Job
  class Base < Jets::Lambda::Functions
    include Dsl

    # non-DSL methods
    include Helpers::KinesisEventHelper
    include Helpers::LogEventHelper
    include Helpers::S3EventHelper

    # Tracks bucket each time an s3_event is declared
    # Map of bucket_name => stack_name (nested part)
    cattr_accessor :s3_events # dont want this to be inheritable intentionally
    self.s3_events = {}

    class << self
      def process(event, context, meth)
        job = new(event, context, meth)
        job.send(meth)
      end

      def perform_now(meth, event={}, context={})
        new(event, context, meth).send(meth)
      end

      def perform_later(meth, event={}, context={})
        function_name = "#{self.to_s.underscore}-#{meth}"
        call = Jets::Commands::Call.new(function_name, JSON.dump(event), invocation_type: "Event")
        call.run
      end
    end
  end
end

Version data entries

37 entries across 37 versions & 2 rubygems

Version Path
jets-2.1.4 lib/jets/job/base.rb
jets-2.1.3 lib/jets/job/base.rb
jets-2.1.2 lib/jets/job/base.rb
jets_bb_fork-0.0.4 lib/jets/job/base.rb
jets-2.1.1 lib/jets/job/base.rb
jets-2.1.0 lib/jets/job/base.rb
jets-2.0.6 lib/jets/job/base.rb
jets-2.0.5 lib/jets/job/base.rb
jets-2.0.4 lib/jets/job/base.rb
jets-2.0.3 lib/jets/job/base.rb
jets-2.0.1 lib/jets/job/base.rb
jets-2.0.0 lib/jets/job/base.rb
jets-1.9.32 lib/jets/job/base.rb
jets-1.9.31 lib/jets/job/base.rb
jets-1.9.30 lib/jets/job/base.rb
jets-1.9.29 lib/jets/job/base.rb
jets-1.9.28 lib/jets/job/base.rb
jets-1.9.27 lib/jets/job/base.rb
jets-1.9.26 lib/jets/job/base.rb
jets-1.9.25 lib/jets/job/base.rb