webmock-resources 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,6 +7,11 @@ module WebMock::Resources
7
7
  def self.create resource_name, attributes = {}
8
8
  schema = SchemaStorage[resource_name]
9
9
  resource = schema[:fields].merge(id: schema[:sequence].next).merge(attributes)
10
+
11
+ resource.each do |k,v|
12
+ resource[k] = v.call(schema[:sequence].curr) if v.is_a? Proc
13
+ end
14
+
10
15
  @resources[resource_name] ||= []
11
16
  @resources[resource_name] << resource
12
17
 
@@ -37,7 +42,8 @@ module WebMock::Resources
37
42
  def self.reset
38
43
  WebMock.reset!
39
44
  @resources = {}
40
- WebMock::Resources::Definition.refresh
45
+ Definition.refresh
46
+ SchemaStorage.reset_sequences
41
47
  end
42
48
 
43
49
  end
@@ -4,8 +4,12 @@ module WebMock::Resources
4
4
  @schema = { object: nil, sequence: Sequence.new, fields: {} }
5
5
  end
6
6
 
7
- def attribute name, value
8
- @schema[:fields][name] = value
7
+ def attribute name, value=nil, &block
8
+ if block_given?
9
+ @schema[:fields][name] = block
10
+ else
11
+ @schema[:fields][name] = value
12
+ end
9
13
  end
10
14
 
11
15
  def object clazz
@@ -17,5 +17,11 @@ module WebMock::Resources
17
17
  def self.clear
18
18
  @resources = {}
19
19
  end
20
+
21
+ def self.reset_sequences
22
+ @resources.each do |k,v|
23
+ v[:sequence] = Sequence.new
24
+ end
25
+ end
20
26
  end
21
27
  end
@@ -7,5 +7,9 @@ module WebMock::Resources
7
7
  def next
8
8
  @value = @value.next
9
9
  end
10
+
11
+ def curr
12
+ @value
13
+ end
10
14
  end
11
15
  end
@@ -1,5 +1,5 @@
1
1
  module WebMock
2
2
  module Resources
3
- VERSION = "0.0.4"
3
+ VERSION = "0.0.5"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webmock-resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-04 00:00:00.000000000 Z
12
+ date: 2012-06-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: webmock