Module: Memoria

Extended by:
Memoria
Included in:
Memoria
Defined in:
lib/memoria.rb,
lib/memoria/version.rb,
lib/memoria/snapshot.rb,
lib/memoria/configuration.rb,
lib/memoria/rspec/metadata.rb,
lib/memoria/snapshot_saver.rb,
lib/memoria/rspec/configurator.rb,
lib/memoria/rspec/metadata_parser.rb,
lib/memoria/errors/duplicate_setting.rb,
lib/memoria/errors/invalid_record_mode.rb,
lib/memoria/errors/invalid_configuration.rb,
lib/memoria/errors/invalid_snapshot_extension.rb

Overview

Encapsulates and provides access to the public interface of the gem.

Defined Under Namespace

Modules: Errors, RSpec Classes: Configuration, Snapshot, SnapshotSaver

Constant Summary collapse

VERSION =
'0.1.0'.freeze

Instance Method Summary collapse

Instance Method Details

#configurationConfiguration

Exposes the gem’s configuration.

Examples:

Memoria.configuration.snapshot_extension # => 'snap'

Returns:



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

def configuration
  @configuration ||= Configuration.new
end

#configure {|config| ... } ⇒ void

This method returns an undefined value.

Configures Memoria.

Examples:

Memoria.configure do |config|
  config.snapshot_extension = 'snappy'
  config.snapshot_record_mode = :new_episodes
  config.add_setting :custom_setting_name do
    Time.now
  end
end

Yields:

  • The configuration block.

Yield Parameters:

See Also:



43
44
45
# File 'lib/memoria.rb', line 43

def configure
  yield configuration
end

#current_snapshotSnapshot

The last recorded snapshot.

Examples:

Memoria.record('name-of-snapshot')
Memoria.current_snapshot # => #<Memoria::Snapshot:0x00007fc5610a17b0 @name="name-of-snapshot">

Returns:

  • (Snapshot)

    The current snapshot or nil if there is no current snapshot.



20
21
22
# File 'lib/memoria.rb', line 20

def current_snapshot
  snapshots.last
end

#record(snapshot_name) ⇒ Snapshot

Records a new snapshot.

Examples:

Memoria.record('name-of-snapshot')
Memoria.current_snapshot # => #<Memoria::Snapshot:0x00007fc5610a17b0 @name="name-of-snapshot">

Parameters:

  • snapshot_name (String)

    The name of the snapshot.

Returns:



99
100
101
102
# File 'lib/memoria.rb', line 99

def record(snapshot_name)
  snapshot = Snapshot.new(snapshot_name)
  snapshots.push(snapshot)
end

#snapshot_saverSnapshotSaver

Returns an entity to persist snapshots (on the file system).

Examples:

snapshot_saver = Memoria.snapshot_saver
snapshot_saver.save(Snapshot.new('index-page'))

Returns:



84
85
86
# File 'lib/memoria.rb', line 84

def snapshot_saver
  @snapshot_saver ||= SnapshotSaver.new(configuration)
end

#snapshotsArray<Snapshot>

Returns the list of recorded snapshots.

Examples:

Memoria.record('name-of-snapshot-one')
Memoria.snapshots # => [#<Memoria::Snapshot:0x00007fc7a3870808 @name="name-of-snapshot-one">]

Returns:

  • (Array<Snapshot>)

    An array of recorded snapshots.



70
71
72
# File 'lib/memoria.rb', line 70

def snapshots
  @snapshots ||= []
end

#stop_recordingArray

Stops recording snapshots.

Examples:

Memoria.record('name-of-snapshot')
Memoria.current_snapshot # => #<Memoria::Snapshot:0x00007fc5610a17b0 @name="name-of-snapshot">
Memoria.stop_recording
Memoria.current_snapshot # => nil

Returns:

  • (Array)

    An empty array.



116
117
118
# File 'lib/memoria.rb', line 116

def stop_recording
  snapshots.clear
end