private_person 0.3.0 → 0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 83ae9de02a72d032f9b41ad89fad651a3153de40
4
- data.tar.gz: 8ae33b693b2aa66cb4026ad7cb09fc721d7664c5
3
+ metadata.gz: 2ea4a8f4f6cabb8537ca689a8b83f58b09822b2f
4
+ data.tar.gz: ff11f0adc4df97999397aaeaec63893019c713d5
5
5
  SHA512:
6
- metadata.gz: 43461e8b9274eaecbc576d35912d2a8f52d4cc4fa7e492ec8383c592111608366196b5193cd7dfa93117f372a5dc558bc4b663f24b28ac6aa85a3a9b2f1b9cdc
7
- data.tar.gz: bba75865148e11f401b98f58f01a7d4d8504363c50aa71140fdc4568e974b7a6f80d548b1cd28ed9ef8422e603526bc309948d58e3edcf4b18c441c378e62ec7
6
+ metadata.gz: 4b68dbebec12d3ce0cd05873c0adb64bec4e2159f1f1c9faaa1f602ac706577cc388c6a084f28963fbc29359f8e431913e5f6c3a68e8c4bc3dbcfbf255bccd3c
7
+ data.tar.gz: dbab508ccb006ca7907b91a82310af472f5d35d84f9446c33dafcecc1564d0b400f9b36952812838f837f5df5e5a29c193d4c76c404c081fb1181010514ff7c2
data/Gemfile CHANGED
@@ -15,8 +15,7 @@ group :development, :test do
15
15
  gem 'shoulda-matchers'
16
16
  gem 'factory_girl_rails'
17
17
  gem 'database_cleaner'
18
- gem 'acts_as_follower'
18
+ gem 'chalk_dust', :git => 'git://github.com/nerakdon/chalk_dust.git'
19
19
  end
20
20
 
21
21
  gem 'rails'
22
- gem 'protected_attributes'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.3.1
@@ -2,9 +2,6 @@ class Permission < ActiveRecord::Base
2
2
  belongs_to :permissor, :polymorphic => true
3
3
  belongs_to :permissible, :polymorphic => true
4
4
 
5
- attr_accessible :permissible, :permissible_type, :permissible_id, :relationship_type
6
- validates_presence_of :permissor, :permissible_type, :relationship_type
7
-
8
5
  def self.by_permissor(permissor)
9
6
  where("permissor_type = ? AND permissor_id = ?", permissor.class.name, permissor.id)
10
7
  end
@@ -31,13 +31,11 @@ module PrivatePerson
31
31
  end
32
32
 
33
33
  def permission_params(whom, what)
34
- params = ActionController::Parameters.new({:relationship_type => whom, :permissible => what})
35
- params.permit!
34
+ ActionController::Parameters.new({:relationship_type => whom, :permissible_type => what.class.name, :permissible_id => what.id}).permit!
36
35
  end
37
36
 
38
37
  def wildcard_permission_params(whom, what)
39
- params = ActionController::Parameters.new({:relationship_type => whom, :permissible_type => what})
40
- params.permit!
38
+ ActionController::Parameters.new({:relationship_type => whom, :permissible_type => what}).permit!
41
39
  end
42
40
  end
43
41
  end
@@ -39,7 +39,7 @@ module PrivatePerson
39
39
  # Then check for a slow method
40
40
  for relationship_method in permissor.class.of
41
41
  relationship_members = permissor.send(relationship_method.to_sym)
42
- if relationship_members.present? and relationship_members.exists?(:id => self.id)
42
+ if relationship_members.present? and relationship_members.include? self
43
43
  return relationship_method.to_s
44
44
  end
45
45
  end
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "private_person"
8
- s.version = "0.3.0"
8
+ s.version = "0.3.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Karen Lundgren"]
@@ -38,7 +38,6 @@ Gem::Specification.new do |s|
38
38
  "script/rails",
39
39
  "spec/dummy/.rspec",
