-
Notifications
You must be signed in to change notification settings - Fork 216
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
9 changed files
with
179 additions
and
130 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
*.log | ||
.byebug_history | ||
/.bundle/ | ||
/.yardoc | ||
/Gemfile.lock | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,139 +1,13 @@ | ||
# frozen_string_literal: true | ||
|
||
$LOAD_PATH << File.join(File.dirname(__FILE__), "..", "lib") | ||
require "sqlite3" | ||
|
||
require "simplecov" | ||
require "acts_as_votable" | ||
require "factory_bot" | ||
require_relative "support/database" | ||
|
||
Dir["./spec/shared_example/**/*.rb"].sort.each { |f| require f } | ||
Dir["./spec/support/**/*.rb"].sort.each { |f| require f } | ||
|
||
SimpleCov.start | ||
|
||
ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:") | ||
|
||
ActiveRecord::Schema.define(version: 1) do | ||
create_table :votes do |t| | ||
t.references :votable, polymorphic: true | ||
t.references :voter, polymorphic: true | ||
|
||
t.boolean :vote_flag | ||
t.string :vote_scope | ||
t.integer :vote_weight | ||
|
||
t.timestamps | ||
end | ||
|
||
add_index :votes, [:votable_id, :votable_type] | ||
add_index :votes, [:voter_id, :voter_type] | ||
add_index :votes, [:voter_id, :voter_type, :vote_scope] | ||
add_index :votes, [:votable_id, :votable_type, :vote_scope] | ||
|
||
create_table :voters do |t| | ||
t.string :name | ||
end | ||
|
||
create_table :not_voters do |t| | ||
t.string :name | ||
end | ||
|
||
create_table :votables do |t| | ||
t.string :name | ||
end | ||
|
||
create_table :votable_voters do |t| | ||
t.string :name | ||
end | ||
|
||
create_table :sti_votables do |t| | ||
t.string :name | ||
t.string :type | ||
end | ||
|
||
create_table :sti_not_votables do |t| | ||
t.string :name | ||
t.string :type | ||
end | ||
|
||
create_table :not_votables do |t| | ||
t.string :name | ||
end | ||
|
||
create_table :votable_caches do |t| | ||
t.string :name | ||
t.integer :cached_votes_total | ||
t.integer :cached_votes_score | ||
t.integer :cached_votes_up | ||
t.integer :cached_votes_down | ||
t.integer :cached_weighted_total | ||
t.integer :cached_weighted_score | ||
t.float :cached_weighted_average | ||
|
||
t.integer :cached_scoped_test_votes_total | ||
t.integer :cached_scoped_test_votes_score | ||
t.integer :cached_scoped_test_votes_up | ||
t.integer :cached_scoped_test_votes_down | ||
t.integer :cached_scoped_weighted_total | ||
t.integer :cached_scoped_weighted_score | ||
t.float :cached_scoped_weighted_average | ||
|
||
t.timestamps | ||
end | ||
|
||
end | ||
|
||
|
||
class Voter < ActiveRecord::Base | ||
acts_as_voter | ||
end | ||
|
||
class NotVoter < ActiveRecord::Base | ||
end | ||
|
||
class Votable < ActiveRecord::Base | ||
acts_as_votable | ||
validates_presence_of :name | ||
end | ||
|
||
class VotableVoter < ActiveRecord::Base | ||
acts_as_votable | ||
acts_as_voter | ||
end | ||
|
||
class StiVotable < ActiveRecord::Base | ||
acts_as_votable | ||
end | ||
|
||
class ChildOfStiVotable < StiVotable | ||
end | ||
|
||
class StiNotVotable < ActiveRecord::Base | ||
validates_presence_of :name | ||
end | ||
|
||
class ChildOfStiNotVotable < StiNotVotable | ||
acts_as_votable | ||
end | ||
|
||
class NotVotable < ActiveRecord::Base | ||
end | ||
|
||
class VotableCache < ActiveRecord::Base | ||
acts_as_votable | ||
validates_presence_of :name | ||
end | ||
|
||
class VotableCacheUpdateAttributes < VotableCache | ||
acts_as_votable cacheable_strategy: :update_attributes | ||
end | ||
|
||
class VotableCacheUpdateColumns < VotableCache | ||
acts_as_votable cacheable_strategy: :update_columns | ||
end | ||
|
||
class ABoringClass | ||
def self.hw | ||
"hello world" | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# frozen_string_literal: true | ||
|
||
require "logger" | ||
require "yaml" | ||
|
||
ActiveRecord::Base.configurations = YAML.load_file(File.expand_path("db/database.yml", __dir__)) | ||
db_config = ActiveRecord::Base.configurations.fetch(ENV["DB"] || "sqlite") | ||
|
||
begin | ||
ActiveRecord::Base.establish_connection(db_config) | ||
ActiveRecord::Base.connection | ||
rescue | ||
ActiveRecord::Base.establish_connection(db_config.merge("database" => nil)) | ||
ActiveRecord::Base.connection.create_database(db_config["database"], db_config) | ||
ActiveRecord::Base.establish_connection(db_config) | ||
end | ||
|
||
ActiveRecord::Base.logger = Logger.new(File.join(__dir__, "debug.log")) | ||
ActiveRecord::Base.logger.level = ENV["CI"] ? ::Logger::ERROR : ::Logger::DEBUG | ||
ActiveRecord::Migration.verbose = false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
sqlite: | ||
adapter: sqlite3 | ||
database: ":memory:" | ||
|
||
postgresql: | ||
adapter: postgresql | ||
username: postgres | ||
password: | ||
database: acts_as_votable_test | ||
|
||
mysql: | ||
adapter: mysql2 | ||
host: localhost | ||
username: root | ||
password: | ||
database: acts_as_votable_test |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
# frozen_string_literal: true | ||
|
||
ActiveRecord::Schema.define(version: 1) do | ||
create_table :votes, force: true do |t| | ||
t.references :votable, polymorphic: true | ||
t.references :voter, polymorphic: true | ||
|
||
t.boolean :vote_flag | ||
t.string :vote_scope | ||
t.integer :vote_weight | ||
|
||
t.timestamps(null: false, precision: 6) | ||
end | ||
|
||
add_index :votes, [:votable_id, :votable_type] | ||
add_index :votes, [:voter_id, :voter_type] | ||
add_index :votes, [:voter_id, :voter_type, :vote_scope] | ||
add_index :votes, [:votable_id, :votable_type, :vote_scope] | ||
|
||
create_table :voters, force: true do |t| | ||
t.string :name | ||
end | ||
|
||
create_table :not_voters, force: true do |t| | ||
t.string :name | ||
end | ||
|
||
create_table :votables, force: true do |t| | ||
t.string :name | ||
end | ||
|
||
create_table :votable_voters, force: true do |t| | ||
t.string :name | ||
end | ||
|
||
create_table :sti_votables, force: true do |t| | ||
t.string :name | ||
t.string :type | ||
end | ||
|
||
create_table :sti_not_votables, force: true do |t| | ||
t.string :name | ||
t.string :type | ||
end | ||
|
||
create_table :not_votables, force: true do |t| | ||
t.string :name | ||
end | ||
|
||
create_table :votable_caches, force: true do |t| | ||
t.string :name | ||
t.integer :cached_votes_total | ||
t.integer :cached_votes_score | ||
t.integer :cached_votes_up | ||
t.integer :cached_votes_down | ||
t.integer :cached_weighted_total | ||
t.integer :cached_weighted_score | ||
t.float :cached_weighted_average | ||
|
||
t.integer :cached_scoped_test_votes_total | ||
t.integer :cached_scoped_test_votes_score | ||
t.integer :cached_scoped_test_votes_up | ||
t.integer :cached_scoped_test_votes_down | ||
t.integer :cached_scoped_weighted_total | ||
t.integer :cached_scoped_weighted_score | ||
t.float :cached_scoped_weighted_average | ||
|
||
t.timestamps(null: false, precision: 6) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
# frozen_string_literal: true | ||
|
||
class Voter < ActiveRecord::Base | ||
acts_as_voter | ||
end | ||
|
||
class NotVoter < ActiveRecord::Base | ||
end | ||
|
||
class Votable < ActiveRecord::Base | ||
acts_as_votable | ||
validates_presence_of :name | ||
end | ||
|
||
class VotableVoter < ActiveRecord::Base | ||
acts_as_votable | ||
acts_as_voter | ||
end | ||
|
||
class StiVotable < ActiveRecord::Base | ||
acts_as_votable | ||
end | ||
|
||
class ChildOfStiVotable < StiVotable | ||
end | ||
|
||
class StiNotVotable < ActiveRecord::Base | ||
validates_presence_of :name | ||
end | ||
|
||
class ChildOfStiNotVotable < StiNotVotable | ||
acts_as_votable | ||
end | ||
|
||
class NotVotable < ActiveRecord::Base | ||
end | ||
|
||
class VotableCache < ActiveRecord::Base | ||
acts_as_votable | ||
validates_presence_of :name | ||
end | ||
|
||
class VotableCacheUpdateAttributes < VotableCache | ||
acts_as_votable cacheable_strategy: :update_attributes | ||
end | ||
|
||
class VotableCacheUpdateColumns < VotableCache | ||
acts_as_votable cacheable_strategy: :update_columns | ||
end | ||
|
||
class ABoringClass | ||
def self.hw | ||
"hello world" | ||
end | ||
end |