acts_as_favoritor 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +8 -0
  3. data/.travis.yml +4 -0
  4. data/Gemfile +6 -0
  5. data/LICENSE +21 -0
  6. data/README.md +73 -0
  7. data/Rakefile +37 -0
  8. data/acts_as_favoritor.gemspec +29 -0
  9. data/init.rb +1 -0
  10. data/lib/acts_as_favoritor.rb +35 -0
  11. data/lib/acts_as_favoritor/favoritable.rb +115 -0
  12. data/lib/acts_as_favoritor/favorite_scopes.rb +45 -0
  13. data/lib/acts_as_favoritor/favoritor.rb +113 -0
  14. data/lib/acts_as_favoritor/favoritor_lib.rb +43 -0
  15. data/lib/acts_as_favoritor/railtie.rb +16 -0
  16. data/lib/acts_as_favoritor/version.rb +5 -0
  17. data/lib/generators/USAGE +5 -0
  18. data/lib/generators/acts_as_follower_generator.rb +28 -0
  19. data/lib/generators/templates/migration.rb.erb +18 -0
  20. data/lib/generators/templates/model.rb +16 -0
  21. data/test/README +24 -0
  22. data/test/acts_as_followable_test.rb +283 -0
  23. data/test/acts_as_follower_test.rb +224 -0
  24. data/test/dummy30/Gemfile +1 -0
  25. data/test/dummy30/Rakefile +7 -0
  26. data/test/dummy30/app/models/application_record.rb +3 -0
  27. data/test/dummy30/app/models/band.rb +4 -0
  28. data/test/dummy30/app/models/band/punk.rb +4 -0
  29. data/test/dummy30/app/models/band/punk/pop_punk.rb +4 -0
  30. data/test/dummy30/app/models/custom_record.rb +3 -0
  31. data/test/dummy30/app/models/some.rb +5 -0
  32. data/test/dummy30/app/models/user.rb +5 -0
  33. data/test/dummy30/config.ru +4 -0
  34. data/test/dummy30/config/application.rb +42 -0
  35. data/test/dummy30/config/boot.rb +10 -0
  36. data/test/dummy30/config/database.yml +6 -0
  37. data/test/dummy30/config/environment.rb +5 -0
  38. data/test/dummy30/config/environments/development.rb +18 -0
  39. data/test/dummy30/config/environments/test.rb +20 -0
  40. data/test/dummy30/config/initializers/backtrace_silencers.rb +7 -0
  41. data/test/dummy30/config/initializers/inflections.rb +10 -0
  42. data/test/dummy30/config/initializers/secret_token.rb +7 -0
  43. data/test/dummy30/config/initializers/session_store.rb +8 -0
  44. data/test/dummy30/config/locales/en.yml +5 -0
  45. data/test/dummy30/config/routes.rb +2 -0
  46. data/test/factories/bands.rb +17 -0
  47. data/test/factories/somes.rb +9 -0
  48. data/test/factories/users.rb +13 -0
  49. data/test/follow_test.rb +28 -0
  50. data/test/schema.rb +25 -0
  51. data/test/test_helper.rb +18 -0
  52. metadata +181 -0
