Module: JsonRigs::Fixtures
- Defined in:
- lib/json-rigs/fixtures.rb
Defined Under Namespace
Classes: FixturedActionKey
Constant Summary
collapse
- ACTIVE_FIXTURE_FILE =
'tmp/active_fixtures.json'
Class Method Summary
collapse
Class Method Details
._key(url, method) ⇒ Object
75
76
77
|
# File 'lib/json-rigs/fixtures.rb', line 75
def self._key(url, method)
FixturedActionKey.new(url, method)
end
|
.clear_active_fixtures ⇒ Object
26
27
28
29
30
|
# File 'lib/json-rigs/fixtures.rb', line 26
def self.clear_active_fixtures
@actions.values.each do |action|
action.active_fixture_name = ''
end
end
|
.clear_all! ⇒ Object
63
64
65
|
# File 'lib/json-rigs/fixtures.rb', line 63
def self.clear_all!
@actions = {}
end
|
.find_action(url, method) ⇒ Object
20
21
22
23
24
|
# File 'lib/json-rigs/fixtures.rb', line 20
def self.find_action(url, method)
method = method.to_s
@actions ||= {}
@actions[_key(url, method)]
end
|
.fixture_action(url, method, &block) ⇒ Object
10
11
12
13
14
15
16
17
18
|
# File 'lib/json-rigs/fixtures.rb', line 10
def self.fixture_action(url, method, &block)
method = method.to_s
@actions ||= {}
key = _key(url, method)
fixture_action = @actions[key] || FixturedAction.new(url, method)
@actions[key] = fixture_action
fixture_action.instance_eval &block
end
|
.fixtures ⇒ Object
67
68
69
70
71
72
73
|
# File 'lib/json-rigs/fixtures.rb', line 67
def self.fixtures
json = @actions.values.group_by(&:url)
json.each do |url, actions|
json[url] = actions.map(&:to_hash)
end
json
end
|
.load_active_fixtures ⇒ Object
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/json-rigs/fixtures.rb', line 40
def self.load_active_fixtures
begin
active_fixtures = JSON.parse(File.read(ACTIVE_FIXTURE_FILE))
rescue Errno::ENOENT, Errno::ESRCH
return
end
active_fixtures.each do |fixture|
url, method, active_fixture = fixture
action = find_action(url, method)
if action
action.active_fixture_name = active_fixture
end
end
end
|
.remove_action(url, method, response_name) ⇒ Object
56
57
58
59
60
61
|
# File 'lib/json-rigs/fixtures.rb', line 56
def self.remove_action(url, method, response_name)
action = find_action(url, method)
if action
action.remove_fixture(response_name.to_s)
end
end
|
.save_active_fixtures ⇒ Object
32
33
34
35
36
37
38
|
# File 'lib/json-rigs/fixtures.rb', line 32
def self.save_active_fixtures
active_fixtures = @actions.map { |key, action|
[ key.url, key.method, action.active_fixture_name ]
}
FileUtils.mkdir_p(File.dirname(ACTIVE_FIXTURE_FILE))
File.open(ACTIVE_FIXTURE_FILE, 'w') { |io| io.write(active_fixtures.to_json) }
end
|