resource_controller 0.5.3 → 0.6.6
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/README.rdoc +18 -14
- data/VERSION.yml +5 -0
- data/generators/scaffold_resource/templates/rspec/routing_spec.rb +8 -8
- data/generators/scaffold_resource/templates/rspec/views/index_spec.rb +2 -2
- data/lib/resource_controller.rb +5 -14
- data/lib/resource_controller/base.rb +2 -2
- data/lib/resource_controller/class_methods.rb +2 -2
- data/lib/resource_controller/controller.rb +3 -2
- data/lib/resource_controller/helpers.rb +0 -6
- data/lib/resource_controller/helpers/nested.rb +1 -1
- data/lib/resource_controller/singleton.rb +2 -2
- data/test/app/controllers/{application.rb → application_controller.rb} +0 -2
- data/test/app/controllers/cms/personnel_controller.rb +2 -0
- data/test/app/controllers/cms/photos_controller.rb +6 -0
- data/test/app/controllers/photos_controller.rb +1 -0
- data/test/app/models/personnel.rb +3 -0
- data/test/app/models/photo.rb +1 -0
- data/test/app/views/cms/photos/edit.rhtml +17 -0
- data/test/app/views/cms/photos/index.rhtml +20 -0
- data/test/app/views/cms/photos/new.rhtml +16 -0
- data/test/app/views/cms/photos/show.rhtml +8 -0
- data/test/config/boot.rb +6 -5
- data/test/config/database.yml +6 -10
- data/test/config/environment.rb +4 -4
- data/test/config/environments/development.rb +0 -4
- data/test/config/initializers/inflections.rb +14 -0
- data/test/config/routes.rb +3 -0
- data/test/db/migrate/013_create_personnel.rb +11 -0
- data/test/db/migrate/014_add_personnel_id_to_photos.rb +9 -0
- data/test/db/schema.rb +9 -3
- data/test/test/fixtures/personnel.yml +5 -0
- data/test/test/functional/cms/options_controller_test.rb +1 -1
- data/test/test/functional/cms/photos_controller_test.rb +43 -0
- data/test/test/functional/cms/products_controller_test.rb +1 -1
- data/test/test/functional/comments_controller_test.rb +2 -9
- data/test/test/functional/images_controller_test.rb +1 -8
- data/test/test/functional/people_controller_test.rb +2 -9
- data/test/test/functional/photos_controller_test.rb +2 -9
- data/test/test/functional/posts_controller_test.rb +2 -9
- data/test/test/functional/projects_controller_test.rb +12 -9
- data/test/test/functional/somethings_controller_test.rb +2 -9
- data/test/test/functional/tags_controller_test.rb +2 -9
- data/test/test/functional/users_controller_test.rb +2 -9
- data/test/test/test_helper.rb +4 -3
- data/test/test/unit/accessors_test.rb +2 -2
- data/test/test/unit/account_test.rb +1 -1
- data/test/test/unit/action_options_test.rb +1 -1
- data/test/test/unit/base_test.rb +1 -1
- data/test/test/unit/comment_test.rb +1 -1
- data/test/test/unit/failable_action_options_test.rb +1 -1
- data/test/test/unit/helpers_test.rb +1 -1
- data/test/test/unit/image_test.rb +1 -1
- data/test/test/unit/option_test.rb +1 -1
- data/test/test/unit/photo_test.rb +1 -1
- data/test/test/unit/post_test.rb +1 -1
- data/test/test/unit/project_test.rb +1 -1
- data/test/test/unit/response_collector_test.rb +1 -1
- data/test/test/unit/something_test.rb +1 -1
- data/test/test/unit/tag_test.rb +1 -1
- data/test/test/unit/urligence_test.rb +1 -1
- metadata +162 -122
- data/Rakefile +0 -35
- data/init.rb +0 -1
- data/lib/resource_controller/version.rb +0 -9
- data/test/log/development.log +0 -3350
- data/test/log/test.log +0 -174947
- data/test/log/thin.log +0 -12
- data/test/vendor/plugins/shoulda/Rakefile +0 -32
- data/test/vendor/plugins/shoulda/bin/convert_to_should_syntax +0 -40
- data/test/vendor/plugins/shoulda/init.rb +0 -3
- data/test/vendor/plugins/shoulda/lib/shoulda.rb +0 -43
- data/test/vendor/plugins/shoulda/lib/shoulda/active_record_helpers.rb +0 -580
- data/test/vendor/plugins/shoulda/lib/shoulda/color.rb +0 -77
- data/test/vendor/plugins/shoulda/lib/shoulda/controller_tests/controller_tests.rb +0 -467
- data/test/vendor/plugins/shoulda/lib/shoulda/controller_tests/formats/html.rb +0 -201
- data/test/vendor/plugins/shoulda/lib/shoulda/controller_tests/formats/xml.rb +0 -170
- data/test/vendor/plugins/shoulda/lib/shoulda/gem/proc_extensions.rb +0 -14
- data/test/vendor/plugins/shoulda/lib/shoulda/gem/shoulda.rb +0 -239
- data/test/vendor/plugins/shoulda/lib/shoulda/general.rb +0 -118
- data/test/vendor/plugins/shoulda/lib/shoulda/private_helpers.rb +0 -22
@@ -1,118 +0,0 @@
|
|
1
|
-
module ThoughtBot # :nodoc:
|
2
|
-
module Shoulda # :nodoc:
|
3
|
-
module General
|
4
|
-
def self.included(other) # :nodoc:
|
5
|
-
other.class_eval do
|
6
|
-
extend ThoughtBot::Shoulda::General::ClassMethods
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
module ClassMethods
|
11
|
-
# Loads all fixture files (<tt>test/fixtures/*.yml</tt>)
|
12
|
-
def load_all_fixtures
|
13
|
-
all_fixtures = Dir.glob(File.join(Test::Unit::TestCase.fixture_path, "*.yml")).collect do |f|
|
14
|
-
File.basename(f, '.yml').to_sym
|
15
|
-
end
|
16
|
-
fixtures *all_fixtures
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
# Prints a message to stdout, tagged with the name of the calling method.
|
21
|
-
def report!(msg = "")
|
22
|
-
puts("#{caller.first}: #{msg}")
|
23
|
-
end
|
24
|
-
|
25
|
-
# Asserts that two arrays contain the same elements, the same number of times. Essentially ==, but unordered.
|
26
|
-
#
|
27
|
-
# assert_same_elements([:a, :b, :c], [:c, :a, :b]) => passes
|
28
|
-
def assert_same_elements(a1, a2, msg = nil)
|
29
|
-
[:select, :inject, :size].each do |m|
|
30
|
-
[a1, a2].each {|a| assert_respond_to(a, m, "Are you sure that #{a.inspect} is an array? It doesn't respond to #{m}.") }
|
31
|
-
end
|
32
|
-
|
33
|
-
assert a1h = a1.inject({}) { |h,e| h[e] = a1.select { |i| i == e }.size; h }
|
34
|
-
assert a2h = a2.inject({}) { |h,e| h[e] = a2.select { |i| i == e }.size; h }
|
35
|
-
|
36
|
-
assert_equal(a1h, a2h, msg)
|
37
|
-
end
|
38
|
-
|
39
|
-
# Asserts that the given collection contains item x. If x is a regular expression, ensure that
|
40
|
-
# at least one element from the collection matches x. +extra_msg+ is appended to the error message if the assertion fails.
|
41
|
-
#
|
42
|
-
# assert_contains(['a', '1'], /\d/) => passes
|
43
|
-
# assert_contains(['a', '1'], 'a') => passes
|
44
|
-
# assert_contains(['a', '1'], /not there/) => fails
|
45
|
-
def assert_contains(collection, x, extra_msg = "")
|
46
|
-
collection = [collection] unless collection.is_a?(Array)
|
47
|
-
msg = "#{x.inspect} not found in #{collection.to_a.inspect} #{extra_msg}"
|
48
|
-
case x
|
49
|
-
when Regexp: assert(collection.detect { |e| e =~ x }, msg)
|
50
|
-
else assert(collection.include?(x), msg)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
# Asserts that the given collection does not contain item x. If x is a regular expression, ensure that
|
55
|
-
# none of the elements from the collection match x.
|
56
|
-
def assert_does_not_contain(collection, x, extra_msg = "")
|
57
|
-
collection = [collection] unless collection.is_a?(Array)
|
58
|
-
msg = "#{x.inspect} found in #{collection.to_a.inspect} " + extra_msg
|
59
|
-
case x
|
60
|
-
when Regexp: assert(!collection.detect { |e| e =~ x }, msg)
|
61
|
-
else assert(!collection.include?(x), msg)
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
# Asserts that the given object can be saved
|
66
|
-
#
|
67
|
-
# assert_save User.new(params)
|
68
|
-
def assert_save(obj)
|
69
|
-
assert obj.save, "Errors: #{pretty_error_messages obj}"
|
70
|
-
obj.reload
|
71
|
-
end
|
72
|
-
|
73
|
-
# Asserts that the given object is valid
|
74
|
-
#
|
75
|
-
# assert_valid User.new(params)
|
76
|
-
def assert_valid(obj)
|
77
|
-
assert obj.valid?, "Errors: #{pretty_error_messages obj}"
|
78
|
-
end
|
79
|
-
|
80
|
-
# Asserts that an email was delivered. Can take a block that can further
|
81
|
-
# narrow down the types of emails you're expecting.
|
82
|
-
#
|
83
|
-
# assert_sent_email
|
84
|
-
#
|
85
|
-
# Passes if ActionMailer::Base.deliveries has an email
|
86
|
-
#
|
87
|
-
# assert_sent_email do |email|
|
88
|
-
# email.subject =~ /hi there/ && email.to.include?('none@none.com')
|
89
|
-
# end
|
90
|
-
#
|
91
|
-
# Passes if there is an email with subject containing 'hi there' and
|
92
|
-
# 'none@none.com' as one of the recipients.
|
93
|
-
#
|
94
|
-
def assert_sent_email
|
95
|
-
emails = ActionMailer::Base.deliveries
|
96
|
-
assert !emails.empty?, "No emails were sent"
|
97
|
-
if block_given?
|
98
|
-
matching_emails = emails.select {|email| yield email }
|
99
|
-
assert !matching_emails.empty?, "None of the emails matched."
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
# Asserts that no ActionMailer mails were delivered
|
104
|
-
#
|
105
|
-
# assert_did_not_send_email
|
106
|
-
def assert_did_not_send_email
|
107
|
-
msg = "Sent #{ActionMailer::Base.deliveries.size} emails.\n"
|
108
|
-
ActionMailer::Base.deliveries.each { |m| msg << " '#{m.subject}' sent to #{m.to.to_sentence}\n" }
|
109
|
-
assert ActionMailer::Base.deliveries.empty?, msg
|
110
|
-
end
|
111
|
-
|
112
|
-
def pretty_error_messages(obj)
|
113
|
-
obj.errors.map { |a, m| "#{a} #{m} (#{obj.send(a).inspect})" }
|
114
|
-
end
|
115
|
-
|
116
|
-
end
|
117
|
-
end
|
118
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
module ThoughtBot # :nodoc:
|
2
|
-
module Shoulda # :nodoc:
|
3
|
-
module Private # :nodoc:
|
4
|
-
# Returns the values for the entries in the args hash who's keys are listed in the wanted array.
|
5
|
-
# Will raise if there are keys in the args hash that aren't listed.
|
6
|
-
def get_options!(args, *wanted)
|
7
|
-
ret = []
|
8
|
-
opts = (args.last.is_a?(Hash) ? args.pop : {})
|
9
|
-
wanted.each {|w| ret << opts.delete(w)}
|
10
|
-
raise ArgumentError, "Unsupported options given: #{opts.keys.join(', ')}" unless opts.keys.empty?
|
11
|
-
return *ret
|
12
|
-
end
|
13
|
-
|
14
|
-
# Returns the model class constant, as determined by the test class name.
|
15
|
-
#
|
16
|
-
# class TestUser; model_class; end => User
|
17
|
-
def model_class
|
18
|
-
self.name.gsub(/Test$/, '').constantize
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|