Skip to content

Commit

Permalink
rubocop -a
Browse files Browse the repository at this point in the history
  • Loading branch information
solnic committed Dec 6, 2020
1 parent 99406ef commit 4588cde
Show file tree
Hide file tree
Showing 17 changed files with 119 additions and 86 deletions.
16 changes: 9 additions & 7 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
source 'https://rubygems.org'
# frozen_string_literal: true

source "https://rubygems.org"

gemspec

eval_gemfile "Gemfile.devtools"

group :test do
gem 'inflecto'
gem 'rspec', '~> 3.5'
gem 'codeclimate-test-reporter', require: false
gem 'sqlite3', platforms: [:mri, :rbx]
gem 'jdbc-sqlite3', platforms: :jruby
gem "codeclimate-test-reporter", require: false
gem "inflecto"
gem "jdbc-sqlite3", platforms: :jruby
gem "rspec", "~> 3.5"
gem "sqlite3", platforms: %i[mri rbx]
end

group :tools do
gem 'byebug', platforms: [:mri]
gem "byebug", platforms: [:mri]
end
12 changes: 7 additions & 5 deletions Guardfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
# frozen_string_literal: true

group :red_green_refactor, halt_on_fail: true do
guard :rspec, cmd: "rspec", all_on_start: true do
# run all specs if Gemfile.lock is modified
watch('Gemfile.lock') { 'spec' }
watch("Gemfile.lock") { "spec" }

# run all specs if any library code is modified
watch(%r{\Alib/.+\.rb\z}) { 'spec' }
watch(%r{\Alib/.+\.rb\z}) { "spec" }

# run all specs if supporting files are modified
watch('spec/spec_helper.rb') { 'spec' }
watch(%r{\Aspec/(?:lib|support|shared)/.+\.rb\z}) { 'spec' }
watch("spec/spec_helper.rb") { "spec" }
watch(%r{\Aspec/(?:lib|support|shared)/.+\.rb\z}) { "spec" }

# run a spec if it is modified
watch(%r{\Aspec/(?:unit|integration)/.+_spec\.rb\z})

notification :tmux, display_message: true if ENV.key?('TMUX')
notification :tmux, display_message: true if ENV.key?("TMUX")
end

guard :rubocop do
Expand Down
8 changes: 5 additions & 3 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
require 'bundler/gem_tasks'
require 'rspec/core/rake_task'
# frozen_string_literal: true

require "bundler/gem_tasks"
require "rspec/core/rake_task"

RSpec::Core::RakeTask.new(:spec)
task default: [:ci]

desc 'Run CI tasks'
desc "Run CI tasks"
task ci: [:spec]
6 changes: 4 additions & 2 deletions lib/rom-yesql.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
require 'rom' # FIXME: this should not be needed
# frozen_string_literal: true

require 'rom/yesql'
require "rom" # FIXME: this should not be needed

require "rom/yesql"
6 changes: 4 additions & 2 deletions lib/rom/yesql.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
require 'rom/yesql/version'
require 'rom/yesql/gateway'
# frozen_string_literal: true

require "rom/yesql/version"
require "rom/yesql/gateway"
2 changes: 2 additions & 0 deletions lib/rom/yesql/dataset.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# frozen_string_literal: true

module ROM
module Yesql
# Yesql dataset simply uses a sequel connection to fetch results of a query
Expand Down
14 changes: 8 additions & 6 deletions lib/rom/yesql/gateway.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
require 'sequel'
# frozen_string_literal: true

require 'rom/initializer'
require "sequel"

require 'rom/yesql/dataset'
require 'rom/yesql/relation'
require "rom/initializer"

require "rom/yesql/dataset"
require "rom/yesql/relation"

module ROM
module Yesql
Expand Down Expand Up @@ -96,7 +98,7 @@ def dataset(_name)
#
# @api private
def dataset?(_name)
! @dataset.nil?
!@dataset.nil?
end

private
Expand All @@ -112,7 +114,7 @@ def load_queries(path)
dataset = File.basename(dir).to_sym

fs_queries[dataset] = Dir["#{dir}/**/*.sql"].each_with_object({}) do |file, ds_queries|
query_name = File.basename(file, '.*').to_sym
query_name = File.basename(file, ".*").to_sym
sql = File.read(file).strip

ds_queries[query_name] = sql
Expand Down
8 changes: 5 additions & 3 deletions lib/rom/yesql/relation.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
require 'dry/core/class_attributes'
# frozen_string_literal: true

