acts_as_owner 1.2.0 → 2.0.0

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/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm ruby-1.9.2@acts_as_owner
data/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ source "http://rubygems.org"
2
+
3
+ case ENV["MODEL_ADAPTER"]
4
+ when nil, "active_record"
5
+ gem "sqlite3"
6
+ gem "activerecord", :require => "active_record"
7
+ else
8
+ raise "Unknown model adapter: #{ENV["MODEL_ADAPTER"]}"
9
+ end
10
+
11
+ gemspec
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2009 Cyril Wack
1
+ Copyright (c) 2009-2011 Cyril Wack
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.rdoc CHANGED
@@ -1,36 +1,79 @@
1
1
  = Acts as owner
2
2
 
3
- Provides to a user the ability to self-query about the possession of a given resource or a given account.
3
+ Acts as owner is a plugin for Ruby on Rails that provides to an owner object the
4
+ ability to self-query about the possession of an ownable object.
4
5
 
5
- Any resources belonging to an other resource which is owned by the user are considered such as owned by this user too.
6
+ Ownable objects can be any objects belonging to the owner object and any objects
7
+ belonging to an ownable object.
6
8
 
7
- == Install
9
+ Any ownable child, which belongs to an owned ownable parent, is also owned by
10
+ the owner.
8
11
 
9
- Install the gem (recommended):
12
+ == Philosophy
10
13
 
11
- sudo gem install acts_as_owner
14
+ General library that does only one thing, without any feature.
12
15
 
13
- Or you can install this as a plugin:
16
+ == Installation
14
17
 
15
- script/plugin install git://github.com/cyril/acts_as_owner.git
18
+ Include the gem in your <tt>Gemfile</tt>:
19
+
20
+ gem 'acts_as_owner'
21
+
22
+ And run the +bundle+ command. Or as a plugin:
23
+
24
+ rails plugin install git://github.com/cyril/acts_as_owner.git
25
+
26
+ == Getting started
27
+
28
+ === Configuring models
29
+
30
+ Owner models just have to be declared thanks to <tt>acts_as_owner</tt>, with
31
+ each ownable object passed through a block (using <tt>owns_one</tt> or
32
+ <tt>owns_many</tt> method).
16
33
 
17
34
  == Example
18
35
 
19
36
  class User < ActiveRecord::Base
20
- acts_as_owner :categories, :articles, :comments
37
+ acts_as_owner do |u|
38
+ u.owns_many :articles
39
+ u.owns_many :comments
40
+ end
41
+
42
+ with_options :dependent => :destroy do |opts|
43
+ opts.has_many :articles
44
+ opts.has_many :comments
45
+ end
21
46
  end
22
47
 
23
- # Considering this article:
48
+ class Article < ActiveRecord::Base
49
+ belongs_to :user
50
+ has_many :comments, :dependent => :destroy
51
+ end
52
+
53
+ class Comment < ActiveRecord::Base
54
+ belongs_to :article
55
+ belongs_to :user
56
+ end
57
+
58
+ # An article should be ownable by a user, so:
59
+ User.could_own_an?(:article) # => true
60
+
61
+ # Considering this one:
24
62
  article = current_user.articles.first
25
63
 
26
64
  # We can see that:
27
- current_user.owns? article # => true
28
- current_user.owns? article.user # => true
65
+ current_user.owns? article # => true
66
+
67
+ # Now, considering its first comment:
68
+ comment = article.comments.first
69
+
70
+ # Just like article, we can check that:
71
+ User.could_own_an? :comment # => true
29
72
 
30
- # Now, check if its first comment is ours:
31
- current_user.owns? article.comments.first.user # => false
73
+ # Let's see if the current user is the author:
74
+ current_user == comment.user # => false
32
75
 
33
- # But even if it is not, this comment is a child of our article, so:
34
- current_user.owns? article.comments.first # => true
76
+ # Never mind. It belongs to his article so that's also his one:
77
+ current_user.owns? comment # => true
35
78
 
36
- Copyright (c) 2009 Cyril Wack, released under the MIT license
79
+ Copyright (c) 2009-2011 Cyril Wack, released under the MIT license
data/Rakefile CHANGED
@@ -1,12 +1,12 @@
1
- require 'rubygems'
2
- require 'rake'
3
- require 'echoe'
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
4
3
 