40
40
  "spec/dummy/Rakefile",
41
- "spec/dummy/app/models/follow.rb",
42
41
  "spec/dummy/app/models/page.rb",
43
42
  "spec/dummy/app/models/user.rb",
44
43
  "spec/dummy/config.ru",
@@ -58,10 +57,8 @@ Gem::Specification.new do |s|
58
57
  "spec/dummy/config/locales/en.yml",
59
58
  "spec/dummy/config/routes.rb",
60
59
  "spec/dummy/db/development.sqlite3",
61
- "spec/dummy/db/migrate/20130906211525_create_permissions_table.rb",
62
60
  "spec/dummy/db/migrate/20130906213557_create_users_table.rb",
63
61
  "spec/dummy/db/migrate/20130906213612_create_pages_table.rb",
64
- "spec/dummy/db/migrate/20130907010108_acts_as_follower_migration.rb",
65
62
  "spec/dummy/db/schema.rb",
66
63
  "spec/dummy/db/test.sqlite3",
67
64
  "spec/dummy/script/rails",
@@ -88,7 +85,6 @@ Gem::Specification.new do |s|
88
85
 
89
86
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
90
87
  s.add_runtime_dependency(%q<rails>, [">= 0"])
91
- s.add_runtime_dependency(%q<protected_attributes>, [">= 0"])
92
88
  s.add_development_dependency(%q<rdoc>, [">= 0"])
93
89
  s.add_development_dependency(%q<bundler>, [">= 0"])
94
90
  s.add_development_dependency(%q<jeweler>, [">= 0"])
@@ -98,10 +94,9 @@ Gem::Specification.new do |s|
98
94
  s.add_development_dependency(%q<shoulda-matchers>, [">= 0"])
99
95
  s.add_development_dependency(%q<factory_girl_rails>, [">= 0"])
100
96
  s.add_development_dependency(%q<database_cleaner>, [">= 0"])
101
- s.add_development_dependency(%q<acts_as_follower>, [">= 0"])
97
+ s.add_development_dependency(%q<chalk_dust>, [">= 0"])
102
98
  else
103
99
  s.add_dependency(%q<rails>, [">= 0"])
104
- s.add_dependency(%q<protected_attributes>, [">= 0"])
105
100
  s.add_dependency(%q<rdoc>, [">= 0"])
106
101
  s.add_dependency(%q<bundler>, [">= 0"])
107
102
  s.add_dependency(%q<jeweler>, [">= 0"])
@@ -111,11 +106,10 @@ Gem::Specification.new do |s|
111
106
  s.add_dependency(%q<shoulda-matchers>, [">= 0"])
112
107
  s.add_dependency(%q<factory_girl_rails>, [">= 0"])
113
108
  s.add_dependency(%q<database_cleaner>, [">= 0"])
114
- s.add_dependency(%q<acts_as_follower>, [">= 0"])
109
+ s.add_dependency(%q<chalk_dust>, [">= 0"])
115
110
  end
116
111
  else
117
112
  s.add_dependency(%q<rails>, [">= 0"])
118
- s.add_dependency(%q<protected_attributes>, [">= 0"])
119
113
  s.add_dependency(%q<rdoc>, [">= 0"])
120
114
  s.add_dependency(%q<bundler>, [">= 0"])
121
115
  s.add_dependency(%q<jeweler>, [">= 0"])
@@ -125,7 +119,7 @@ Gem::Specification.new do |s|
125
119
  s.add_dependency(%q<shoulda-matchers>, [">= 0"])
126
120
  s.add_dependency(%q<factory_girl_rails>, [">= 0"])
127
121
  s.add_dependency(%q<database_cleaner>, [">= 0"])
128
- s.add_dependency(%q<acts_as_follower>, [">= 0"])
122
+ s.add_dependency(%q<chalk_dust>, [">= 0"])
129
123
  end
130
124
  end
131
125
 
