Sha256: 5c6a6683a2faed03d4c7ad36ea8c11fba7817026e8f3dafb00f217453d0e0ee7

Contents?: true

Size: 701 Bytes

Versions: 1

Compression:

Stored size: 701 Bytes

Contents

module Relax
  class Service
    def initialize(values={})
      @values = values
    end

    def authenticate(*args)
      @credentials = args
    end

    class << self
      include Contextable

      def endpoint(url, options={}, &block)
        Endpoint.new(self, url, options, &block)
      end

      def register_action(action) # :nodoc:
        @actions ||= {}

        unless @actions[action.name]
          @actions[action.name] = action.name

          define_method(action.name) do |*args|
            action.execute(@values, @credentials, *args)
          end
        else
          raise ArgumentError.new("Duplicate action '#{action.name}'.") 
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
relax-0.1.0 lib/relax/service.rb