Sha256: dced2c12ab03f2adae9ce9e13465b8418b0401b0b8dd9b281d676ef3dbe4637b

Contents?: true

Size: 1.11 KB

Versions: 13

Compression:

Stored size: 1.11 KB

Contents

# require 'auth'
# require 'aws_resources'
require 'json'
require_relative 'helper'
require_relative 'storage'

module Smash
  module CloudPowers
    module Delegator
      extend Smash::CloudPowers::Auth
      include Smash::CloudPowers::AwsResources
      include Smash::CloudPowers::Helper
      include Smash::CloudPowers::Storage

      def build(id, msg)
        body = JSON.parse(msg.body)
        begin
          task = body.delete('task')
          if approved_task? task
            source_task(task)
            require_relative task_require_path(task)
            Smash.const_get(to_pascal(task)).new(id, msg)
          else
            Smash::Task.new(id, msg) # returns a default Task
          end
        rescue JSON::ParserError => e
          message = [msg.body, format_error_message(e)].join("\n")
          logger.info "Message in backlog is ill-formatted: #{message}"
          pipe_to(:status_stream) { sitrep(extraInfo: { message: message }) }
        end
      end

      def approved_task?(name = nil)
        # TODO: improve this
        ['demo', 'testinz'].include? to_snake(name)
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
cloud_powers-0.2.7.3 lib/cloud_powers/delegator.rb
cloud_powers-0.2.7.2 lib/cloud_powers/delegator.rb
cloud_powers-0.2.7.1 lib/cloud_powers/delegator.rb
cloud_powers-0.2.7 lib/cloud_powers/delegator.rb
cloud_powers-0.2.6 lib/cloud_powers/delegator.rb
cloud_powers-0.2.5 lib/cloud_powers/delegator.rb
cloud_powers-0.2.4 lib/cloud_powers/delegator.rb
cloud_powers-0.2.3 lib/cloud_powers/delegator.rb
cloud_powers-0.2.2 lib/cloud_powers/delegator.rb
cloud_powers-0.2.1 lib/cloud_powers/delegator.rb
cloud_powers-0.2 lib/cloud_powers/delegator.rb
cloud_powers-0.1.5 lib/cloud_powers/delegator.rb
cloud_powers-0.1.4 lib/cloud_powers/delegator.rb