Class: GenesisRuby::Genesis

Inherits:
Object
  • Object
show all
Defined in:
lib/genesis_ruby.rb

Overview

Base SDK class

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(configuration, request = nil) ⇒ Genesis

Initialize the Library



33
34
35
36
37
38
39
40
41
# File 'lib/genesis_ruby.rb', line 33

def initialize(configuration, request = nil)
  @configuration = configuration
  @request       = request
  @response      = GenesisRuby::Api::Response.new(
    configuration,
    request&.api_config || GenesisRuby::Utils::Options::ApiConfig.new
  )
  @network       = GenesisRuby::Connection.for(configuration)
end

Instance Attribute Details

#configurationObject (readonly)

Returns the value of attribute configuration.



30
31
32
# File 'lib/genesis_ruby.rb', line 30

def configuration
  @configuration
end

#requestObject (readonly)

Returns the value of attribute request.



30
31
32
# File 'lib/genesis_ruby.rb', line 30

def request
  @request
end

#responseObject (readonly)

Returns the value of attribute response.



30
31
32
# File 'lib/genesis_ruby.rb', line 30

def response
  @response
end

Class Method Details

.for(config:, request:) {|request_object| ... } ⇒ Object

Transaction Request Initializer

Yields:

  • (request_object)

Raises:



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/genesis_ruby.rb', line 16

def self.for(config:, request:)
  unless request.is_a?(Class) && request < GenesisRuby::Api::Request
    raise InvalidArgumentError, 'Given Request is invalid'
  end

  request_object = request.new(config)

  raise InvalidArgumentError, 'Request Block missing' unless block_given?

  yield request_object

  new config, request_object
end

Instance Method Details

#executeObject

Execute the Request



44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/genesis_ruby.rb', line 44

def execute
  # Initialize the Network Connection with the given request
  @network.init_api_data(@request)

  # Send the Request payload to Genesis
  @network.send_request

  # Parse the Response
  @response.parse_response(@network)

  self
end