acts_as_votable 0.11.1 → 0.12.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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +6 -2
- data/Appraisals +6 -2
- data/{README.markdown → README.md} +31 -62
- data/acts_as_votable.gemspec +1 -1
- data/gemfiles/rails_4.gemfile +1 -1
- data/gemfiles/rails_5.gemfile +1 -1
- data/gemfiles/rails_5_2.gemfile +7 -0
- data/lib/acts_as_votable/version.rb +1 -1
- data/lib/acts_as_votable/votable.rb +38 -23
- data/lib/acts_as_votable/voter.rb +3 -3
- data/spec/factories/votable.rb +1 -1
- data/spec/factories/votable_cache.rb +1 -1
- data/spec/factories/votable_cache_update_attributes.rb +1 -1
- data/spec/factories/votable_cache_update_columns.rb +1 -1
- data/spec/factories/votable_child_of_sti_not_votable.rb +1 -1
- data/spec/factories/votable_child_of_sti_votable.rb +1 -1
- data/spec/factories/votable_voter.rb +1 -1
- data/spec/factories/vote.rb +1 -1
- data/spec/factories/voter.rb +1 -1
- data/spec/shared_example/votable_model.rb +36 -0
- data/spec/spec_helper.rb +1 -1
- data/spec/support/factory_bot.rb +9 -0
- metadata +26 -10
- data/gemfiles/rails_4.gemfile.lock +0 -159
- data/gemfiles/rails_5.gemfile.lock +0 -166
- data/gemfiles/rails_5_1.gemfile.lock +0 -166
- data/spec/support/factory_girl.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 258ed9d5171cee8f3a41d52f1895e11ebc3ed486
|
4
|
+
data.tar.gz: 4a291c5c9a5b370f83525e050a20807a8730d8d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b98afcd423073489cc548d87b0c941d792f697e789b87471eef7b82bc96b2e8d6c6d5cc68ff431942a9bc9c7ba6c242557f6b244ee3eef98168bb1df8f2c4846
|
7
|
+
data.tar.gz: 5f9e29f5e7208a21293cf20122c2d8291064a4ea99e15fd499ae207b98e6e9f9ff0d0694fcb54a1ebeb339fee1526041691657685037016fea6258a01f697563
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -3,12 +3,16 @@ language: ruby
|
|
3
3
|
cache: bundler
|
4
4
|
|
5
5
|
rvm:
|
6
|
-
- 2.2.7
|
7
6
|
- 2.3.4
|
8
|
-
- 2.4.
|
7
|
+
- 2.4.2
|
8
|
+
- 2.5.1
|
9
|
+
|
10
|
+
before_install:
|
11
|
+
- gem update --system
|
9
12
|
|
10
13
|
gemfile:
|
11
14
|
- gemfiles/rails_4.gemfile
|
12
15
|
- gemfiles/rails_5.gemfile
|
13
16
|
- gemfiles/rails_5_1.gemfile
|
17
|
+
- gemfiles/rails_5_2.gemfile
|
14
18
|
|
data/Appraisals
CHANGED
@@ -1,13 +1,17 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
appraise "rails-4" do
|
4
|
-
gem "rails", "4.2.
|
4
|
+
gem "rails", "4.2.10"
|
5
5
|
end
|
6
6
|
|
7
7
|
appraise "rails-5" do
|
8
|
-
gem "rails", "5.0.
|
8
|
+
gem "rails", "5.0.6"
|
9
9
|
end
|
10
10
|
|
11
11
|
appraise "rails-5-1" do
|
12
12
|
gem "rails", "5.1.4"
|
13
13
|
end
|
14
|
+
|
15
|
+
appraise "rails-5-2" do
|
16
|
+
gem "rails", "5.2.0"
|
17
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# Acts As Votable (aka Acts As Likeable)
|
2
2
|
|
3
|
-
[](https://travis-ci.org/ryanto/acts_as_votable)
|
4
4
|
[](https://codeclimate.com/github/ryanto/acts_as_votable)
|
5
5
|
|
6
6
|
Acts As Votable is a Ruby Gem specifically written for Rails/ActiveRecord models.
|
@@ -16,16 +16,15 @@ The main goals of this gem are:
|
|
16
16
|
|
17
17
|
### Supported Ruby and Rails versions
|
18
18
|
|
19
|
-
* Ruby
|
20
|
-
* Rails
|
21
|
-
* Rails 5.0, 5.1
|
19
|
+
* Ruby >= 2.3.0
|
20
|
+
* Rails >= 4
|
22
21
|
|
23
22
|
### Install
|
24
23
|
|
25
24
|
Just add the following to your Gemfile to install the latest release.
|
26
25
|
|
27
26
|
```ruby
|
28
|
-
gem 'acts_as_votable', '~> 0.
|
27
|
+
gem 'acts_as_votable', '~> 0.12.0'
|
29
28
|
```
|
30
29
|
|
31
30
|
And follow that up with a ``bundle install``.
|
@@ -312,35 +311,20 @@ to speed up @post we would use the following migration:
|
|
312
311
|
|
313
312
|
```ruby
|
314
313
|
class AddCachedVotesToPosts < ActiveRecord::Migration
|
315
|
-
def
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
add_index :posts, :cached_votes_up
|
326
|
-
add_index :posts, :cached_votes_down
|
327
|
-
add_index :posts, :cached_weighted_score
|
328
|
-
add_index :posts, :cached_weighted_total
|
329
|
-
add_index :posts, :cached_weighted_average
|
314
|
+
def change
|
315
|
+
change_table :posts do |t|
|
316
|
+
t.integer :cached_votes_total, default: 0
|
317
|
+
t.integer :cached_votes_score, default: 0
|
318
|
+
t.integer :cached_votes_up, default: 0
|
319
|
+
t.integer :cached_votes_down, default: 0
|
320
|
+
t.integer :cached_weighted_score, default: 0
|
321
|
+
t.integer :cached_weighted_total, default: 0
|
322
|
+
t.float :cached_weighted_average, default: 0.0
|
323
|
+
end
|
330
324
|
|
331
325
|
# Uncomment this line to force caching of existing votes
|
332
326
|
# Post.find_each(&:update_cached_votes)
|
333
327
|
end
|
334
|
-
|
335
|
-
def self.down
|
336
|
-
remove_column :posts, :cached_votes_total
|
337
|
-
remove_column :posts, :cached_votes_score
|
338
|
-
remove_column :posts, :cached_votes_up
|
339
|
-
remove_column :posts, :cached_votes_down
|
340
|
-
remove_column :posts, :cached_weighted_score
|
341
|
-
remove_column :posts, :cached_weighted_total
|
342
|
-
remove_column :posts, :cached_weighted_average
|
343
|
-
end
|
344
328
|
end
|
345
329
|
```
|
346
330
|
|
@@ -348,36 +332,21 @@ If you have a scope for your vote, let's say `subscribe`, your migration will be
|
|
348
332
|
|
349
333
|
```ruby
|
350
334
|
class AddCachedVotesToPosts < ActiveRecord::Migration
|
351
|
-
def
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
add_index :posts, :cached_scoped_subscribe_votes_up
|
362
|
-
add_index :posts, :cached_scoped_subscribe_votes_down
|
363
|
-
add_index :posts, :cached_weighted_subscribe_score
|
364
|
-
add_index :posts, :cached_weighted_subscribe_total
|
365
|
-
add_index :posts, :cached_weighted_subscribe_average
|
366
|
-
end
|
367
|
-
|
368
|
-
def self.down
|
369
|
-
remove_column :posts, :cached_scoped_subscribe_votes_total
|
370
|
-
remove_column :posts, :cached_scoped_subscribe_votes_score
|
371
|
-
remove_column :posts, :cached_scoped_subscribe_votes_up
|
372
|
-
remove_column :posts, :cached_scoped_subscribe_votes_down
|
373
|
-
remove_column :posts, :cached_weighted_subscribe_score
|
374
|
-
remove_column :posts, :cached_weighted_subscribe_total
|
375
|
-
remove_column :posts, :cached_weighted_subscribe_average
|
335
|
+
def change
|
336
|
+
change_table :posts do |t|
|
337
|
+
t.integer :cached_scoped_subscribe_votes_total, default: 0
|
338
|
+
t.integer :cached_scoped_subscribe_votes_score, default: 0
|
339
|
+
t.integer :cached_scoped_subscribe_votes_up, default: 0
|
340
|
+
t.integer :cached_scoped_subscribe_votes_down, default: 0
|
341
|
+
t.integer :cached_weighted_subscribe_score, default: 0
|
342
|
+
t.integer :cached_weighted_subscribe_total, default: 0
|
343
|
+
t.float :cached_weighted_subscribe_average, default: 0.0
|
344
|
+
end
|
376
345
|
end
|
377
346
|
end
|
378
347
|
```
|
379
348
|
|
380
|
-
`cached_weighted_average` can be helpful for a rating system, e.g.:
|
349
|
+
`cached_weighted_average` can be helpful for a rating system, e.g.:
|
381
350
|
|
382
351
|
Order by average rating:
|
383
352
|
|
@@ -416,20 +385,20 @@ They can be run with:
|
|
416
385
|
rake spec
|
417
386
|
```
|
418
387
|
|
419
|
-
## Changes
|
388
|
+
## Changes
|
420
389
|
|
421
|
-
### Fixes for votable voter model
|
390
|
+
### Fixes for votable voter model
|
422
391
|
|
423
|
-
In version 0.8.0, there are bugs for a model that is both votable and voter.
|
392
|
+
In version 0.8.0, there are bugs for a model that is both votable and voter.
|
424
393
|
Some name-conflicting methods are renamed:
|
425
|
-
+ Renamed Votable.votes to votes_for
|
394
|
+
+ Renamed Votable.votes to votes_for
|
426
395
|
+ Renamed Votable.vote to vote_by,
|
427
396
|
+ Removed Votable.vote_by alias (was an alias for :vote_up)
|
428
397
|
+ Renamed Votable.unvote_for to unvote_by
|
429
398
|
+ Renamed Votable.find_votes to find_votes_for
|
430
|
-
+ Renamed Votable.up_votes to get_upvotes
|
399
|
+
+ Renamed Votable.up_votes to get_upvotes
|
431
400
|
+ and its aliases :get_true_votes, :get_ups, :get_upvotes, :get_likes, :get_positives, :get_for_votes
|
432
|
-
+ Renamed Votable.down_votes to get_downvotes
|
401
|
+
+ Renamed Votable.down_votes to get_downvotes
|
433
402
|
+ and its aliases :get_false_votes, :get_downs, :get_downvotes, :get_dislikes, :get_negatives
|
434
403
|
|
435
404
|
|
data/acts_as_votable.gemspec
CHANGED
@@ -27,5 +27,5 @@ Gem::Specification.new do |s|
|
|
27
27
|
s.add_development_dependency "rubocop", "~> 0.49.1"
|
28
28
|
s.add_development_dependency "simplecov", "~> 0.15.0"
|
29
29
|
s.add_development_dependency "appraisal", "~> 2.2"
|
30
|
-
s.add_development_dependency "
|
30
|
+
s.add_development_dependency "factory_bot", "~> 4.8"
|
31
31
|
end
|
data/gemfiles/rails_4.gemfile
CHANGED
data/gemfiles/rails_5.gemfile
CHANGED
@@ -65,23 +65,16 @@ module ActsAsVotable
|
|
65
65
|
|
66
66
|
# voting
|
67
67
|
def vote_by(args = {})
|
68
|
-
|
69
|
-
vote: true,
|
70
|
-
vote_scope: nil
|
71
|
-
}.merge(args)
|
68
|
+
return false if args[:voter].nil?
|
72
69
|
|
73
|
-
|
70
|
+
options = { vote: true, vote_scope: nil }.merge(args)
|
74
71
|
|
75
|
-
|
76
|
-
return false
|
77
|
-
end
|
72
|
+
self.vote_registered = false
|
78
73
|
|
79
74
|
# find the vote
|
80
|
-
votes =
|
81
|
-
vote_scope: options[:vote_scope],
|
82
|
-
voter_type: options[:voter].class.base_class.name)
|
75
|
+
votes = find_votes_by(options[:voter], options[:vote_scope])
|
83
76
|
|
84
|
-
if votes.
|
77
|
+
if votes.empty? || options[:duplicate]
|
85
78
|
# this voter has never voted
|
86
79
|
vote = ActsAsVotable::Vote.new(
|
87
80
|
votable: self,
|
@@ -100,24 +93,26 @@ module ActsAsVotable
|
|
100
93
|
#Allowing for a vote_weight to be associated with every vote. Could change with every voter object
|
101
94
|
vote.vote_weight = (options[:vote_weight].to_i if options[:vote_weight].present?) || 1
|
102
95
|
|
103
|
-
|
96
|
+
ActiveRecord::Base.transaction do
|
97
|
+
self.vote_registered = false
|
98
|
+
return false unless vote.save
|
99
|
+
|
104
100
|
self.vote_registered = true if last_update != vote.updated_at
|
105
|
-
update_cached_votes
|
101
|
+
update_cached_votes(options[:vote_scope])
|
106
102
|
return true
|
107
|
-
else
|
108
|
-
self.vote_registered = false
|
109
|
-
return false
|
110
103
|
end
|
111
104
|
end
|
112
105
|
|
113
106
|
def unvote(args = {})
|
114
107
|
return false if args[:voter].nil?
|
115
|
-
votes =
|
108
|
+
votes = find_votes_by(args[:voter], args[:vote_scope])
|
116
109
|
|
117
|
-
return true if votes.
|
118
|
-
|
119
|
-
|
120
|
-
|
110
|
+
return true if votes.empty?
|
111
|
+
ActiveRecord::Base.transaction do
|
112
|
+
votes.each(&:destroy)
|
113
|
+
update_cached_votes args[:vote_scope]
|
114
|
+
end
|
115
|
+
self.vote_registered = false if votes_for.empty?
|
121
116
|
return true
|
122
117
|
end
|
123
118
|
|
@@ -138,6 +133,12 @@ module ActsAsVotable
|
|
138
133
|
votes_for.where(extra_conditions)
|
139
134
|
end
|
140
135
|
|
136
|
+
def find_votes_by(voter, vote_scope)
|
137
|
+
find_votes_for(voter_id: voter.id,
|
138
|
+
vote_scope: vote_scope,
|
139
|
+
voter_type: voter.class.base_class.name)
|
140
|
+
end
|
141
|
+
|
141
142
|
def get_up_votes(options = {})
|
142
143
|
vote_scope_hash = scope_or_empty_hash(options[:vote_scope])
|
143
144
|
find_votes_for({ vote_flag: true }.merge(vote_scope_hash))
|
@@ -151,7 +152,21 @@ module ActsAsVotable
|
|
151
152
|
# voters
|
152
153
|
def voted_on_by?(voter)
|
153
154
|
votes = find_votes_for voter_id: voter.id, voter_type: voter.class.base_class.name
|
154
|
-
votes.
|
155
|
+
votes.exists?
|
156
|
+
end
|
157
|
+
|
158
|
+
def voted_up_by?(voter)
|
159
|
+
votes = find_votes_for(voter_id: voter.id,
|
160
|
+
vote_flag: true,
|
161
|
+
voter_type: voter.class.base_class.name)
|
162
|
+
votes.exists?
|
163
|
+
end
|
164
|
+
|
165
|
+
def voted_down_by?(voter)
|
166
|
+
votes = find_votes_for(voter_id: voter.id,
|
167
|
+
vote_flag: false,
|
168
|
+
voter_type: voter.class.base_class.name)
|
169
|
+
votes.exists?
|
155
170
|
end
|
156
171
|
|
157
172
|
private
|
@@ -54,19 +54,19 @@ module ActsAsVotable
|
|
54
54
|
def voted_on?(votable, args = {})
|
55
55
|
votes = find_votes(votable_id: votable.id, votable_type: votable.class.base_class.name,
|
56
56
|
vote_scope: args[:vote_scope])
|
57
|
-
votes.
|
57
|
+
votes.exists?
|
58
58
|
end
|
59
59
|
|
60
60
|
def voted_up_on?(votable, args = {})
|
61
61
|
votes = find_votes(votable_id: votable.id, votable_type: votable.class.base_class.name,
|
62
62
|
vote_scope: args[:vote_scope], vote_flag: true)
|
63
|
-
votes.
|
63
|
+
votes.exists?
|
64
64
|
end
|
65
65
|
|
66
66
|
def voted_down_on?(votable, args = {})
|
67
67
|
votes = find_votes(votable_id: votable.id, votable_type: votable.class.base_class.name,
|
68
68
|
vote_scope: args[:vote_scope], vote_flag: false)
|
69
|
-
votes.
|
69
|
+
votes.exists?
|
70
70
|
end
|
71
71
|
|
72
72
|
def voted_as_when_voting_on(votable, args = {})
|
data/spec/factories/votable.rb
CHANGED
data/spec/factories/vote.rb
CHANGED
data/spec/factories/voter.rb
CHANGED
@@ -106,6 +106,16 @@ shared_examples "a votable_model" do
|
|
106
106
|
expect(votable.voted_on_by?(voter)).to be false
|
107
107
|
end
|
108
108
|
|
109
|
+
it "should be voted up by a voter" do
|
110
|
+
votable.liked_by voter
|
111
|
+
expect(votable.voted_up_by?(voter)).to be true
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should be voted down by a voter" do
|
115
|
+
votable.disliked_by voter
|
116
|
+
expect(votable.voted_down_by?(voter)).to be true
|
117
|
+
end
|
118
|
+
|
109
119
|
it "should unvote a positive vote" do
|
110
120
|
votable.vote_by voter: voter
|
111
121
|
votable.unvote voter: voter
|
@@ -163,6 +173,32 @@ shared_examples "a votable_model" do
|
|
163
173
|
expect(votable_cache.cached_votes_total).to eq(1)
|
164
174
|
end
|
165
175
|
|
176
|
+
describe "with ActiveRecord::StaleObjectError" do
|
177
|
+
it "should rollback vote up if cache update fails" do
|
178
|
+
votable_cache.cached_votes_total = 50
|
179
|
+
expect(votable_cache)
|
180
|
+
.to(receive(:update_cached_votes)
|
181
|
+
.and_raise(ActiveRecord::StaleObjectError.new(votable_cache, "update")))
|
182
|
+
|
183
|
+
expect { votable_cache.vote_by voter: voter }.to raise_error ActiveRecord::StaleObjectError
|
184
|
+
expect(votable_cache.cached_votes_total).to eq(50)
|
185
|
+
expect(votable_cache.voted_on_by?(voter)).to be false
|
186
|
+
end
|
187
|
+
|
188
|
+
it "should rollback unvote if cache update fails" do
|
189
|
+
votable_cache.vote_by voter: voter, vote: "true"
|
190
|
+
|
191
|
+
expect(votable_cache)
|
192
|
+
.to(receive(:update_cached_votes)
|
193
|
+
.and_raise(ActiveRecord::StaleObjectError.new(votable_cache, "update")))
|
194
|
+
|
195
|
+
expect { votable_cache.unvote voter: voter }.to raise_error ActiveRecord::StaleObjectError
|
196
|
+
|
197
|
+
expect(votable_cache.cached_votes_total).to eq(1)
|
198
|
+
expect(votable_cache.voted_on_by?(voter)).to be true
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
166
202
|
it "should update cached total votes_for when a vote up is removed" do
|
167
203
|
votable_cache.vote_by voter: voter, vote: "true"
|
168
204
|
votable_cache.unvote voter: voter
|
data/spec/spec_helper.rb
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH << File.join(File.dirname(__FILE__), "..", "lib")
|
|
4
4
|
require "sqlite3"
|
5
5
|
require "simplecov"
|
6
6
|
require "acts_as_votable"
|
7
|
-
require "
|
7
|
+
require "factory_bot"
|
8
8
|
|
9
9
|
Dir["./spec/shared_example/**/*.rb"].sort.each { |f| require f }
|
10
10
|
Dir["./spec/support/**/*.rb"].sort.each { |f| require f }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_votable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -81,7 +81,7 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '2.2'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: factory_bot
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
@@ -106,16 +106,14 @@ files:
|
|
106
106
|
- ".travis.yml"
|
107
107
|
- Appraisals
|
108
108
|
- Gemfile
|
109
|
-
- README.
|
109
|
+
- README.md
|
110
110
|
- Rakefile
|
111
111
|
- acts_as_votable.gemspec
|
112
112
|
- gemfiles/.bundle/config
|
113
113
|
- gemfiles/rails_4.gemfile
|
114
|
-
- gemfiles/rails_4.gemfile.lock
|
115
114
|
- gemfiles/rails_5.gemfile
|
116
|
-
- gemfiles/rails_5.gemfile.lock
|
117
115
|
- gemfiles/rails_5_1.gemfile
|
118
|
-
- gemfiles/
|
116
|
+
- gemfiles/rails_5_2.gemfile
|
119
117
|
- lib/acts_as_votable.rb
|
120
118
|
- lib/acts_as_votable/cacheable.rb
|
121
119
|
- lib/acts_as_votable/extenders/controller.rb
|
@@ -141,7 +139,7 @@ files:
|
|
141
139
|
- spec/shared_example/votable_model.rb
|
142
140
|
- spec/shared_example/voter_model.rb
|
143
141
|
- spec/spec_helper.rb
|
144
|
-
- spec/support/
|
142
|
+
- spec/support/factory_bot.rb
|
145
143
|
- spec/votable_spec.rb
|
146
144
|
- spec/votable_voter_spec.rb
|
147
145
|
- spec/voter_spec.rb
|
@@ -166,8 +164,26 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
164
|
version: '0'
|
167
165
|
requirements: []
|
168
166
|
rubyforge_project: acts_as_votable
|
169
|
-
rubygems_version: 2.
|
167
|
+
rubygems_version: 2.4.5.1
|
170
168
|
signing_key:
|
171
169
|
specification_version: 4
|
172
170
|
summary: Rails gem to allowing records to be votable
|
173
|
-
test_files:
|
171
|
+
test_files:
|
172
|
+
- spec/factories/votable.rb
|
173
|
+
- spec/factories/votable_cache.rb
|
174
|
+
- spec/factories/votable_cache_update_attributes.rb
|
175
|
+
- spec/factories/votable_cache_update_columns.rb
|
176
|
+
- spec/factories/votable_child_of_sti_not_votable.rb
|
177
|
+
- spec/factories/votable_child_of_sti_votable.rb
|
178
|
+
- spec/factories/votable_voter.rb
|
179
|
+
- spec/factories/vote.rb
|
180
|
+
- spec/factories/voter.rb
|
181
|
+
- spec/generators/active_record_generator_spec.rb
|
182
|
+
- spec/shared_example/votable_model.rb
|
183
|
+
- spec/shared_example/voter_model.rb
|
184
|
+
- spec/spec_helper.rb
|
185
|
+
- spec/support/factory_bot.rb
|
186
|
+
- spec/votable_spec.rb
|
187
|
+
- spec/votable_voter_spec.rb
|
188
|
+
- spec/voter_spec.rb
|
189
|
+
- spec/words_spec.rb
|
@@ -1,159 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: ..
|
3
|
-
specs:
|
4
|
-
acts_as_votable (0.11.0)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: https://rubygems.org/
|
8
|
-
specs:
|
9
|
-
actionmailer (4.2.9)
|
10
|
-
actionpack (= 4.2.9)
|
11
|
-
actionview (= 4.2.9)
|
12
|
-
activejob (= 4.2.9)
|
13
|
-
mail (~> 2.5, >= 2.5.4)
|
14
|
-
rails-dom-testing (~> 1.0, >= 1.0.5)
|
15
|
-
actionpack (4.2.9)
|
16
|
-
actionview (= 4.2.9)
|
17
|
-
activesupport (= 4.2.9)
|
18
|
-
rack (~> 1.6)
|
19
|
-
rack-test (~> 0.6.2)
|
20
|
-
rails-dom-testing (~> 1.0, >= 1.0.5)
|
21
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
22
|
-
actionview (4.2.9)
|
23
|
-
activesupport (= 4.2.9)
|
24
|
-
builder (~> 3.1)
|
25
|
-
erubis (~> 2.7.0)
|
26
|
-
rails-dom-testing (~> 1.0, >= 1.0.5)
|
27
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
28
|
-
activejob (4.2.9)
|
29
|
-
activesupport (= 4.2.9)
|
30
|
-
globalid (>= 0.3.0)
|
31
|
-
activemodel (4.2.9)
|
32
|
-
activesupport (= 4.2.9)
|
33
|
-
builder (~> 3.1)
|
34
|
-
activerecord (4.2.9)
|
35
|
-
activemodel (= 4.2.9)
|
36
|
-
activesupport (= 4.2.9)
|
37
|
-
arel (~> 6.0)
|
38
|
-
activesupport (4.2.9)
|
39
|
-
i18n (~> 0.7)
|
40
|
-
minitest (~> 5.1)
|
41
|
-
thread_safe (~> 0.3, >= 0.3.4)
|
42
|
-
tzinfo (~> 1.1)
|
43
|
-
appraisal (2.2.0)
|
44
|
-
bundler
|
45
|
-
rake
|
46
|
-
thor (>= 0.14.0)
|
47
|
-
arel (6.0.4)
|
48
|
-
ast (2.3.0)
|
49
|
-
builder (3.2.3)
|
50
|
-
concurrent-ruby (1.0.5)
|
51
|
-
diff-lcs (1.3)
|
52
|
-
docile (1.1.5)
|
53
|
-
erubis (2.7.0)
|
54
|
-
factory_girl (4.8.0)
|
55
|
-
activesupport (>= 3.0.0)
|
56
|
-
globalid (0.4.0)
|
57
|
-
activesupport (>= 4.2.0)
|
58
|
-
i18n (0.8.6)
|
59
|
-
json (2.1.0)
|
60
|
-
loofah (2.0.3)
|
61
|
-
nokogiri (>= 1.5.9)
|
62
|
-
mail (2.6.6)
|
63
|
-
mime-types (>= 1.16, < 4)
|
64
|
-
mime-types (3.1)
|
65
|
-
mime-types-data (~> 3.2015)
|
66
|
-
mime-types-data (3.2016.0521)
|
67
|
-
mini_portile2 (2.2.0)
|
68
|
-
minitest (5.10.3)
|
69
|
-
nokogiri (1.8.0)
|
70
|
-
mini_portile2 (~> 2.2.0)
|
71
|
-
parallel (1.12.0)
|
72
|
-
parser (2.4.0.0)
|
73
|
-
ast (~> 2.2)
|
74
|
-
powerpack (0.1.1)
|
75
|
-
rack (1.6.8)
|
76
|
-
rack-test (0.6.3)
|
77
|
-
rack (>= 1.0)
|
78
|
-
rails (4.2.9)
|
79
|
-
actionmailer (= 4.2.9)
|
80
|
-
actionpack (= 4.2.9)
|
81
|
-
actionview (= 4.2.9)
|
82
|
-
activejob (= 4.2.9)
|
83
|
-
activemodel (= 4.2.9)
|
84
|
-
activerecord (= 4.2.9)
|
85
|
-
activesupport (= 4.2.9)
|
86
|
-
bundler (>= 1.3.0, < 2.0)
|
87
|
-
railties (= 4.2.9)
|
88
|
-
sprockets-rails
|
89
|
-
rails-deprecated_sanitizer (1.0.3)
|
90
|
-
activesupport (>= 4.2.0.alpha)
|
91
|
-
rails-dom-testing (1.0.8)
|
92
|
-
activesupport (>= 4.2.0.beta, < 5.0)
|
93
|
-
nokogiri (~> 1.6)
|
94
|
-
rails-deprecated_sanitizer (>= 1.0.1)
|
95
|
-
rails-html-sanitizer (1.0.3)
|
96
|
-
loofah (~> 2.0)
|
97
|
-
railties (4.2.9)
|
98
|
-
actionpack (= 4.2.9)
|
99
|
-
activesupport (= 4.2.9)
|
100
|
-
rake (>= 0.8.7)
|
101
|
-
thor (>= 0.18.1, < 2.0)
|
102
|
-
rainbow (2.2.2)
|
103
|
-
rake
|
104
|
-
rake (12.0.0)
|
105
|
-
rspec (3.6.0)
|
106
|
-
rspec-core (~> 3.6.0)
|
107
|
-
rspec-expectations (~> 3.6.0)
|
108
|
-
rspec-mocks (~> 3.6.0)
|
109
|
-
rspec-core (3.6.0)
|
110
|
-
rspec-support (~> 3.6.0)
|
111
|
-
rspec-expectations (3.6.0)
|
112
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
113
|
-
rspec-support (~> 3.6.0)
|
114
|
-
rspec-mocks (3.6.0)
|
115
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
116
|
-
rspec-support (~> 3.6.0)
|
117
|
-
rspec-support (3.6.0)
|
118
|
-
rubocop (0.49.1)
|
119
|
-
parallel (~> 1.10)
|
120
|
-
parser (>= 2.3.3.1, < 3.0)
|
121
|
-
powerpack (~> 0.1)
|
122
|
-
rainbow (>= 1.99.1, < 3.0)
|
123
|
-
ruby-progressbar (~> 1.7)
|
124
|
-
unicode-display_width (~> 1.0, >= 1.0.1)
|
125
|
-
ruby-progressbar (1.8.1)
|
126
|
-
simplecov (0.15.0)
|
127
|
-
docile (~> 1.1.0)
|
128
|
-
json (>= 1.8, < 3)
|
129
|
-
simplecov-html (~> 0.10.0)
|
130
|
-
simplecov-html (0.10.2)
|
131
|
-
sprockets (3.7.1)
|
132
|
-
concurrent-ruby (~> 1.0)
|
133
|
-
rack (> 1, < 3)
|
134
|
-
sprockets-rails (3.2.0)
|
135
|
-
actionpack (>= 4.0)
|
136
|
-
activesupport (>= 4.0)
|
137
|
-
sprockets (>= 3.0.0)
|
138
|
-
sqlite3 (1.3.13)
|
139
|
-
thor (0.20.0)
|
140
|
-
thread_safe (0.3.6)
|
141
|
-
tzinfo (1.2.3)
|
142
|
-
thread_safe (~> 0.1)
|
143
|
-
unicode-display_width (1.3.0)
|
144
|
-
|
145
|
-
PLATFORMS
|
146
|
-
ruby
|
147
|
-
|
148
|
-
DEPENDENCIES
|
149
|
-
acts_as_votable!
|
150
|
-
appraisal (~> 2.2)
|
151
|
-
factory_girl (~> 4.8)
|
152
|
-
rails (= 4.2.9)
|
153
|
-
rspec (~> 3.6)
|
154
|
-
rubocop (~> 0.49.1)
|
155
|
-
simplecov (~> 0.15.0)
|
156
|
-
sqlite3 (~> 1.3)
|
157
|
-
|
158
|
-
BUNDLED WITH
|
159
|
-
1.15.4
|
@@ -1,166 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: ..
|
3
|
-
specs:
|
4
|
-
acts_as_votable (0.11.0)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: https://rubygems.org/
|
8
|
-
specs:
|
9
|
-
actioncable (5.0.5)
|
10
|
-
actionpack (= 5.0.5)
|
11
|
-
nio4r (>= 1.2, < 3.0)
|
12
|
-
websocket-driver (~> 0.6.1)
|
13
|
-
actionmailer (5.0.5)
|
14
|
-
actionpack (= 5.0.5)
|
15
|
-
actionview (= 5.0.5)
|
16
|
-
activejob (= 5.0.5)
|
17
|
-
mail (~> 2.5, >= 2.5.4)
|
18
|
-
rails-dom-testing (~> 2.0)
|
19
|
-
actionpack (5.0.5)
|
20
|
-
actionview (= 5.0.5)
|
21
|
-
activesupport (= 5.0.5)
|
22
|
-
rack (~> 2.0)
|
23
|
-
rack-test (~> 0.6.3)
|
24
|
-
rails-dom-testing (~> 2.0)
|
25
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
26
|
-
actionview (5.0.5)
|
27
|
-
activesupport (= 5.0.5)
|
28
|
-
builder (~> 3.1)
|
29
|
-
erubis (~> 2.7.0)
|
30
|
-
rails-dom-testing (~> 2.0)
|
31
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
32
|
-
activejob (5.0.5)
|
33
|
-
activesupport (= 5.0.5)
|
34
|
-
globalid (>= 0.3.6)
|
35
|
-
activemodel (5.0.5)
|
36
|
-
activesupport (= 5.0.5)
|
37
|
-
activerecord (5.0.5)
|
38
|
-
activemodel (= 5.0.5)
|
39
|
-
activesupport (= 5.0.5)
|
40
|
-
arel (~> 7.0)
|
41
|
-
activesupport (5.0.5)
|
42
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
43
|
-
i18n (~> 0.7)
|
44
|
-
minitest (~> 5.1)
|
45
|
-
tzinfo (~> 1.1)
|
46
|
-
appraisal (2.2.0)
|
47
|
-
bundler
|
48
|
-
rake
|
49
|
-
thor (>= 0.14.0)
|
50
|
-
arel (7.1.4)
|
51
|
-
ast (2.3.0)
|
52
|
-
builder (3.2.3)
|
53
|
-
concurrent-ruby (1.0.5)
|
54
|
-
diff-lcs (1.3)
|
55
|
-
docile (1.1.5)
|
56
|
-
erubis (2.7.0)
|
57
|
-
factory_girl (4.8.0)
|
58
|
-
activesupport (>= 3.0.0)
|
59
|
-
globalid (0.4.0)
|
60
|
-
activesupport (>= 4.2.0)
|
61
|
-
i18n (0.8.6)
|
62
|
-
json (2.1.0)
|
63
|
-
loofah (2.0.3)
|
64
|
-
nokogiri (>= 1.5.9)
|
65
|
-
mail (2.6.6)
|
66
|
-
mime-types (>= 1.16, < 4)
|
67
|
-
method_source (0.8.2)
|
68
|
-
mime-types (3.1)
|
69
|
-
mime-types-data (~> 3.2015)
|
70
|
-
mime-types-data (3.2016.0521)
|
71
|
-
mini_portile2 (2.2.0)
|
72
|
-
minitest (5.10.3)
|
73
|
-
nio4r (2.1.0)
|
74
|
-
nokogiri (1.8.0)
|
75
|
-
mini_portile2 (~> 2.2.0)
|
76
|
-
parallel (1.12.0)
|
77
|
-
parser (2.4.0.0)
|
78
|
-
ast (~> 2.2)
|
79
|
-
powerpack (0.1.1)
|
80
|
-
rack (2.0.3)
|
81
|
-
rack-test (0.6.3)
|
82
|
-
rack (>= 1.0)
|
83
|
-
rails (5.0.5)
|
84
|
-
actioncable (= 5.0.5)
|
85
|
-
actionmailer (= 5.0.5)
|
86
|
-
actionpack (= 5.0.5)
|
87
|
-
actionview (= 5.0.5)
|
88
|
-
activejob (= 5.0.5)
|
89
|
-
activemodel (= 5.0.5)
|
90
|
-
activerecord (= 5.0.5)
|
91
|
-
activesupport (= 5.0.5)
|
92
|
-
bundler (>= 1.3.0)
|
93
|
-
railties (= 5.0.5)
|
94
|
-
sprockets-rails (>= 2.0.0)
|
95
|
-
rails-dom-testing (2.0.3)
|
96
|
-
activesupport (>= 4.2.0)
|
97
|
-
nokogiri (>= 1.6)
|
98
|
-
rails-html-sanitizer (1.0.3)
|
99
|
-
loofah (~> 2.0)
|
100
|
-
railties (5.0.5)
|
101
|
-
actionpack (= 5.0.5)
|
102
|
-
activesupport (= 5.0.5)
|
103
|
-
method_source
|
104
|
-
rake (>= 0.8.7)
|
105
|
-
thor (>= 0.18.1, < 2.0)
|
106
|
-
rainbow (2.2.2)
|
107
|
-
rake
|
108
|
-
rake (12.0.0)
|
109
|
-
rspec (3.6.0)
|
110
|
-
rspec-core (~> 3.6.0)
|
111
|
-
rspec-expectations (~> 3.6.0)
|
112
|
-
rspec-mocks (~> 3.6.0)
|
113
|
-
rspec-core (3.6.0)
|
114
|
-
rspec-support (~> 3.6.0)
|
115
|
-
rspec-expectations (3.6.0)
|
116
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
117
|
-
rspec-support (~> 3.6.0)
|
118
|
-
rspec-mocks (3.6.0)
|
119
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
120
|
-
rspec-support (~> 3.6.0)
|
121
|
-
rspec-support (3.6.0)
|
122
|
-
rubocop (0.49.1)
|
123
|
-
parallel (~> 1.10)
|
124
|
-
parser (>= 2.3.3.1, < 3.0)
|
125
|
-
powerpack (~> 0.1)
|
126
|
-
rainbow (>= 1.99.1, < 3.0)
|
127
|
-
ruby-progressbar (~> 1.7)
|
128
|
-
unicode-display_width (~> 1.0, >= 1.0.1)
|
129
|
-
ruby-progressbar (1.8.1)
|
130
|
-
simplecov (0.15.0)
|
131
|
-
docile (~> 1.1.0)
|
132
|
-
json (>= 1.8, < 3)
|
133
|
-
simplecov-html (~> 0.10.0)
|
134
|
-
simplecov-html (0.10.2)
|
135
|
-
sprockets (3.7.1)
|
136
|
-
concurrent-ruby (~> 1.0)
|
137
|
-
rack (> 1, < 3)
|
138
|
-
sprockets-rails (3.2.1)
|
139
|
-
actionpack (>= 4.0)
|
140
|
-
activesupport (>= 4.0)
|
141
|
-
sprockets (>= 3.0.0)
|
142
|
-
sqlite3 (1.3.13)
|
143
|
-
thor (0.20.0)
|
144
|
-
thread_safe (0.3.6)
|
145
|
-
tzinfo (1.2.3)
|
146
|
-
thread_safe (~> 0.1)
|
147
|
-
unicode-display_width (1.3.0)
|
148
|
-
websocket-driver (0.6.5)
|
149
|
-
websocket-extensions (>= 0.1.0)
|
150
|
-
websocket-extensions (0.1.2)
|
151
|
-
|
152
|
-
PLATFORMS
|
153
|
-
ruby
|
154
|
-
|
155
|
-
DEPENDENCIES
|
156
|
-
acts_as_votable!
|
157
|
-
appraisal (~> 2.2)
|
158
|
-
factory_girl (~> 4.8)
|
159
|
-
rails (= 5.0.5)
|
160
|
-
rspec (~> 3.6)
|
161
|
-
rubocop (~> 0.49.1)
|
162
|
-
simplecov (~> 0.15.0)
|
163
|
-
sqlite3 (~> 1.3)
|
164
|
-
|
165
|
-
BUNDLED WITH
|
166
|
-
1.15.4
|
@@ -1,166 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: ..
|
3
|
-
specs:
|
4
|
-
acts_as_votable (0.11.0)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: https://rubygems.org/
|
8
|
-
specs:
|
9
|
-
actioncable (5.1.4)
|
10
|
-
actionpack (= 5.1.4)
|
11
|
-
nio4r (~> 2.0)
|
12
|
-
websocket-driver (~> 0.6.1)
|
13
|
-
actionmailer (5.1.4)
|
14
|
-
actionpack (= 5.1.4)
|
15
|
-
actionview (= 5.1.4)
|
16
|
-
activejob (= 5.1.4)
|
17
|
-
mail (~> 2.5, >= 2.5.4)
|
18
|
-
rails-dom-testing (~> 2.0)
|
19
|
-
actionpack (5.1.4)
|
20
|
-
actionview (= 5.1.4)
|
21
|
-
activesupport (= 5.1.4)
|
22
|
-
rack (~> 2.0)
|
23
|
-
rack-test (>= 0.6.3)
|
24
|
-
rails-dom-testing (~> 2.0)
|
25
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
26
|
-
actionview (5.1.4)
|
27
|
-
activesupport (= 5.1.4)
|
28
|
-
builder (~> 3.1)
|
29
|
-
erubi (~> 1.4)
|
30
|
-
rails-dom-testing (~> 2.0)
|
31
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
32
|
-
activejob (5.1.4)
|
33
|
-
activesupport (= 5.1.4)
|
34
|
-
globalid (>= 0.3.6)
|
35
|
-
activemodel (5.1.4)
|
36
|
-
activesupport (= 5.1.4)
|
37
|
-
activerecord (5.1.4)
|
38
|
-
activemodel (= 5.1.4)
|
39
|
-
activesupport (= 5.1.4)
|
40
|
-
arel (~> 8.0)
|
41
|
-
activesupport (5.1.4)
|
42
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
43
|
-
i18n (~> 0.7)
|
44
|
-
minitest (~> 5.1)
|
45
|
-
tzinfo (~> 1.1)
|
46
|
-
appraisal (2.2.0)
|
47
|
-
bundler
|
48
|
-
rake
|
49
|
-
thor (>= 0.14.0)
|
50
|
-
arel (8.0.0)
|
51
|
-
ast (2.3.0)
|
52
|
-
builder (3.2.3)
|
53
|
-
concurrent-ruby (1.0.5)
|
54
|
-
diff-lcs (1.3)
|
55
|
-
docile (1.1.5)
|
56
|
-
erubi (1.6.1)
|
57
|
-
factory_girl (4.8.0)
|
58
|
-
activesupport (>= 3.0.0)
|
59
|
-
globalid (0.4.0)
|
60
|
-
activesupport (>= 4.2.0)
|
61
|
-
i18n (0.8.6)
|
62
|
-
json (2.1.0)
|
63
|
-
loofah (2.0.3)
|
64
|
-
nokogiri (>= 1.5.9)
|
65
|
-
mail (2.6.6)
|
66
|
-
mime-types (>= 1.16, < 4)
|
67
|
-
method_source (0.8.2)
|
68
|
-
mime-types (3.1)
|
69
|
-
mime-types-data (~> 3.2015)
|
70
|
-
mime-types-data (3.2016.0521)
|
71
|
-
mini_portile2 (2.2.0)
|
72
|
-
minitest (5.10.3)
|
73
|
-
nio4r (2.1.0)
|
74
|
-
nokogiri (1.8.0)
|
75
|
-
mini_portile2 (~> 2.2.0)
|
76
|
-
parallel (1.12.0)
|
77
|
-
parser (2.4.0.0)
|
78
|
-
ast (~> 2.2)
|
79
|
-
powerpack (0.1.1)
|
80
|
-
rack (2.0.3)
|
81
|
-
rack-test (0.7.0)
|
82
|
-
rack (>= 1.0, < 3)
|
83
|
-
rails (5.1.4)
|
84
|
-
actioncable (= 5.1.4)
|
85
|
-
actionmailer (= 5.1.4)
|
86
|
-
actionpack (= 5.1.4)
|
87
|
-
actionview (= 5.1.4)
|
88
|
-
activejob (= 5.1.4)
|
89
|
-
activemodel (= 5.1.4)
|
90
|
-
activerecord (= 5.1.4)
|
91
|
-
activesupport (= 5.1.4)
|
92
|
-
bundler (>= 1.3.0)
|
93
|
-
railties (= 5.1.4)
|
94
|
-
sprockets-rails (>= 2.0.0)
|
95
|
-
rails-dom-testing (2.0.3)
|
96
|
-
activesupport (>= 4.2.0)
|
97
|
-
nokogiri (>= 1.6)
|
98
|
-
rails-html-sanitizer (1.0.3)
|
99
|
-
loofah (~> 2.0)
|
100
|
-
railties (5.1.4)
|
101
|
-
actionpack (= 5.1.4)
|
102
|
-
activesupport (= 5.1.4)
|
103
|
-
method_source
|
104
|
-
rake (>= 0.8.7)
|
105
|
-
thor (>= 0.18.1, < 2.0)
|
106
|
-
rainbow (2.2.2)
|
107
|
-
rake
|
108
|
-
rake (12.0.0)
|
109
|
-
rspec (3.6.0)
|
110
|
-
rspec-core (~> 3.6.0)
|
111
|
-
rspec-expectations (~> 3.6.0)
|
112
|
-
rspec-mocks (~> 3.6.0)
|
113
|
-
rspec-core (3.6.0)
|
114
|
-
rspec-support (~> 3.6.0)
|
115
|
-
rspec-expectations (3.6.0)
|
116
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
117
|
-
rspec-support (~> 3.6.0)
|
118
|
-
rspec-mocks (3.6.0)
|
119
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
120
|
-
rspec-support (~> 3.6.0)
|
121
|
-
rspec-support (3.6.0)
|
122
|
-
rubocop (0.49.1)
|
123
|
-
parallel (~> 1.10)
|
124
|
-
parser (>= 2.3.3.1, < 3.0)
|
125
|
-
powerpack (~> 0.1)
|
126
|
-
rainbow (>= 1.99.1, < 3.0)
|
127
|
-
ruby-progressbar (~> 1.7)
|
128
|
-
unicode-display_width (~> 1.0, >= 1.0.1)
|
129
|
-
ruby-progressbar (1.8.1)
|
130
|
-
simplecov (0.15.0)
|
131
|
-
docile (~> 1.1.0)
|
132
|
-
json (>= 1.8, < 3)
|
133
|
-
simplecov-html (~> 0.10.0)
|
134
|
-
simplecov-html (0.10.2)
|
135
|
-
sprockets (3.7.1)
|
136
|
-
concurrent-ruby (~> 1.0)
|
137
|
-
rack (> 1, < 3)
|
138
|
-
sprockets-rails (3.2.1)
|
139
|
-
actionpack (>= 4.0)
|
140
|
-
activesupport (>= 4.0)
|
141
|
-
sprockets (>= 3.0.0)
|
142
|
-
sqlite3 (1.3.13)
|
143
|
-
thor (0.20.0)
|
144
|
-
thread_safe (0.3.6)
|
145
|
-
tzinfo (1.2.3)
|
146
|
-
thread_safe (~> 0.1)
|
147
|
-
unicode-display_width (1.3.0)
|
148
|
-
websocket-driver (0.6.5)
|
149
|
-
websocket-extensions (>= 0.1.0)
|
150
|
-
websocket-extensions (0.1.2)
|
151
|
-
|
152
|
-
PLATFORMS
|
153
|
-
ruby
|
154
|
-
|
155
|
-
DEPENDENCIES
|
156
|
-
acts_as_votable!
|
157
|
-
appraisal (~> 2.2)
|
158
|
-
factory_girl (~> 4.8)
|
159
|
-
rails (= 5.1.4)
|
160
|
-
rspec (~> 3.6)
|
161
|
-
rubocop (~> 0.49.1)
|
162
|
-
simplecov (~> 0.15.0)
|
163
|
-
sqlite3 (~> 1.3)
|
164
|
-
|
165
|
-
BUNDLED WITH
|
166
|
-
1.15.4
|