@@ -1,9 +1,18 @@
1
1
  class User < ActiveRecord::Base
2
- acts_as_follower
3
- acts_as_followable
4
-
5
2
  acts_as_permissor :of => [:following_users, :user_followers, :following_of_followings, :follower_of_followers], :class_name => 'User'
6
3
 
4
+ def follow(user)
5
+ ChalkDust.subscribe(self, :to => user)
6
+ end
7
+
8
+ def following_users
9
+ ChalkDust.publishers_of(self)
10
+ end
11
+
12
+ def user_followers
13
+ ChalkDust.subscribers_of(self)
14
+ end
15
+
7
16
  def following_of_followings
8
17
  ids = []
9
18
  for user in following_users
@@ -19,12 +28,4 @@ class User < ActiveRecord::Base
19
28
  end
20
29
  User.where(:id => ids)
21
30
  end
22
-
23
- def is_following_user_of?(item)
24
- self.followed_by?(item)
25
- end
26
-
27
- def is_user_follower_of?(item)
28
- item.followed_by?(self)
29
- end
30
31
  end
@@ -6,7 +6,7 @@ require "active_record/railtie"
6
6
 
7
7
  Bundler.require
8
8
  require "private_person"
9
- require 'acts_as_follower'
9
+ require 'chalk_dust'
10
10
 
11
11
  module Dummy
12
12
  class Application < Rails::Application
@@ -45,12 +45,6 @@ module Dummy
45
45
  # This is necessary if your schema can't be completely dumped by the schema dumper,
46
46
  # like if you have constraints or database-specific column types
47
47
  # config.active_record.schema_format = :sql
48
-
49
- # Enforce whitelist mode for mass assignment.
50
- # This will create an empty whitelist of attributes available for mass-assignment for all models
51
- # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
52
- # parameters by using an attr_accessible or attr_protected declaration.
53
- config.active_record.whitelist_attributes = true
54
48
  end
55
49
  end
56
50
 
@@ -17,11 +17,4 @@ Dummy::Application.configure do
17
17
 
18
18
  # Only use best-standards-support built into browsers
19
19
  config.action_dispatch.best_standards_support = :builtin
20
-
21
- # Raise exception on mass assignment protection for Active Record models
22
- config.active_record.mass_assignment_sanitizer = :strict
23
-
24
- # Log the query plan for queries taking more than this (works
25
- # with SQLite, MySQL, and PostgreSQL)
26
- config.active_record.auto_explain_threshold_in_seconds = 0.5
27
20
  end
@@ -17,9 +17,6 @@ Dummy::Application.configure do
17
17
  # Show full error reports and disable caching
18
18
  config.consider_all_requests_local = true
19
19
 
20
- # Raise exception on mass assignment protection for Active Record models
21
- config.active_record.mass_assignment_sanitizer = :strict
22
-
23
20
  # Print deprecation notices to the stderr
24
21
  config.active_support.deprecation = :stderr
25
22
  end
Binary file
@@ -9,48 +9,63 @@
9
9
  # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10
10
  # you'll amass, the slower it'll run and the greater likelihood for issues).
11
11
  #
