snepo-dm-machinist 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.
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ CLEAN.include '{log,pkg}/'
9
9
 
10
10
  spec = Gem::Specification.new do |s|
11
11
  s.name = 'dm-machinist'
12
- s.version = '0.1.0'
12
+ s.version = '0.1.1'
13
13
  s.platform = Gem::Platform::RUBY
14
14
  s.has_rdoc = true
15
15
  s.extra_rdoc_files = %w[ README LICENSE TODO ]
@@ -15,16 +15,21 @@ module DataMapper
15
15
  end
16
16
 
17
17
  module DataMapperExtentions
18
+
18
19
  def blueprint(&blueprint)
19
20
  @blueprint = blueprint
20
21
  end
21
22
 
22
23
  def make(attributes = {})
24
+ @saved = false
25
+ @reloaded = false
23
26
  raise "No blueprint for class #{self}" if @blueprint.nil?
24
27
  lathe = Lathe.new(self, attributes)
25
28
  lathe.instance_eval(&@blueprint)
26
29
  unless Machinist.nerfed?
27
- lathe.object.save
30
+ unless lathe.object.save
31
+ raise "Error: #{lath.object.errors.inspect}"
32
+ end
28
33
  lathe.object.reload
29
34
  end
30
35
  returning(lathe.object) do |object|
data/lib/dm-machinist.rb CHANGED
@@ -19,6 +19,30 @@ class Object
19
19
  value
20
20
  end
21
21
  end
22
+ class String
23
+ # Ripped from Rails Inflectors
24
+ def camelize(first_letter_in_uppercase = true)
25
+ lower_case_and_underscored_word = self
26
+ if first_letter_in_uppercase
27
+ lower_case_and_underscored_word.to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase }
28
+ else
29
+ lower_case_and_underscored_word.first.downcase + camelize(lower_case_and_underscored_word)[1..-1]
30
+ end
31
+ end
32
+
33
+ # Ripped from Rails Inflectors
34
+ def constantize
35
+ camel_cased_word = self
36
+ names = camel_cased_word.split('::')
37
+ names.shift if names.empty? || names.first.empty?
38
+
39
+ constant = Object
40
+ names.each do |name|
41
+ constant = constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
42
+ end
43
+ constant
44
+ end
45
+ end
22
46
 
23
47
  # Include the plugin in Resource
24
48
  module DataMapper
data/spec/data/comment.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  class Comment
2
2
  include DataMapper::Resource
3
+
3
4
  property :id, Serial
4
5
  property :author, String
5
6
  property :body, Text
@@ -29,7 +29,7 @@ describe "Machinist" do
29
29
  end
30
30
 
31
31
  def negative_failure_message
32
- "expected the object not to be saved but is is"
32
+ "expected the object not to be saved but it is"
33
33
  end
34
34
  end
35
35
 
@@ -40,7 +40,7 @@ describe "Machinist" do
40
40
  # class BeReloaded
41
41
  # def matches?(target)
42
42
  # @target = target
43
- # @target.methods.each{|m| p m}
43
+ # TODO: Work out how to assert this...
44
44
  # end
45
45
  #
46
46
  # def failure_message
@@ -127,7 +127,7 @@ describe "Machinist" do
127
127
 
128
128
  it "should not nerf make within a block passed to make_unsaved" do
129
129
  comment = nil
130
- post = Post.make_unsaved do |post|
130
+ post = Post.make_unsaved(:title => "foo") do |post|
131
131
  comment = Comment.make(:post => post)
132
132
  end
133
133
  post.should_not be_saved
data/spec/spec_helper.rb CHANGED
@@ -5,10 +5,6 @@ require 'pathname'
5
5
  require Pathname(__FILE__).dirname.expand_path.parent + 'lib/dm-machinist'
6
6
  require Pathname(__FILE__).dirname.expand_path / 'helpers'
7
7
 
8
- Spec::Runner.configure do |config|
9
- config.include(CustomMatchers)
10
- end
11
-
12
8
 
13
9
  def load_driver(name, default_uri)
14
10
  return false if ENV['ADAPTER'] != name.to_s
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snepo-dm-machinist
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cameron Barrie
@@ -38,7 +38,6 @@ files:
38
38
  - spec/data/comment.rb
39
39
  - spec/data/post.rb
40
40
  - spec/dm_machinist_spec.rb
41
- - spec/helpers.rb
42
41
  - spec/sham_spec.rb
43
42
  - spec/spec_helper.rb
44
43
  - spec/spec.opts
data/spec/helpers.rb DELETED
@@ -1,46 +0,0 @@
1
- class String
2
- # Ripped from Rails Inflectors
3
- def camelize(first_letter_in_uppercase = true)
4
- lower_case_and_underscored_word = self
5
- if first_letter_in_uppercase
6
- lower_case_and_underscored_word.to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase }
7
- else
8
- lower_case_and_underscored_word.first.downcase + camelize(lower_case_and_underscored_word)[1..-1]
9
- end
10
- end
11
-
12
- # Ripped from Rails Inflectors
13
- def constantize
14
- camel_cased_word = self
15
- names = camel_cased_word.split('::')
16
- names.shift if names.empty? || names.first.empty?
17
-
18
- constant = Object
19
- names.each do |name|
20
- constant = constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
21
- end
22
- constant
23
- end
24
- end
25
- module CustomMatchers
26
- class DataMapperBeSaved
27
- def initialize(expected)
28
- @expected = expected
29
- end
30
-
31
- def matches?(target)
32
- @target = target
33
- p @target
34
- p @expected
35
- #satisfy expectation here
36
- end
37
-
38
- def failure_message
39
- "expected #{@expected} but got #{@target}"
40
- end
41
-
42
- def negative_failure_message
43
- "expected #{@expected} to not be #{@target}"
44
- end
45
- end
46
- end