require 'rom/relation'
require 'rom/yesql/relation/class_interface'
require "dry/core/class_attributes"

require "rom/relation"
require "rom/yesql/relation/class_interface"

module ROM
module Yesql
Expand Down
2 changes: 2 additions & 0 deletions lib/rom/yesql/relation/class_interface.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# frozen_string_literal: true

module ROM
module Yesql
class Relation < ROM::Relation
Expand Down
4 changes: 3 additions & 1 deletion lib/rom/yesql/version.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# frozen_string_literal: true

module ROM
module Yesql
VERSION = '0.5.1'.freeze
VERSION = "0.5.1"
end
end
7 changes: 4 additions & 3 deletions rakelib/rubocop.rake
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# frozen_string_literal: true

begin
require "rubocop/rake_task"

Expand All @@ -8,11 +10,10 @@ begin
end

namespace :rubocop do
desc 'Generate a configuration file acting as a TODO list.'
desc "Generate a configuration file acting as a TODO list."
task :auto_gen_config do
exec "bundle exec rubocop --auto-gen-config"
end
end

rescue LoadError # rubocop:disable Lint/HandleExceptions
rescue LoadError
end
42 changes: 22 additions & 20 deletions spec/integration/adapter_spec.rb
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
require 'spec_helper'
# frozen_string_literal: true

RSpec.describe 'ROM / Yesql' do
include_context 'users and tasks'
require "spec_helper"

RSpec.describe "ROM / Yesql" do
include_context "users and tasks"

let(:container) { ROM.container(configuration) }

let!(:configuration) do
ROM::Configuration.new(:yesql, [uri, path: path, queries: { reports: report_queries }])
ROM::Configuration.new(:yesql, [uri, path: path, queries: {reports: report_queries}])
end

let(:report_queries) { { all_users: 'SELECT * FROM users ORDER BY %{order}' } }
let(:report_queries) { {all_users: "SELECT * FROM users ORDER BY %{order}"} }

let(:users) { container.relations[:users] }
let(:tasks) { container.relations[:tasks] }
Expand All @@ -18,7 +20,7 @@
before do
configuration.relation(:users)
configuration.relation(:tasks) do
query_proc(proc { |_name, query, opts| query.gsub(':id:', opts[:id].to_s) })
query_proc(proc { |_name, query, opts| query.gsub(":id:", opts[:id].to_s) })
end

module Test
Expand All @@ -30,30 +32,30 @@ class Reports < ROM::Relation[:yesql]
configuration.register_relation(Test::Reports)
end

