Sha256: 4c7b64801cd873194c3f1549b96328470c251c331df22c0a42d1f317f402b69d

Contents?: true

Size: 1.76 KB

Versions: 341

Compression:

Stored size: 1.76 KB

Contents

module Seahorse
  module Client
    class Plugin

      extend HandlerBuilder

      # @param [Configuration] config
      # @return [void]
      def add_options(config)
        self.class.options.each do |args, block|
          config.add_option(*args, &block)
        end
      end

      # @param [HandlerList] handlers
      # @param [Configuration] config
      # @return [void]
      def add_handlers(handlers, config)
        handlers.copy_from(self.class.handlers)
      end

      # @param [Class<Client::Base>] client_class
      # @param [Hash] options
      # @return [void]
      def before_initialize(client_class, options)
        self.class.before_initialize_hooks.each do |block|
          block.call(client_class, options)
        end
      end

      # @param [Client::Base] client
      # @return [void]
      def after_initialize(client)
        self.class.after_initialize_hooks.each do |block|
          block.call(client)
        end
      end

      class << self

        def option(name, default = nil, &block)
          if block_given?
            options << [[name], block]
          else
            options << [[name, default]]
          end
        end

        def before_initialize(&block)
          before_initialize_hooks << block
        end

        def after_initialize(&block)
          after_initialize_hooks << block
        end

        # @api private
        def options
          @options ||= []
        end

        # @api private
        def handlers
          @handlers ||= HandlerList.new
        end

        # @api private
        def before_initialize_hooks
          @before_initialize_hooks ||= []
        end

        # @api private
        def after_initialize_hooks
          @after_initialize_hooks ||= []
        end

      end
    end
  end
end

Version data entries

341 entries across 341 versions & 1 rubygems

Version Path
aws-sdk-core-2.11.632 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.631 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.630 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.629 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.628 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.627 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.626 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.625 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.624 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.623 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.622 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.621 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.620 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.619 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.618 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.617 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.616 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.615 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.614 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.613 lib/seahorse/client/plugin.rb