Class: Flock::MockService

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

Constant Summary collapse

EXEC_OPS =
{
  Edges::ExecuteOperationType::Add => :add,
  Edges::ExecuteOperationType::Remove => :remove,
  Edges::ExecuteOperationType::Archive => :archive,
  Edges::ExecuteOperationType::Negate => :negate
}

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#fixturesObject

Returns the value of attribute fixtures.



11
12
13
# File 'lib/flock/mock_service.rb', line 11

def fixtures
  @fixtures
end

#timeoutObject

Returns the value of attribute timeout.



11
12
13
# File 'lib/flock/mock_service.rb', line 11

def timeout
  @timeout
end

Instance Method Details

#clearObject



13
14
15
16
# File 'lib/flock/mock_service.rb', line 13

def clear
  @forward_edges = nil
  @backward_edges = nil
end

#contains(source, graph, dest) ⇒ Object



53
54
55
# File 'lib/flock/mock_service.rb', line 53

def contains(source, graph, dest)
  forward_edges[graph][Edges::EdgeState::Positive][source].include?(dest)
end

#count(select_operations) ⇒ Object



57
58
59
# File 'lib/flock/mock_service.rb', line 57

def count(select_operations)
  select_query(select_operations).size
end

#execute(operations) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/flock/mock_service.rb', line 36

def execute(operations)
  operations = operations.operations
  operations.each do |operation|
    term = operation.term
    graph, source = term.graph_id, term.source_id
    dest = term.destination_ids && term.destination_ids.unpack('Q*')

    source, dest = dest, source unless term.is_forward

    self.send(EXEC_OPS[operation.operation_type], source, graph, dest)
  end
end

#inspectObject



32
33
34
# File 'lib/flock/mock_service.rb', line 32

def inspect
  "Flock::MockService: ( #{@forward_edges.inspect} - #{@backward_edges.inspect} )"
end

#load(fixtures = nil) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/flock/mock_service.rb', line 18

def load(fixtures = nil)
  fixtures ||= self.fixtures or raise "No flock fixtures specified. either pass fixtures to load, or set Flock::MockService.fixtures."

  clear

  fixtures.each do |fixture|
    file, graph, source, dest = fixture.values_at(:file, :graph, :source, :destination)

    YAML::load(ERB.new(File.open(file, 'r').read).result(binding)).sort.each do |key, row|
      add(row[source], graph, row[dest])
    end
  end
end

#select(select_operations, page) ⇒ Object



49
50
51
# File 'lib/flock/mock_service.rb', line 49

def select(select_operations, page)
  iterate(select_query(select_operations), page)
end