describe 'query method' do
it 'uses hash-based interpolation by default' do
expect(users.by_name(name: 'Jane')).to match_array([
{ id: 1, name: 'Jane' }
describe "query method" do
it "uses hash-based interpolation by default" do
expect(users.by_name(name: "Jane")).to match_array([
{id: 1, name: "Jane"}
])
end

it 'uses provided proc to preprocess a query' do
it "uses provided proc to preprocess a query" do
expect(tasks.by_id(id: 1)).to match_array([
{ id: 1, title: 'Task One' }
{id: 1, title: "Task One"}
])
end

it 'uses queries provided explicitly during setup' do
expect(reports.all_users(order: 'name').to_a).to eql([
{ id: 3, name: 'Jade' },
{ id: 1, name: 'Jane' },
{ id: 2, name: 'Joe' }
it "uses queries provided explicitly during setup" do
expect(reports.all_users(order: "name").to_a).to eql([
{id: 3, name: "Jade"},
{id: 1, name: "Jane"},
{id: 2, name: "Joe"}
])
end

it 'returns rom relation' do
relation = users.by_name(name: 'Jane') >> proc { |r| r.map { |t| t[:name] } }
expect(relation).to match_array(['Jane'])
it "returns rom relation" do
relation = users.by_name(name: "Jane") >> proc { |r| r.map { |t| t[:name] } }
expect(relation).to match_array(["Jane"])
end
end
end
8 changes: 5 additions & 3 deletions spec/shared/database_setup.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
RSpec.shared_context 'database setup' do
include_context 'gateway setup'
# frozen_string_literal: true

RSpec.shared_context "database setup" do
include_context "gateway setup"

let!(:conn) { Sequel.connect(uri) }

def drop_tables
[:users, :tasks].each { |name| conn.drop_table?(name) }
%i[users tasks].each { |name| conn.drop_table?(name) }
end

before do
Expand Down
14 changes: 8 additions & 6 deletions spec/shared/repository_setup.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
RSpec.shared_context 'gateway setup' do
let(:root) { Pathname(__FILE__).dirname.join('../..') }
let(:path) { root.join('spec/fixtures') }
# frozen_string_literal: true

if RUBY_ENGINE == 'jruby'
let(:uri) { "jdbc:sqlite://#{root.join('db/test.sqlite')}" }
RSpec.shared_context "gateway setup" do
let(:root) { Pathname(__FILE__).dirname.join("../..") }
let(:path) { root.join("spec/fixtures") }

if RUBY_ENGINE == "jruby"
let(:uri) { "jdbc:sqlite://#{root.join("db/test.sqlite")}" }
else
let(:uri) { "sqlite://#{root.join('db/test.sqlite')}" }
let(:uri) { "sqlite://#{root.join("db/test.sqlite")}" }
end
end
16 changes: 9 additions & 7 deletions spec/shared/users_and_tasks.rb
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
RSpec.shared_context 'users and tasks' do
include_context 'database setup'
# frozen_string_literal: true

RSpec.shared_context "users and tasks" do
include_context "database setup"

before do
conn[:users].insert id: 1, name: 'Jane'
conn[:users].insert id: 2, name: 'Joe'
conn[:users].insert id: 3, name: 'Jade'
conn[:users].insert id: 1, name: "Jane"
conn[:users].insert id: 2, name: "Joe"
conn[:users].insert id: 3, name: "Jade"

conn[:tasks].insert id: 1, title: 'Task One'
conn[:tasks].insert id: 2, title: 'Task Two'
conn[:tasks].insert id: 1, title: "Task One"
conn[:tasks].insert id: 2, title: "Task Two"
end
end
18 changes: 10 additions & 8 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
require 'bundler'
# frozen_string_literal: true

require "bundler"
Bundler.setup

require_relative "support/coverage" if ENV["COVERAGE"] == "true"
Expand All @@ -7,16 +9,16 @@

Warning.process { |w| raise w } if ENV["FAIL_ON_WARNINGS"].eql?("true")

require 'rom-yesql'
require 'inflecto'
require 'logger'
require "rom-yesql"
require "inflecto"
require "logger"

begin
require 'byebug'
rescue LoadError # rubocop:disable Lint/HandleExceptions
require "byebug"
rescue LoadError
end

LOGGER = Logger.new(File.open('./log/test.log', 'a'))
LOGGER = Logger.new(File.open("./log/test.log", "a"))

root = Pathname(__FILE__).dirname

Expand All @@ -34,4 +36,4 @@ module Test
config.warnings = true
end

Dir[root.join('shared/*.rb').to_s].each { |f| require f }
Dir[root.join("shared/*.rb").to_s].sort.each { |f| require f }
22 changes: 12 additions & 10 deletions spec/unit/rom/yesql/repository_spec.rb
Original file line number Diff line number Diff line change
@@ -1,36 +1,38 @@
require 'spec_helper'
# frozen_string_literal: true

require "spec_helper"

RSpec.describe ROM::Yesql::Gateway do
include_context 'gateway setup'
include_context "gateway setup"

it 'loads queries from file system when :path is provided' do
it "loads queries from file system when :path is provided" do
gateway = ROM::Yesql::Gateway.new(uri, path: path)

expect(gateway.queries.keys).to match_array([:users, :tasks])
end

it 'combines queries from :queries option and loaded from provided :path' do
queries = { reports: { true: 'SELECT 1' } }
it "combines queries from :queries option and loaded from provided :path" do
queries = {reports: {true: "SELECT 1"}}
gateway = ROM::Yesql::Gateway.new(uri, path: path, queries: queries)

expect(gateway.queries.keys).to match_array([:users, :tasks, :reports])
end

it 'loads queries from :queries option' do
queries = { reports: { true: 'SELECT 1' } }
it "loads queries from :queries option" do
queries = {reports: {true: "SELECT 1"}}
gateway = ROM::Yesql::Gateway.new(uri, queries: queries)

expect(gateway.queries).to eql(queries)
end

it 'loads empty queries hash when no options were provided' do
it "loads empty queries hash when no options were provided" do
gateway = ROM::Yesql::Gateway.new(uri)

expect(gateway.queries).to eql({})
end

it 'freezes queries' do
queries = { reports: { true: 'SELECT 1' } }
it "freezes queries" do
queries = {reports: {true: "SELECT 1"}}
gateway = ROM::Yesql::Gateway.new(uri, queries: queries)

expect(gateway.queries).to be_frozen
Expand Down

0 comments on commit 4588cde

Please sign in to comment.