@@ -0,0 +1,2 @@
1
+ Dummy::Application.routes.draw do
2
+ end
@@ -0,0 +1,17 @@
1
+ FactoryGirl.define do
2
+ factory :oasis, class: Band do |b|
3
+ b.name 'Oasis'
4
+ end
5
+
6
+ factory :metallica, class: Band do |b|
7
+ b.name 'Metallica'
8
+ end
9
+
10
+ factory :green_day, class: Band::Punk do |b|
11
+ b.name 'Green Day'
12
+ end
13
+
14
+ factory :blink_182, class: Band::Punk::PopPunk do |b|
15
+ b.name 'Blink 182'
16
+ end
17
+ end
@@ -0,0 +1,9 @@
1
+ FactoryGirl.define do
2
+ factory :daddy, class: Some do |b|
3
+ b.name 'Daddy'
4
+ end
5
+
6
+ factory :mommy, class: Some do |b|
7
+ b.name 'Mommy'
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ FactoryGirl.define do
2
+ factory :jon, class: User do |u|
3
+ u.name 'Jon'
4
+ end
5
+
6
+ factory :sam, class: User do |u|
7
+ u.name 'Sam'
8
+ end
9
+
10
+ factory :bob, class: User do |u|
11
+ u.name 'Bob'
12
+ end
13
+ end
@@ -0,0 +1,28 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ class FollowTest < ActiveSupport::TestCase
4
+
5
+ # Replace with real tests
6
+ def test_assert_true_should_be_true
7
+ assert true
8
+ end
9
+
10
+ context "configuration with setters" do
11
+ should "contain custom parents" do
12
+ ActsAsFollower.custom_parent_classes = [CustomRecord]
13
+
14
+ assert_equal [CustomRecord], ActsAsFollower.custom_parent_classes
15
+ end
16
+ end
17
+
18
+ context "#setup" do
19
+ should "contain custom parents via setup" do
20
+ ActsAsFollower.setup do |c|
21
+ c.custom_parent_classes = [CustomRecord]
22
+ end
23
+
24
+ assert_equal [CustomRecord], ActsAsFollower.custom_parent_classes
25
+ end
26
+ end
27
+
28
+ end
data/test/schema.rb ADDED
@@ -0,0 +1,25 @@
1
+ ActiveRecord::Schema.define version: 0 do
2
+
3
+ create_table :follows, force: true do |t|
4
+ t.integer 'followable_id', null: false
5
+ t.string 'followable_type', null: false
6
+ t.integer 'follower_id', null: false
7
+ t.string 'follower_type', null: false
8
+ t.boolean 'blocked', default: false, null: false
9
+ t.datetime 'created_at'
10
+ t.datetime 'updated_at'
11
+ end
12
+
13
+ create_table :users, force: true do |t|
14
+ t.column :name, :string
15
+ end
16
+
17
+ create_table :bands, force: true do |t|
18
+ t.column :name, :string
19
+ end
20
+
21
+ create_table :somes, force: true do |t|
22
+ t.column :name, :string
23
+ end
24
+
25
+ end
@@ -0,0 +1,18 @@
1
+ # Configure Rails Envinronment
2
+ ENV['RAILS_ENV'] = 'test'
3
+
4
+ require File.expand_path '../dummy30/config/environment.rb', __FILE__
5
+ require 'rails/test_help'
6
+
7
+ ActiveRecord::Base.logger = Logger.new File.dirname(__FILE__) + '/debug.log'
8
+ ActiveRecord::Migration.verbose = false
9
+
10
+ load File.dirname(__FILE__) + '/schema.rb'
11
+
12
+ require File.dirname(__FILE__) + '/../lib/generators/templates/model.rb'
13
+
14
+ require 'shoulda'
15
+ require 'shoulda_create'
16
+ require 'factory_girl'
17
+ ActiveSupport::TestCase.extend ShouldaCreate
18
+ FactoryGirl.find_definitions
metadata ADDED
@@ -0,0 +1,181 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: acts_as_favoritor
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Jonas Hübotter
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-08-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activerecord
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '4.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '4.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: sqlite3
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: shoulda_create
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: shoulda
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: factory_girl
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '4'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '4'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '4.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '4.0'
97
+ description: acts_as_favoritor is a Rubygem to allow any ActiveRecord model to favorite
98
+ any other model. This is accomplished through a double polymorphic relationship
99
+ on the Favorite model. There is also built in support for blocking/un-blocking favorite
100
+ records.
101
+ email:
102
+ - developer@slooob.com
103
+ executables: []
104
+ extensions: []
105
+ extra_rdoc_files: []
106
+ files:
107
+ - ".gitignore"
108
+ - ".travis.yml"
109
+ - Gemfile
110
+ - LICENSE
111
+ - README.md
112
+ - Rakefile
113
+ - acts_as_favoritor.gemspec
114
+ - init.rb
115
+ - lib/acts_as_favoritor.rb
116
+ - lib/acts_as_favoritor/favoritable.rb
117
+ - lib/acts_as_favoritor/favorite_scopes.rb
118
+ - lib/acts_as_favoritor/favoritor.rb
119
+ - lib/acts_as_favoritor/favoritor_lib.rb
120
+ - lib/acts_as_favoritor/railtie.rb
121
+ - lib/acts_as_favoritor/version.rb
122
+ - lib/generators/USAGE
123
+ - lib/generators/acts_as_follower_generator.rb
124
+ - lib/generators/templates/migration.rb.erb
125
+ - lib/generators/templates/model.rb
126
+ - test/README
127
+ - test/acts_as_followable_test.rb
128
+ - test/acts_as_follower_test.rb
129
+ - test/dummy30/Gemfile
130
+ - test/dummy30/Rakefile
131
+ - test/dummy30/app/models/application_record.rb
132
+ - test/dummy30/app/models/band.rb
133
+ - test/dummy30/app/models/band/punk.rb
134
+ - test/dummy30/app/models/band/punk/pop_punk.rb
135
+ - test/dummy30/app/models/custom_record.rb
136
+ - test/dummy30/app/models/some.rb
137
+ - test/dummy30/app/models/user.rb
138
+ - test/dummy30/config.ru
139
+ - test/dummy30/config/application.rb
140
+ - test/dummy30/config/boot.rb
141
+ - test/dummy30/config/database.yml
142
+ - test/dummy30/config/environment.rb
143
+ - test/dummy30/config/environments/development.rb
144
+ - test/dummy30/config/environments/test.rb
145
+ - test/dummy30/config/initializers/backtrace_silencers.rb
146
+ - test/dummy30/config/initializers/inflections.rb
147
+ - test/dummy30/config/initializers/secret_token.rb
148
+ - test/dummy30/config/initializers/session_store.rb
149
+ - test/dummy30/config/locales/en.yml
150
+ - test/dummy30/config/routes.rb
151
+ - test/factories/bands.rb
152
+ - test/factories/somes.rb
153
+ - test/factories/users.rb
154
+ - test/follow_test.rb
155
+ - test/schema.rb
156
+ - test/test_helper.rb
157
+ homepage: https://github.com/slooob/acts_as_favoritor
158
+ licenses:
159
+ - MIT
160
+ metadata: {}
161
+ post_install_message:
162
+ rdoc_options: []
163
+ require_paths:
164
+ - lib
165
+ required_ruby_version: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
170
+ required_rubygems_version: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ requirements: []
176
+ rubyforge_project: acts_as_follower
177
+ rubygems_version: 2.6.12
178
+ signing_key:
179
+ specification_version: 4
180
+ summary: A Rubygem to add Favorite functionality for ActiveRecord models
181
+ test_files: []