5
- Echoe.new('acts_as_owner', '1.2.0') do |p|
6
- p.description = "Simple Rails plugin that allows to operate freely on objects which belong to us."
7
- p.url = "http://github.com/cyril/acts_as_owner"
8
- p.author = "Cyril Wack"
9
- p.email = "cyril.wack@gmail.com"
10
- p.ignore_pattern = ["tmp/*", "script/*"]
11
- p.development_dependencies = []
12
- end
4
+ require 'rake/testtask'
5
+
6
+ Rake::TestTask.new do |t|
7
+ t.libs << 'lib'
8
+ t.libs << 'test'
9
+ t.test_files = FileList["test/**/*_{helper,test}.rb"]
10
+ end
11
+
12
+ task :default => :test
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :major: 1
3
- :minor: 2
2
+ :major: 2
3
+ :minor: 0
4
4
  :patch: 0
@@ -1,32 +1,18 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
1
  Gem::Specification.new do |s|
4
- s.name = %q{acts_as_owner}
5
- s.version = "1.2.0"
6
-
7
- s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Cyril Wack"]
9
- s.cert_chain = ["/Users/cyril/gem-public_cert.pem"]
10
- s.date = %q{2010-04-12}
2
+ s.name = "acts_as_owner"
3
+ s.version = Psych.load_file("VERSION.yml").values.join('.')
4
+ s.platform = Gem::Platform::RUBY
5
+ s.authors = ["Cyril Wack"]
6
+ s.email = ["cyril@gosu.fr"]
7
+ s.homepage = "http://github.com/cyril/acts_as_owner"
8
+ s.summary = %q{Simple ownership solution for Rails.}
11
9
  s.description = %q{Simple Rails plugin that allows to operate freely on objects which belong to us.}
