cranky 0.1.0 → 0.1.1

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.
Files changed (5) hide show
  1. data/Gemfile.lock +14 -0
  2. data/README.rdoc +19 -0
  3. data/lib/cranky.rb +17 -2
  4. data/spec/cranky_spec.rb +38 -9
  5. metadata +12 -6
@@ -0,0 +1,14 @@
1
+ GEM
2
+ remote: http://gemcutter.org/
3
+ specs:
4
+ gemcutter (0.6.1)
5
+ rcov (0.9.8)
6
+ rspec (1.3.0)
7
+
8
+ PLATFORMS
9
+ ruby
10
+
11
+ DEPENDENCIES
12
+ gemcutter
13
+ rcov
14
+ rspec (= 1.3.0)
@@ -36,6 +36,15 @@ Cranky steals its core syntax from Factory Girl...
36
36
  Factory.build(:user, :name => "Ian") # Override a default attribute value
37
37
  Factory.attributes_for(:user) # Return a set of valid attributes rather than the object
38
38
 
39
+ And has a nice debug option (rails only) to warn you when your factory is broken, recommend you do this for your first spec...
40
+
41
+ describe User do
42
+ it "should have a working factory" do
43
+ # This will raise an error and report the validation errors should they occur
44
+ Factory.debug(:user).should be_valid
45
+ end
46
+ end
47
+
39
48
  Cranky allows you to build factories via std Ruby methods, like this...
40
49
 
41
50
  # factories/my_factories.rb
@@ -226,6 +235,16 @@ Sometimes it is useful to be warned that your factory is generating invalid inst
226
235
 
227
236
  Factory.debug = true
228
237
 
238
+ Or run within a block...
239
+
240
+ Factory.debug do
241
+ Factory.build(:user)
242
+ end
243
+
244
+ Or inline (runs the build method with debug enabled)...
245
+
246
+ Factory.debug(:user)
247
+
229
248
  Note that this relies on the instance having a valid? method, so in practice this may only work with Rails.
230
249
 
231
250
  === Attributes For
@@ -1,6 +1,6 @@
1
1
  class Cranky
2
2
 
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
 
5
5
  # Dir.glob("#{File.expand_path(File.dirname(__FILE__))}/*.rb").each do |file|
6
6
  # require file
@@ -12,7 +12,7 @@ class Cranky
12
12
  # end
13
13
  # end
14
14
 
15
- attr_accessor :debug
15
+ attr_writer :debug
16
16
 
17
17
  def initialize
18
18
  @what = []
@@ -39,6 +39,21 @@ class Cranky
39
39
  build(what, attrs).attributes
40
40
  end
41
41
 
42
+ def debug(what=nil)
43
+ if block_given?
44
+ @debug = true
45
+ yield
46
+ @debug = false
47
+ elsif what
48
+ @debug = true
49
+ item = build(what)
50
+ @debug = false
51
+ item
52
+ else
53
+ @debug
54
+ end
55
+ end
56
+
42
57
  private
43
58
 
44
59
  def n
@@ -63,16 +63,45 @@ describe Cranky do
63
63
  b.unique.should_not == c.unique
64
64
  end
65
65
 
66
- it "should raise an error if the factory produces an invalid object when debug is enabled (rails only)" do
67
- Factory.debug = true
68
- error = false
69
- begin
70
- Factory.build(:user)
71
- rescue
72
- error = true
66
+ describe "debugger" do
67
+
68
+ it "should raise an error if the factory produces an invalid object when enabled (rails only)" do
69
+ Factory.debug = true
70
+ error = false
71
+ begin
72
+ Factory.build(:user)
73
+ rescue
74
+ error = true
75
+ end
76
+ error.should == true
77
+ Factory.debug = false
78
+ end
79
+
80
+ it "can be run as a block" do
81
+ Factory.debug.should == false
82
+ error = false
83
+ Factory.debug do
84
+ begin
85
+ Factory.build(:user)
86
+ rescue
87
+ error = true
88
+ end
89
+ end
90
+ error.should == true
91
+ Factory.debug.should == false
73
92
  end
74
- error.should == true
75
- Factory.debug = false
93
+
94
+ it "can be run inline" do
95
+ Factory.debug.should == false
96
+ error = false
97
+ begin
98
+ Factory.debug(:user)
99
+ rescue
100
+ error = true
101
+ end
102
+ error.should == true
103
+ end
104
+
76
105
  end
77
106
 
78
107
  it "should allow arguments to be passed in the overrides hash" do
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cranky
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 25
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
8
  - 1
8
- - 0
9
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
10
11
  platform: ruby
11
12
  authors:
12
13
  - Stephen McGinty
@@ -14,7 +15,7 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-05-26 00:00:00 -05:00
18
+ date: 2010-08-14 00:00:00 -05:00
18
19
  default_executable:
19
20
  dependencies: []
20
21
 
@@ -28,11 +29,12 @@ extra_rdoc_files: []
28
29
 
29
30
  files:
30
31
  - lib/cranky.rb
31
- - spec/cranky_spec.rb
32
32
  - spec/spec_helper.rb
33
+ - spec/cranky_spec.rb
33
34
  - README.rdoc
34
- - Gemfile
35
35
  - LICENSE
36
+ - Gemfile.lock
37
+ - Gemfile
36
38
  - init.rb
37
39
  has_rdoc: true
38
40
  homepage: http://github.com/ginty/cranky
@@ -44,16 +46,20 @@ rdoc_options: []
44
46
  require_paths:
45
47
  - lib
46
48
  required_ruby_version: !ruby/object:Gem::Requirement
49
+ none: false
47
50
  requirements:
48
51
  - - ">="
49
52
  - !ruby/object:Gem::Version
53
+ hash: 3
50
54
  segments:
51
55
  - 0
52
56
  version: "0"
53
57
  required_rubygems_version: !ruby/object:Gem::Requirement
58
+ none: false
54
59
  requirements:
55
60
  - - ">="
56
61
  - !ruby/object:Gem::Version
62
+ hash: 19
57
63
  segments:
58
64
  - 1
59
65
  - 3
@@ -62,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
62
68
  requirements: []
63
69
 
64
70
  rubyforge_project:
65
- rubygems_version: 1.3.6
71
+ rubygems_version: 1.3.7
66
72
  signing_key:
67
73
  specification_version: 3
68
74
  summary: A very light yet powerful test factory framework.