nakajima-fixjour 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,5 @@
1
1
  module Fixjour
2
+ include Counter
2
3
  class << self
3
4
  include Definitions
4
5
 
@@ -0,0 +1,20 @@
1
+ module Fixjour
2
+ module Counter
3
+ def self.reset(key=nil)
4
+ if key
5
+ @counters[key] = lambda { s ||= 0; s += 1 }
6
+ else
7
+ @counters = Hash.new { |h,k| s ||= 0; c = lambda { s += 1 }; h[k] = c }
8
+ end
9
+ end
10
+ reset
11
+
12
+ def self.counter(key)
13
+ @counters[key][]
14
+ end
15
+
16
+ def counter(key=nil)
17
+ Counter.counter(key)
18
+ end
19
+ end
20
+ end
@@ -8,19 +8,19 @@ module Fixjour
8
8
  def verify!
9
9
  builders.each do |klass|
10
10
  result = new_record(klass)
11
-
11
+
12
12
  unless result.valid?
13
13
  error(klass, InvalidBuilder, "returns an invalid object: #{result.errors.inspect}")
14
14
  end
15
-
15
+
16
16
  unless result.new_record?
17
17
  error(klass, BuilderSavedRecord, "must return a new record")
18
18
  end
19
-
19
+
20
20
  unless result.is_a?(klass)
21
21
  error(klass, WrongBuilderType, "must return an instance of #{klass}")
22
22
  end
23
-
23
+
24
24
  klass.transaction do
25
25
  begin
26
26
  result.save!
@@ -40,13 +40,13 @@ module Fixjour
40
40
  end
41
41
  end
42
42
  end
43
-
43
+
44
44
  def new_record(klass)
45
45
  evaluator.send("new_#{name_for(klass)}")
46
46
  end
47
-
47
+
48
48
  private
49
-
49
+
50
50
  def error(klass, exception, msg)
51
51
  raise exception.new("The builder for #{klass} #{msg} ")
52
52
  end
data/lib/fixjour.rb CHANGED
@@ -11,6 +11,7 @@ require 'fixjour/verify'
11
11
  require 'fixjour/errors'
12
12
  require 'fixjour/generator'
13
13
  require 'fixjour/definitions'
14
+ require 'fixjour/counter'
14
15
  require 'fixjour/builders'
15
16
  require 'fixjour/deprecation'
16
17
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nakajima-fixjour
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pat Nakajima
@@ -14,6 +14,7 @@ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
17
+ type: :runtime
17
18
  version_requirement:
18
19
  version_requirements: !ruby/object:Gem::Requirement
19
20
  requirements:
@@ -35,6 +36,7 @@ files:
35
36
  - lib/core_ext/object.rb
36
37
  - lib/fixjour
37
38
  - lib/fixjour/builders.rb
39
+ - lib/fixjour/counter.rb
38
40
  - lib/fixjour/definitions.rb
39
41
  - lib/fixjour/deprecation.rb
40
42
  - lib/fixjour/errors.rb