12
- s.email = %q{cyril.wack@gmail.com}
13
- s.extra_rdoc_files = ["README.rdoc", "lib/acts_as_owner.rb"]
14
- s.files = ["MIT-LICENSE", "README.rdoc", "Rakefile", "VERSION.yml", "init.rb", "lib/acts_as_owner.rb", "Manifest", "acts_as_owner.gemspec"]
15
- s.homepage = %q{http://github.com/cyril/acts_as_owner}
16
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Acts_as_owner", "--main", "README.rdoc"]
17
- s.require_paths = ["lib"]
18
- s.rubyforge_project = %q{acts_as_owner}
19
- s.rubygems_version = %q{1.3.6}
20
- s.signing_key = %q{/Users/cyril/gem-private_key.pem}
21
- s.summary = %q{Simple Rails plugin that allows to operate freely on objects which belong to us.}
22
10
 
23
- if s.respond_to? :specification_version then
24
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
25
- s.specification_version = 3
11
+ s.rubyforge_project = "acts_as_owner"
26
12
 
27
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
28
- else
29
- end
30
- else
31
- end
13
+ s.add_runtime_dependency "railties", ">= 3.0.0"
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.require_paths = ["lib"]
32
18
  end
data/init.rb CHANGED
@@ -1 +1 @@
1
- require 'acts_as_owner'
1
+ require 'acts_as_owner'
data/lib/acts_as_owner.rb CHANGED
@@ -1,74 +1,69 @@
1
- require 'active_record/base'
2
-
3
1
  module ActsAsOwner
4
- def self.included(base)
5
- base.extend(ClassMethods)
2
+ def owns?(obj)
3
+ can_own_this?(obj) if self.class.could_own_a?(obj.class.name.underscore)
6
4
  end
7
5
 
8
- module ClassMethods
9
- # Configuration resources are: all resources belonging to the current model.
10
- def acts_as_owner(*resources)
11
- resources.each { |resource| has_many resource.to_s.tableize.to_sym, :dependent => :destroy }
6
+ protected
12
7
 
13
- class_eval <<-EOV
14
- include ActsAsOwner::InstanceMethods
8
+ def can_own_this?(obj, depth = 0)
9
+ association_id = obj.class.name.tableize.singularize.to_sym
10
+ association_params = self.class.
11
+ read_inheritable_attribute(:ownable_ids)[association_id]
15
12
 
16
- def self.owns_many
17
- reflections.select { |name, reflection| reflection.macro == :has_many }.collect { |table| table[0].to_s.singularize }
18
- end
13
+ unless depth > association_params[:max_depth]
14
+ owner_id = association_params[:owner_id]
15
+ owned = obj.respond_to?(owner_id) && obj.send(owner_id) == self
19
16
 
20
- def self.owns_one
21
- reflections.select { |name, reflection| reflection.macro == :has_one }.collect { |table| table[0].to_s.singularize }
22
- end
23
- EOV
17
+ owned || ownable_ancestors(obj).any? do |name|
18
+ can_own_this?(name, depth.next)
19
+ end
24
20
  end
25
21
  end
26
22
 
27
- module InstanceMethods
28
- # Returns true if the user owns the object which can be a account or a resource. Otherwise returns false.
29
- def owns?(object = nil)
30
- return false if object.nil?
31
- object.is_a?(self.class) ? self.owns_this_account?(object) : self.owns_this_resource?(object)
23
+ def ownable_ancestors(child)
24
+ ancestors = child.class.reflections.select do |name, reflection|
25
+ reflection.macro == :belongs_to
32
26
  end
33
27
 
34
- protected
28
+ ancestors.map {|table| table.first }.
29
+ select {|name| self.class.could_own_a?(name) }.
30
+ map {|name| child.send(name) }.compact
31
+ end
32
+ end
35
33
 
36
- # Returns true if the user owns the account, otherwise returns false.
37
- def owns_this_account?(account)
38
- self.id == account.id
39
- end
34
+ class ActiveRecord::Base
35
+ def self.acts_as_owner(options = {}, &block)
36
+ configuration = {
37
+ :max_depth => 50,
38
+ :owner_id => name.tableize.singularize.to_sym }
39
+ configuration.update(options) if options.is_a?(Hash)
40
40
 
41
- # Returns true if the user owns the resource, otherwise returns false.
42
- def owns_this_resource?(resource)
43
- (has_many?(resource) || has_one?(resource)) ||
44
- parents_of(resource).collect { |parent| owns_this_resource?(parent) }.select { |result| result == true }.uniq.pop == true
45
- end
41
+ write_inheritable_hash(:ownership_options, configuration)
42
+ write_inheritable_hash(:ownable_ids, {})
46
43
 
47
- # Has many association
48
- def has_many?(resource)
49
- self.respond_to?(resource.class.name.tableize) && self.send(resource.class.name.tableize).include?(resource)
50
- end
44
+ class << self
45
+ def owns_many(association_id, options = {})
46
+ read_inheritable_attribute(:ownable_ids).update({
47
+ association_id.to_s.singularize.to_sym =>
48
+ read_inheritable_attribute(:ownership_options).merge(options) })
49
+ end
51
50
 
52
- # Has one association
53
- def has_one?(resource)
54
- self.respond_to?(resource.class.name.tableize.singularize) && self.send(resource.class.name.tableize.singularize) == resource
55
- end
51
+ def owns_one(association_id, options = {})
52
+ read_inheritable_attribute(:ownable_ids).update({
53
+ association_id.to_sym =>
54
+ read_inheritable_attribute(:ownership_options).merge(options) })
55
+ end
56
56
 
57
- # Returns an array of resources that are:
58
- # * directly superior to the resource passed as parameter, according the hierarchical tree structure;
59
- # * potentially owned by the current user, through the hierarchical relationship.
60
- def parents_of(resource)
61
- potential_owners_of(resource).collect { |method| resource.send(method) }
62
- end
57
+ def could_own_a?(association_id)
58
+ read_inheritable_attribute(:ownable_ids).keys.
59
+ include?(association_id.to_sym)
60
+ end
63
61
 
64
- # Returns an array containing symbols common to children
65
- # which belongs to the current user and to parents which has many or has one given resource.
66
- def potential_owners_of(resource)
67
- (self.class.owns_many | self.class.owns_one) & resource.class.reflections.select do |name, reflection|
68
- reflection.macro == :belongs_to
69
- end.collect { |table| table[0].to_s }
62
+ alias_method :could_own_an?, :could_own_a?
70
63
  end
64
+
65
+ instance_eval &block
66
+
67
+ include ActsAsOwner
71
68
  end
72
69
  end
73
-
74
- ActiveRecord::Base.class_eval { include ActsAsOwner }
@@ -0,0 +1,121 @@
1
+ require 'test_helper'
2
+
3
+ ActiveRecord::Base.establish_connection(
4
+ :adapter => 'sqlite3', :database => ':memory:')
5
+
6
+ def setup_db
7
+ ActiveRecord::Schema.define(:version => 1) do
8
+ create_table :users do |t|
9
+ t.string :login
10
+ end
11
+
12
+ create_table :blogs do |t|
13
+ t.references :user, :null => false
14
+ t.string :title
15
+ end
16
+
17
+ create_table :categories do |t|
18
+ t.references :blog, :null => false
19
+ t.string :title
20
+ end
21
+
22
+ create_table :articles do |t|
23
+ t.references :publishable, :polymorphic => true, :null => false
24
+ t.references :user
25
+ t.string :title
26
+ t.text :content
27
+ end
28
+
29
+ create_table :comments do |t|
30
+ t.references :article, :null => false
31
+ t.references :user
32
+ t.text :content
33
+ end
34
+ end
35
+ end
36
+
37
+ def teardown_db
38
+ ActiveRecord::Base.connection.tables.each do |table|
39
+ ActiveRecord::Base.connection.drop_table(table)
40
+ end
41
+ end
42
+
43
+ class User < ActiveRecord::Base
44
+ acts_as_owner(:verbose => true) do |a|
45
+ a.owns_many :categories
46
+ a.owns_many :articles
47
+ a.owns_many :comments
48
+ a.owns_many :publishables
49
+ a.owns_one :blog
50
+ end
51
+
52
+ has_one :blog, :dependent => :destroy
53
+ has_many :articles, :dependent => :destroy
54
+ has_many :comments, :dependent => :destroy
55
+ end
56
+
57
+ class Blog < ActiveRecord::Base
58
+ belongs_to :user
59
+ has_many :articles, :as => :publishable, :dependent => :destroy
60
+ has_many :categories, :dependent => :destroy
61
+ end
62
+
63
+ class Category < ActiveRecord::Base
64
+ belongs_to :blog
65
+ has_many :articles, :as => :publishable, :dependent => :destroy
66
+ end
67
+
68
+ class Article < ActiveRecord::Base
69
+ belongs_to :publishable, :polymorphic => true
70
+ belongs_to :user
71
+ has_many :comments, :dependent => :destroy
72
+ end
73
+
74
+ class Comment < ActiveRecord::Base
75
+ belongs_to :article
76
+ belongs_to :user
77
+ end
78
+
79
+ class OwnerTest < MiniTest::Unit::TestCase
80
+ def setup
81
+ setup_db
82
+
83
+ @admin = User.create! :login => 'admin'
84
+ @bob = User.create :login => 'bob'
85
+
86
+ @blog = @admin.create_blog :title => 'my_blog'
87
+ @category = @blog.categories.create! :title => 'main'
88
+ @article0 = @category.articles.create! :title => 'hello, world',
89
+ :user => @admin
90
+ @article1 = @blog.articles.create! :title => 'hello, all',
91
+ :user => @bob
92
+ @comment0 = @article0.comments.create! :content => 'foo'
93
+ @comment1 = @article0.comments.create! :content => 'bar',
94
+ :user => @bob
95
+ end
96
+
97
+ def teardown
98
+ teardown_db
99
+ end
100
+
101
+ def test_the_ownability
102
+ refute User.could_own_a?(:tank)
103
+ refute User.could_own_a?("dinosaur")
104
+ refute User.could_own_a?(42.to_s)
105
+ assert User.could_own_a?(:blog)
106
+ assert User.could_own_an?(:article)
107
+ end
108
+
109
+ def test_the_ownership
110
+ assert @admin.owns?(@blog)
111
+ refute @bob.owns?(@blog)
112
+ assert @admin.owns?(@article0)
113
+ refute @bob.owns?(@article0)
114
+ assert @admin.owns?(@article1)
115
+ assert @bob.owns?(@article1)
116
+ assert @admin.owns?(@comment0)
117
+ refute @bob.owns?(@comment0)
118
+ assert @bob.owns?(@comment1)
119
+ assert @admin.owns?(@comment1)
120
+ end
121
+ end
@@ -0,0 +1,4 @@
1
+ require 'minitest/autorun'
2
+ require 'sqlite3'
3
+ require 'active_record'
4
+ require 'acts_as_owner'
metadata CHANGED
@@ -1,97 +1,71 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: acts_as_owner
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 2
8
- - 0
9
- version: 1.2.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Cyril Wack
13
9
  autorequire:
14
10
  bindir: bin
15
- cert_chain:
16
- - |
17
- -----BEGIN CERTIFICATE-----
18
- MIIDNjCCAh6gAwIBAgIBADANBgkqhkiG9w0BAQUFADBBMRMwEQYDVQQDDApjeXJp
19
- bC53YWNrMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZFgNj
20
- b20wHhcNMTAwNDExMjI1OTI4WhcNMTEwNDExMjI1OTI4WjBBMRMwEQYDVQQDDApj
21
- eXJpbC53YWNrMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZ
22
- FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGJFqPSXGYdS6t
23
- t+kXyFuLg7uIbQHToLhdbfpu5j7dl65EWAspRI37ZE/FIFosmwQ0DAGiJ35gVX7K
24
- 5/rj745EUW9vijemlNHZjTY40AQAP2avlcMd6DnA7pl/x8dxC9G2dW/IS0nmjH0E
25
- +X7X0BZ8WIY7PBvLsq5ptpGaoaxpmqRjJDANolnODwyBjFWtUqpvOGeUWL24orZ3
26
- xwcW6d1vl8hraZ3UUJtIVXFg85lHclyrP33DYxj5sstgRwovaCPrvUQ6ZZ+hX/iJ
27
- MYaEFZsw74WVD4RLHl1bEz2RQGDgSwfFnOnrQ1gi2SaeqUN7uFThAEbbyiJK+rNL
28
- xapWOFs9AgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
29
- BBSsO/YPzLP2/ZtBKQfWveZNRK3uKDANBgkqhkiG9w0BAQUFAAOCAQEAGaGpPlEc
30
- Z8A7Jtfws1tpdLOlQrQQXfIgBrPvfjO18MxT2BVgnusYcMuJgrY1skbH6RDxhdia
31
- EetICD0kvyGnbK+dHdhRwvmmiqc7ZOaiFb3RNLcW6jduxafH4zgKUeg23KpfJYy3
32
- MOqVgHckM1hMZTWz7nmrXJBAjj/48jFOPrwtTed8kd6KpIjUz4e2oTwT+JIVnryF
33
- sYFesvR4DywbXL88T29gq5biCHsAgbK89DW5DNx1Yg1HNLxCdJurJFrcQQS3XQco
34
- h2svBTlG7Yg1wLZAGkVx4RSkrFujrxpgLsz5bfmdnbiEgKcF9njIOdVO4P4vwyoS
35
- G4VzQZjAGxprTw==
36
- -----END CERTIFICATE-----
37
-
38
- date: 2010-04-12 00:00:00 +02:00
39
- default_executable:
40
- dependencies: []
41
-
42
- description: Simple Rails plugin that allows to operate freely on objects which belong to us.
43
- email: cyril.wack@gmail.com
11
+ cert_chain: []
12
+ date: 2011-04-22 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: railties
16
+ requirement: &2153341400 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 3.0.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2153341400
25
+ description: Simple Rails plugin that allows to operate freely on objects which belong
26
+ to us.
27
+ email:
28
+ - cyril@gosu.fr
44
29
  executables: []
45
-
46
30
  extensions: []
47
-
48
- extra_rdoc_files:
49
- - README.rdoc
50
- - lib/acts_as_owner.rb
51
- files:
31
+ extra_rdoc_files: []
32
+ files:
33
+ - .gitignore
34
+ - .rvmrc
35
+ - Gemfile
52
36
  - MIT-LICENSE
53
37
  - README.rdoc
54
38
  - Rakefile
55
39
  - VERSION.yml
40
+ - acts_as_owner.gemspec
56
41
  - init.rb
57
42
  - lib/acts_as_owner.rb
58
- - Manifest
59
- - acts_as_owner.gemspec
60
- has_rdoc: true
43
+ - test/owner_test.rb
44
+ - test/test_helper.rb
61
45
  homepage: http://github.com/cyril/acts_as_owner
62
46
  licenses: []
63
-
64
47
  post_install_message:
65
- rdoc_options:
66
- - --line-numbers
67
- - --inline-source
68
- - --title
69
- - Acts_as_owner
70
- - --main
71
- - README.rdoc
72
- require_paths:
48
+ rdoc_options: []
49
+ require_paths:
73
50
  - lib
74
- required_ruby_version: !ruby/object:Gem::Requirement
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- segments:
79
- - 0
80
- version: "0"
81
- required_rubygems_version: !ruby/object:Gem::Requirement
82
- requirements:
83
- - - ">="
84
- - !ruby/object:Gem::Version
85
- segments:
86
- - 1
87
- - 2
88
- version: "1.2"
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
89
63
  requirements: []
90
-
91
64
  rubyforge_project: acts_as_owner
92
- rubygems_version: 1.3.6
65
+ rubygems_version: 1.7.2
93
66
  signing_key:
94
67
  specification_version: 3
95
- summary: Simple Rails plugin that allows to operate freely on objects which belong to us.
96
- test_files: []
97
-
68
+ summary: Simple ownership solution for Rails.
69
+ test_files:
70
+ - test/owner_test.rb
71
+ - test/test_helper.rb
data/Manifest DELETED
@@ -1,7 +0,0 @@
1
- MIT-LICENSE
2
- README.rdoc
3
- Rakefile
4
- VERSION.yml
5
- init.rb
6
- lib/acts_as_owner.rb
7
- Manifest
data.tar.gz.sig DELETED
Binary file
metadata.gz.sig DELETED
Binary file