12
- # It's strongly recommended to check this file into your version control system.
13
-
14
- ActiveRecord::Schema.define(:version => 20130907010108) do
15
-
16
- create_table "follows", :force => true do |t|
17
- t.integer "followable_id", :null => false
18
- t.string "followable_type", :null => false
19
- t.integer "follower_id", :null => false
20
- t.string "follower_type", :null => false
21
- t.boolean "blocked", :default => false, :null => false
22
- t.datetime "created_at", :null => false
23
- t.datetime "updated_at", :null => false
12
+ # It's strongly recommended that you check this file into your version control system.
13
+
14
+ ActiveRecord::Schema.define(version: 20130930161545) do
15
+
16
+ create_table "activity_items", force: true do |t|
17
+ t.integer "performer_id"
18
+ t.string "performer_type"
19
+ t.string "event"
20
+ t.integer "target_id"
21
+ t.string "target_type"
22
+ t.integer "owner_id"
23
+ t.string "owner_type"
24
+ t.string "topic"
25
+ t.datetime "created_at"
26
+ t.datetime "updated_at"
27
+ end
28
+
29
+ add_index "activity_items", ["owner_id", "owner_type", "created_at", "topic"], name: "activity_items_owner_id_type_created_at_topic"
30
+ add_index "activity_items", ["owner_id", "owner_type", "created_at"], name: "index_activity_items_on_owner_id_and_owner_type_and_created_at"
31
+
32
+ create_table "connections", force: true do |t|
33
+ t.integer "subscriber_id"
34
+ t.string "subscriber_type"
35
+ t.integer "publisher_id"
36
+ t.string "publisher_type"
37
+ t.string "topic"
38
+ t.datetime "created_at"
39
+ t.datetime "updated_at"
24
40
  end
25
41
 
26
- add_index "follows", ["followable_id", "followable_type"], :name => "fk_followables"
27
- add_index "follows", ["follower_id", "follower_type"], :name => "fk_follows"
42
+ add_index "connections", ["publisher_id", "publisher_type", "topic"], name: "index_connections_on_publisher_id_and_publisher_type_and_topic", unique: true
28
43
 
29
- create_table "pages", :force => true do |t|
44
+ create_table "pages", force: true do |t|
30
45
  t.string "title"
31
46
  t.text "body"
32
47
  t.integer "user_id"
33
- t.datetime "created_at", :null => false
34
- t.datetime "updated_at", :null => false
48
+ t.datetime "created_at"
49
+ t.datetime "updated_at"
35
50
  end
36
51
 
37
- create_table "permissions", :force => true do |t|
52
+ create_table "permissions", force: true do |t|
38
53
  t.string "permissor_type"
39
54
  t.integer "permissor_id"
40
55
  t.string "permissible_type"
41
56
  t.integer "permissible_id"
42
- t.string "relationship_type", :default => "none"
43
- t.datetime "created_at", :null => false
44
- t.datetime "updated_at", :null => false
57
+ t.string "relationship_type", default: "none"
58
+ t.datetime "created_at"
59
+ t.datetime "updated_at"
45
60
  end
46
61
 
47
- add_index "permissions", ["permissible_type", "permissible_id"], :name => "index_permissions_on_permissible_type_and_permissible_id"
48
- add_index "permissions", ["permissor_type", "permissor_id"], :name => "index_permissions_on_permissor_type_and_permissor_id"
62
+ add_index "permissions", ["permissible_type", "permissible_id"], name: "index_permissions_on_permissible_type_and_permissible_id"
63
+ add_index "permissions", ["permissor_type", "permissor_id"], name: "index_permissions_on_permissor_type_and_permissor_id"
49
64
 
50
- create_table "users", :force => true do |t|
65
+ create_table "users", force: true do |t|
51
66
  t.string "nickname"
52
- t.datetime "created_at", :null => false
53
- t.datetime "updated_at", :null => false
67
+ t.datetime "created_at"
68
+ t.datetime "updated_at"
54
69
  end
55
70
 
56
71
  end
Binary file
@@ -5,17 +5,6 @@ describe Permission do
5
5
  it { should belong_to(:permissor) }
6
6
  it { should belong_to(:permissible) }
7
7
 
8
- # Check accessible attributes
9
- it { should allow_mass_assignment_of(:permissible) }
10
- it { should allow_mass_assignment_of(:permissible_type) }
11
- it { should allow_mass_assignment_of(:permissible_id) }
12
- it { should allow_mass_assignment_of(:relationship_type) }
13
-
14
- # Check validations
15
- it { should validate_presence_of(:permissor) }
16
- it { should validate_presence_of(:permissible_type) }
17
- it { should validate_presence_of(:relationship_type) }
18
-
19
8
  describe 'Class Methods' do
20
9
  include_context 'permissions support'
