ownable 0.2.0 → 0.2.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/README.markdown +17 -1
- data/Rakefile +0 -0
- data/lib/ownable.rb +0 -0
- data/lib/ownable/acts_as_ownable.rb +3 -3
- data/lib/ownable/railtie.rb +0 -0
- data/lib/ownable/version.rb +1 -1
- data/ownable.gemspec +0 -0
- metadata +9 -25
data/README.markdown
CHANGED
@@ -11,7 +11,11 @@ Ownable exposes an instance method on ActiveRecord objects that declare themselv
|
|
11
11
|
For example, assume the associations:
|
12
12
|
|
13
13
|
User has_many Orders has_one Invoice has_many Payments
|
14
|
-
|
14
|
+
|
15
|
+
or in the opposite direction:
|
16
|
+
|
17
|
+
Payments belongs_to Invoice belongs_to Orders belongs_to User
|
18
|
+
|
15
19
|
Determine if a User "owns" a particular Payment object
|
16
20
|
|
17
21
|
Rather than manually defining and then checking the association between User and Payment like:
|
@@ -20,6 +24,18 @@ Determine if a User "owns" a particular Payment object
|
|
20
24
|
you can use Ownable for a much shorter and simpler syntax:
|
21
25
|
@payment.owned_by? current_user # => true/false
|
22
26
|
|
27
|
+
This gem is most helpful when many association steps exist between Models, such as:
|
28
|
+
|
29
|
+
A belongs_to B belongs_to ... belongs_to Y belongs_to Z
|
30
|
+
|
31
|
+
And the ownership check can be written short hand via Ownable as:
|
32
|
+
|
33
|
+
@a.owned_by? @z # => true/false
|
34
|
+
|
35
|
+
or
|
36
|
+
|
37
|
+
@a.belongs_to? @z # => true/false
|
38
|
+
|
23
39
|
## INSTALLATION
|
24
40
|
|
25
41
|
Ownable is currently available only in Gem form and requires version >= 3.0 of Rails.
|
data/Rakefile
CHANGED
File without changes
|
data/lib/ownable.rb
CHANGED
File without changes
|
@@ -11,7 +11,7 @@ module Ownable
|
|
11
11
|
def acts_as_ownable(options = {})
|
12
12
|
cattr_accessor :ownable_through
|
13
13
|
|
14
|
-
self.ownable_through = options[:through] || ['
|
14
|
+
self.ownable_through = options[:through] || ['user']
|
15
15
|
end
|
16
16
|
|
17
17
|
end #ClassMethods
|
@@ -38,9 +38,9 @@ module Ownable
|
|
38
38
|
|
39
39
|
self.ownable_through.each do |class_name|
|
40
40
|
begin
|
41
|
-
owner =
|
41
|
+
owner = owner.send class_name
|
42
42
|
rescue
|
43
|
-
owner =
|
43
|
+
owner = nil
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
data/lib/ownable/railtie.rb
CHANGED
File without changes
|
data/lib/ownable/version.rb
CHANGED
data/ownable.gemspec
CHANGED
File without changes
|
metadata
CHANGED
@@ -1,12 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ownable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
segments:
|
6
|
-
- 0
|
7
|
-
- 2
|
8
|
-
- 0
|
9
|
-
version: 0.2.0
|
4
|
+
version: 0.2.1
|
10
5
|
platform: ruby
|
11
6
|
authors:
|
12
7
|
- David Gonzalez
|
@@ -14,24 +9,19 @@ autorequire:
|
|
14
9
|
bindir: bin
|
15
10
|
cert_chain: []
|
16
11
|
|
17
|
-
date: 2010-10-
|
12
|
+
date: 2010-10-31 00:00:00 -04:00
|
18
13
|
default_executable:
|
19
14
|
dependencies:
|
20
15
|
- !ruby/object:Gem::Dependency
|
21
16
|
name: rails
|
22
|
-
|
23
|
-
|
24
|
-
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
20
|
requirements:
|
26
21
|
- - ~>
|
27
22
|
- !ruby/object:Gem::Version
|
28
|
-
segments:
|
29
|
-
- 3
|
30
|
-
- 0
|
31
|
-
- 0
|
32
23
|
version: 3.0.0
|
33
|
-
|
34
|
-
version_requirements: *id001
|
24
|
+
version:
|
35
25
|
description: Model ownership with Rails 3
|
36
26
|
email:
|
37
27
|
- davidjgonzalez@gmail.com
|
@@ -59,27 +49,21 @@ rdoc_options: []
|
|
59
49
|
require_paths:
|
60
50
|
- lib
|
61
51
|
required_ruby_version: !ruby/object:Gem::Requirement
|
62
|
-
none: false
|
63
52
|
requirements:
|
64
53
|
- - ">="
|
65
54
|
- !ruby/object:Gem::Version
|
66
|
-
segments:
|
67
|
-
- 0
|
68
55
|
version: "0"
|
56
|
+
version:
|
69
57
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
|
-
none: false
|
71
58
|
requirements:
|
72
59
|
- - ">="
|
73
60
|
- !ruby/object:Gem::Version
|
74
|
-
segments:
|
75
|
-
- 1
|
76
|
-
- 3
|
77
|
-
- 6
|
78
61
|
version: 1.3.6
|
62
|
+
version:
|
79
63
|
requirements: []
|
80
64
|
|
81
65
|
rubyforge_project:
|
82
|
-
rubygems_version: 1.3.
|
66
|
+
rubygems_version: 1.3.5
|
83
67
|
signing_key:
|
84
68
|
specification_version: 3
|
85
69
|
summary: Model ownership with Rails 3
|