Sha256: c219ca62a12002a8acd483159bbce8696a95899d957a37fbe751932694eba2f2
Contents?: true
Size: 1.04 KB
Versions: 1
Compression:
Stored size: 1.04 KB
Contents
# frozen_string_literal: true require "base64" require "json" module DerivationEndpoint class Attacher attr_reader :object, :method, :prefix, :options def initialize(object, method, prefix, options) Validation.check_object_class(prefix, [String, Symbol, NilClass]) Validation.check_object_class(options, [Hash, NilClass]) @object = object @method = method @prefix = prefix @options = options end def derivation_path DerivationEndpoint::Serializer.encode(serialization_params) end def redirection_url DerivationEndpoint.config.decoder.call(derivation_path, options) end def method_value object.public_send(method) end def derivation_url base_url = DerivationEndpoint.base_url final_url = prefix ? "#{base_url}/#{prefix}" : base_url "#{final_url}/#{derivation_path}" end private def serialization_params { path: DerivationEndpoint.config.encoder.call(method_value), options: options } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
derivation_endpoint-0.1.0 | lib/derivation_endpoint/attacher.rb |