21
10
 
data/spec/spec_helper.rb CHANGED
@@ -13,7 +13,7 @@ FactoryGirl.definition_file_paths = %w(spec/factories)
13
13
 
14
14
  require 'database_cleaner'
15
15
  require 'shoulda-matchers'
16
- require 'acts_as_follower'
16
+ require 'chalk_dust'
17
17
  require 'private_person'
18
18
 
19
19
  # Requires supporting files with custom matchers and macros, etc,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: private_person
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karen Lundgren
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: protected_attributes
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - '>='
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - '>='
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: rdoc
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -165,7 +151,7 @@ dependencies:
165
151
  - !ruby/object:Gem::Version
166
152
  version: '0'
167
153
  - !ruby/object:Gem::Dependency
168
- name: acts_as_follower
154
+ name: chalk_dust
169
155
  requirement: !ruby/object:Gem::Requirement
170
156
  requirements:
171
157
  - - '>='
@@ -209,7 +195,6 @@ files:
209
195
  - script/rails
210
196
  - spec/dummy/.rspec
211
197
  - spec/dummy/Rakefile
212
- - spec/dummy/app/models/follow.rb
213
198
  - spec/dummy/app/models/page.rb
214
199
  - spec/dummy/app/models/user.rb
215
200
  - spec/dummy/config.ru
@@ -229,10 +214,8 @@ files:
229
214
  - spec/dummy/config/locales/en.yml
230
215
  - spec/dummy/config/routes.rb
231
216
  - spec/dummy/db/development.sqlite3
232
- - spec/dummy/db/migrate/20130906211525_create_permissions_table.rb
233
217
  - spec/dummy/db/migrate/20130906213557_create_users_table.rb
234
218
  - spec/dummy/db/migrate/20130906213612_create_pages_table.rb
235
- - spec/dummy/db/migrate/20130907010108_acts_as_follower_migration.rb
236
219
  - spec/dummy/db/schema.rb
237
220
  - spec/dummy/db/test.sqlite3
238
221
  - spec/dummy/script/rails
@@ -1,16 +0,0 @@
1
- class Follow < ActiveRecord::Base
2
-
3
- attr_accessible :followable_type, :followable_id
4
-
5
- extend ActsAsFollower::FollowerLib
6
- extend ActsAsFollower::FollowScopes
7
-
8
- # NOTE: Follows belong to the "followable" interface, and also to followers
9
- belongs_to :followable, :polymorphic => true
10
- belongs_to :follower, :polymorphic => true
11
-
12
- def block!
13
- self.update_attribute(:blocked, true)
14
- end
15
-
16
- end
@@ -1,18 +0,0 @@
1
- class CreatePermissionsTable < ActiveRecord::Migration
2
- def self.up
3
- create_table :permissions do |t|
4
- t.string :permissor_type
5
- t.integer :permissor_id
6
- t.string :permissible_type
7
- t.integer :permissible_id
8
- t.string :relationship_type, :default => 'none'
9
- t.timestamps
10
- end
11
-
12
- add_index :permissions, [:permissor_type, :permissor_id]
13
- add_index :permissions, [:permissible_type, :permissible_id]
14
- end
15
- def self.down
16
- drop_table :permissions
17
- end
18
- end
@@ -1,17 +0,0 @@
1
- class ActsAsFollowerMigration < ActiveRecord::Migration
2
- def self.up
3
- create_table :follows, :force => true do |t|
4
- t.references :followable, :polymorphic => true, :null => false
5
- t.references :follower, :polymorphic => true, :null => false
6
- t.boolean :blocked, :default => false, :null => false
7
- t.timestamps
8
- end
9
-
10
- add_index :follows, ["follower_id", "follower_type"], :name => "fk_follows"
11
- add_index :follows, ["followable_id", "followable_type"], :name => "fk_followables"
12
- end
13
-
14
- def self.down
15
- drop_table :follows
16
- end
17
- end