benhoskings-hammock 0.2.23 → 0.2.24
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/History.txt +7 -0
- data/hammock.gemspec +2 -2
- data/lib/hammock.rb +1 -1
- data/lib/hammock/canned_scopes.rb +2 -2
- data/lib/hammock/monkey_patches/active_record.rb +2 -21
- data/lib/hammock/restful_support.rb +3 -0
- metadata +2 -2
data/History.txt
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
== 0.2.24 2009-05-05
|
2
|
+
Removed two unused methods from active_record patches.
|
3
|
+
Renamed find_with_deleted to find_with_destroyed in #find_or_new_with, for acts_as_paranoid -> is_paranoid.
|
4
|
+
public_scope and empty_scope now optionally accept an (ignored) account.
|
5
|
+
Add exception handling to #mdl, to return nil on nonexistent model instead of raising.
|
6
|
+
|
7
|
+
|
1
8
|
== 0.2.23 2009-05-04
|
2
9
|
Removed is_paranoid dependency (it'll be in the Rails app for now).
|
3
10
|
|
data/hammock.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{hammock}
|
5
|
-
s.version = "0.2.
|
5
|
+
s.version = "0.2.24"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Ben Hoskings"]
|
9
|
-
s.date = %q{2009-05-
|
9
|
+
s.date = %q{2009-05-05}
|
10
10
|
s.description = %q{Hammock is a Rails plugin that eliminates redundant code in a very RESTful manner. It does this in lots in lots of different places, but in one manner: it encourages specification in place of implementation.
|
11
11
|
|
12
12
|
|
data/lib/hammock.rb
CHANGED
@@ -87,7 +87,7 @@ module Hammock
|
|
87
87
|
}
|
88
88
|
end
|
89
89
|
|
90
|
-
def public_scope account
|
90
|
+
def public_scope account = nil
|
91
91
|
if sqlite?
|
92
92
|
lambda {|record| 1 }
|
93
93
|
else
|
@@ -112,7 +112,7 @@ module Hammock
|
|
112
112
|
end
|
113
113
|
end
|
114
114
|
|
115
|
-
def empty_scope
|
115
|
+
def empty_scope account = nil
|
116
116
|
if sqlite?
|
117
117
|
lambda {|record| 0 } # TODO check what this should be
|
118
118
|
else
|
@@ -62,18 +62,13 @@ module Hammock
|
|
62
62
|
def record?; false end
|
63
63
|
def resource?; true end
|
64
64
|
|
65
|
-
def update_statement set_clause, where_clause
|
66
|
-
statement = "UPDATE #{table_name} SET #{set_clause} WHERE #{send :sanitize_sql_array, where_clause}"
|
67
|
-
connection.update statement
|
68
|
-
end
|
69
|
-
|
70
65
|
def reset_cached_column_info
|
71
66
|
reset_column_information
|
72
67
|
subclasses.each &:reset_cached_column_info
|
73
68
|
end
|
74
69
|
|
75
70
|
def find_or_new_with(find_attributes, create_attributes = {})
|
76
|
-
finder = respond_to?(:
|
71
|
+
finder = respond_to?(:find_with_destroyed) ? :find_with_destroyed : :find
|
77
72
|
|
78
73
|
if record = send(finder, :first, :conditions => find_attributes.discard(:deleted_at))
|
79
74
|
# Found the record, so we can return it, if:
|
@@ -81,7 +76,7 @@ module Hammock
|
|
81
76
|
# (b) it can, but it's not actually deleted,
|
82
77
|
# (c) it is deleted, but we want to find one that's deleted, or
|
83
78
|
# (d) we don't want a deleted record, and undestruction succeeds.
|
84
|
-
if (finder != :
|
79
|
+
if (finder != :find_with_destroyed) || !record.deleted? || create_attributes[:deleted_at] || record.restore
|
85
80
|
record
|
86
81
|
end
|
87
82
|
else
|
@@ -153,20 +148,6 @@ module Hammock
|
|
153
148
|
@new_or_deleted_before_save = new_record? || send_if_respond_to(:deleted?)
|
154
149
|
end
|
155
150
|
|
156
|
-
def undestroy
|
157
|
-
unless new_record?
|
158
|
-
if frozen?
|
159
|
-
self.class.find_with_deleted(self.id).undestroy # Re-fetch ourselves and undestroy the thawed copy
|
160
|
-
else
|
161
|
-
# We can undestroy
|
162
|
-
return false if callback(:before_undestroy) == false
|
163
|
-
result = self.class.update_all ['deleted_at = ?', (self.deleted_at = nil)], ['id = ?', self.id]
|
164
|
-
callback(:after_undestroy)
|
165
|
-
self if result != false
|
166
|
-
end
|
167
|
-
end
|
168
|
-
end
|
169
|
-
|
170
151
|
# Updates each given attribute to the current time.
|
171
152
|
#
|
172
153
|
# Assumes that each column can accept a +Time+ instance, i.e. that they're all +datetime+ columns or similar.
|
@@ -20,6 +20,9 @@ module Hammock
|
|
20
20
|
# The model this controller operates on. Defined as the singularized controller name. For example, for +GelatinousBlobsController+, this will return the +GelatinousBlob+ class.
|
21
21
|
def mdl
|
22
22
|
@hammock_cached_mdl ||= Object.const_get to_s.sub('Controller', '').classify
|
23
|
+
rescue
|
24
|
+
log "No such model '#{to_s.sub('Controller', '').classify}'."
|
25
|
+
nil
|
23
26
|
end
|
24
27
|
# The lowercase name of the model this controller operates on. For example, for +GelatinousBlobsController+, this will return "gelatinous_blob".
|
25
28
|
def mdl_name
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: benhoskings-hammock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Hoskings
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-05-
|
12
|
+
date: 2009-05-05 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|