moonmaster9000-dupe 0.2.2 → 0.2.3

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.
@@ -53,7 +53,7 @@ module ActiveResource
53
53
  end
54
54
  puts "\n Request attempts logged for this scenario:\n --------------------------------------------\n\n"
55
55
  @request_log.each do |request|
56
- puts " Request: #{request[:method].upcase} #{request[:path]}"
56
+ puts " Request: #{request[:method].to_s.upcase} #{request[:path]}"
57
57
  puts " Headers: #{request[:headers].inspect}"
58
58
  puts " Response Body:\n#{request[:response].body.split("\n").map {|s| (" "*6) + s}.join("\n")}"
59
59
  puts " Response Code: #{request[:response].code}"
data/lib/dupe/dupe.rb CHANGED
@@ -1,80 +1,3 @@
1
- # Dupe allows you to define resources, create a pool of resources,
2
- # extend those resources with your own custom response mocks, and even override the default
3
- # mocks Dupe provides (<em>find(:all)</em> and <em>find(id)</em>).
4
- #
5
- # Dupe is ideally suited for working with Cucumber[http://cukes.info]. It also relies on ActiveResource::HttpMock[http://api.rubyonrails.org/classes/ActiveResource/HttpMock.html] for mocking
6
- # resource responses.
7
- #
8
- # Let's suppose your cuking a book search application for a library that consumes a RESTFUL book datastore service via ActiveResource.
9
- # You might start by writing the following feature in <em>RAILS_ROOT/features/library/find_book.feature</em>:
10
- #
11
- # Feature: find a book
12
- # As a reader
13
- # I want to search for books
14
- # so that I can check them out and read them.
15
- #
16
- # Scenario: search by author
17
- # Given an author "Arthur C. Clarke"
18
- # And a book "2001: A Space Odyssey" by "Arthur C. Clarke"
19
- # When I search for "Arthur C. Clarke"
20
- # I should see "2001: A Space Odyssey"
21
- #
22
- # To get this to pass, you might first create an ActiveResource[http://api.rubyonrails.org/classes/ActiveResource/Base.html] model for a Book and an Author that will connect
23
- # to the RESTful book service:
24
- #
25
- # class Book < ActiveResource::Base
26
- # self.site = 'http://bookservice.domain'
27
- # end
28
- #
29
- # class Author < ActiveResource::Base
30
- # self.site = 'http://bookservice.domain'
31
- # end
32
- #
33
- # Then you might create the following resource definition via Dupe.define (put it in a file with a .rb extension and place it in RAILS_ROOT/features/support/):
34
- #
35
- # Dupe.define :book do |define|
36
- # define.author do |author_name|
37
- # Dupe.find(:author) {|a| a.name == author_name}
38
- # end
39
- # end
40
- #
41
- # and the following cucumber step definitions (utilizing Dupe.create):
42
- #
43
- # Given /^an author "([^\"]*)"$/ do |author|
44
- # Dupe.create :author, :name => author
45
- # end
46
- #
47
- # Given /^a book "([^\"]*)" by "([^\"]*)"$/ do |book, author|
48
- # Dupe.create :book, :title => book, :author => author
49
- # end
50
- #
51
- # Dupe.create will in turn mock two service responses for each resource. For example,
52
- # for the Book resource, it will mock:
53
- #
54
- # # Book.find(:all) --> GET /books.xml
55
- # <?xml version="1.0" encoding="UTF-8"?>
56
- # <books type="array">
57
- # <book>
58
- # <id type="integer">1</id>
59
- # <title>2001: A Space Odyssey</title>
60
- # <author>
61
- # <id type="integer">1</id>
62
- # <name>Arthur C. Clarke</name>
63
- # </author>
64
- # </book>
65
- # </books>
66
- #
67
- # # Book.find(1) --> GET /books/1.xml
68
- # <?xml version="1.0" encoding="UTF-8"?>
69
- # <book>
70
- # <id type="integer">1</id>
71
- # <title>2001: A Space Odyssey</title>
72
- # <author>
73
- # <id type="integer">1</id>
74
- # <name>Arthur C. Clarke</name>
75
- # </author>
76
- # </book>
77
-
78
1
  # Author:: Matt Parker (mailto:moonmaster9000@gmail.com)
79
2
  # License:: Distributes under the same terms as Ruby
80
3
 
@@ -429,7 +352,7 @@ class Dupe
429
352
  def find(*args, &block) # yield: record
430
353
  all_or_first, factory_name = args[-2], args[-1]
431
354
  match = block ? block : proc {true}
432
- all_or_first = ((factory_name.to_s.pluralize == factory_name.to_s) ? :all : :first) unless all_or_first
355
+ all_or_first = ((factory_name.to_s.plural?) ? :all : :first) unless all_or_first
433
356
  factory_name = factory_name.to_s.singularize.to_sym
434
357
  verify_factory_exists factory_name
435
358
  result = factories[factory_name].find_records_like match
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moonmaster9000-dupe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Parker
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-15 00:00:00 -07:00
12
+ date: 2009-09-16 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency