Sha256: 44c27ef1ca406719481ffcc7edaf6025cc9c286736b9897d4d94de1a68021a34

Contents?: true

Size: 1.77 KB

Versions: 721

Compression:

Stored size: 1.77 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], Proc.new]
          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

721 entries across 721 versions & 2 rubygems

Version Path
aws-sdk-core-2.3.23 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.285 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.284 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.283 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.282 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.281 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.280 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.279 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.278 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.277 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.276 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.275 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.274 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.273 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.272 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.271 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.270 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.269 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.268 lib/seahorse/client/plugin.rb
aws-sdk-core-2.11.267 lib/seahorse/client/plugin.rb