Class: MultiResult

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

Overview

The magical MultiResult, keeper of Redis’s deepest secrets!

This quirky little class wraps up the outcome of a Database “transaction” (or as I like to call it, a “Database dance party”) with a bow made of pure Ruby delight. It knows if your commands were successful and keeps the results safe in its pocket dimension.

Examples:

Summoning a MultiResult from the void

result = MultiResult.new(true, ["OK", "OK"])

Divining the success of your Database ritual

if result.successful?
  puts "Huzzah! The Database spirits smile upon you!"
else
  puts "Alas! The Database gremlins have conspired against us!"
end

Peering into the raw essence of results

result.results.each_with_index do |value, index|
  puts "Command #{index + 1} whispered back: #{value}"
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(success, results) ⇒ MultiResult

Creates a new MultiResult instance.

Parameters:

  • success (Boolean)

    Whether all commands succeeded

  • results (Array<String>)

    The raw results from Database commands



42
43
44
45
# File 'lib/familia/multi_result.rb', line 42

def initialize(success, results)
  @success = success
  @results = results
end

Instance Attribute Details

#resultsArray<String> (readonly)

Returns The raw return values from the Database commands.

Returns:

  • (Array<String>)

    The raw return values from the Database commands



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

def results
  @results
end

#successBoolean (readonly)

Returns true if all commands in the transaction succeeded, false otherwise.

Returns:

  • (Boolean)

    true if all commands in the transaction succeeded, false otherwise



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

def success
  @success
end

Instance Method Details

#successful?Boolean Also known as: success?

Convenient method to check if the commit was successful.

Returns:

  • (Boolean)

    true if all commands succeeded, false otherwise



68
69
70
# File 'lib/familia/multi_result.rb', line 68

def successful?
  @success
end

#to_hObject



61
62
63
# File 'lib/familia/multi_result.rb', line 61

def to_h
  { success: successful?, results: results }
end

#tupleArray Also known as: to_a

Returns a tuple representing the result of the transaction.

Examples:

[true, ["OK", true, 1]]

Returns:

  • (Array)

    A tuple containing the success status and the raw results. The success status is a boolean indicating if all commands succeeded. The raw results is an array of return values from the Database commands.



56
57
58
# File 'lib/familia/multi_result.rb', line 56

def tuple
  [successful?, results]
end