Sha256: 0ca329786ef34dc944022c110a1f0b26f1a3fb6c5d9d9b90ebd50215430ce13d

Contents?: true

Size: 832 Bytes

Versions: 10

Compression:

Stored size: 832 Bytes

Contents

class Evil::Client
  #
  # Lazy container for a [#schema] and [#parent] settings
  # of a [#new] scope to be initialized with its own options,
  # that reload the [#parent] ones.
  #
  class Builder::Scope < Builder
    # Human-readable representation of the handler
    #
    # @example
    #   '#<MyClient.scopes[:crm] @version="1.1">.scopes[:users]'
    #
    # @return [String]
    #
    def to_s
      "#{parent}.scopes[:#{schema.name}]"
    end

    # @!method new(options)
    # Builds new scope with options reloading those of its [#parent]
    #
    # @param  [Hash<Symbol, Object>] options Custom options
    # @return [Evil::Client::Container::Scope]
    #
    def new(**options)
      Container::Scope.new schema, parent.options.merge(options)
    end
    alias_method :call, :new
    alias_method :[],   :new
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
evil-client-3.0.4 lib/evil/client/builder/scope.rb
evil-client-3.0.3 lib/evil/client/builder/scope.rb
evil-client-3.0.2 lib/evil/client/builder/scope.rb
evil-client-3.0.1 lib/evil/client/builder/scope.rb
evil-client-3.0.0 lib/evil/client/builder/scope.rb
evil-client-2.1.1 lib/evil/client/builder/scope.rb
evil-client-2.1.0 lib/evil/client/builder/scope.rb
evil-client-2.0.0 lib/evil/client/builder/scope.rb
evil-client-1.1.0 lib/evil/client/builder/scope.rb
evil-client-1.0.0 lib/evil/client/builder/scope.rb