slodd 0.1.4 → 0.1.5

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: b09fc067ca2f8b6c6b0bc69b6f121adbe304d8d8
4
- data.tar.gz: 6bbeb82d980eca14c7c3a46ce034cd072ee9f351
3
+ metadata.gz: a48e3c454332b7fb8a9c550ede53dcd5be02fb03
4
+ data.tar.gz: eb50f18fd0ae40bfdff86a8b89a824009b4f3fa4
5
5
  SHA512:
6
- metadata.gz: cd624e4a62fa8113e4d6fb98046a92c34ec1be2275f03c166f3218234462093d60dd0294b11d1313b11a664341346c99851694c64559485087b975e2cdf3fa3f
7
- data.tar.gz: 365f745d39f29e41342bd175559d2a749b9c8da84386b14556c1187d183296b1cd99324d1ba3c2615d693b84a3a808720a97bc03fbf4183c1a344b511af63270
6
+ metadata.gz: 5f9bc7ec5c4fd353956191b645cd0658f0f460a0375f9962cec009fb3840c0d98eece5afc6293ed890adcf6f02ce6afc93baf57e5f862d3a815740862362cc01
7
+ data.tar.gz: bdec1445b47d839f045bdab722bf144e59d06dac0c96478812e4c3da5790182cb68ebdae3f84a2f7b3e9a6f3e2dd74df87a259ac3750f91263b797caff37e986
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.1.5
1
+ 2.1.7
data/.travis.yml CHANGED
@@ -5,3 +5,6 @@ rvm:
5
5
  - 2.1.5
6
6
  - 2.2.0
7
7
  sudo: false
8
+ addons:
9
+ code_climate:
10
+ repo_token: 41687dd263a94061453310fe3104123ed9b1adae632aff9d914603315ed2a754
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in slodd.gemspec
4
4
  gemspec
data/README.md CHANGED
@@ -1,8 +1,10 @@
1
1
  Schema Loading On Dependent Databases
2
2
  =====================================
3
3
 
4
- [![Build Status](https://travis-ci.org/errm/slodd.png?branch=v0.1.0)](https://travis-ci.org/errm/slodd)
5
- [![Gem Version](https://badge.fury.io/rb/slodd.png)](http://badge.fury.io/rb/slodd)
4
+ [![Build Status](https://travis-ci.org/errm/slodd.svg?branch=master)](https://travis-ci.org/errm/slodd)
5
+ [![Gem Version](https://badge.fury.io/rb/slodd.svg)](http://badge.fury.io/rb/slodd)
6
+ [![Code Climate](https://codeclimate.com/github/errm/slodd/badges/gpa.svg)](https://codeclimate.com/github/errm/slodd)
7
+ [![Test Coverage](https://codeclimate.com/github/errm/slodd/badges/coverage.svg)](https://codeclimate.com/github/errm/slodd)
6
8
 
7
9
  Slodd is a lightweight tool for loading an activerecord schema.rb into a database, like rake db:schema:load but more awesome.
8
10
 
data/Rakefile CHANGED
@@ -1,8 +1,8 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
- require "rubocop/rake_task"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+ require 'reevoocop/rake_task'
4
4
 
5
- RuboCop::RakeTask.new(:rubocop)
5
+ ReevooCop::RakeTask.new(:reevoocop)
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
8
- task default: [:spec, :rubocop]
8
+ task default: [:spec, :reevoocop]
data/bin/gurl CHANGED
@@ -1,23 +1,23 @@
1
1
  #!/usr/bin/env ruby
2
2
  # encoding: utf-8
3
3
 
4
- require "slodd"
5
- require "optparse"
4
+ require 'slodd'
5
+ require 'optparse'
6
6
 
7
7
  OptionParser.new do |opt|
8
- opt.on("-g", "--github USER/REPO", "github repo") do |g|
8
+ opt.on('-g', '--github USER/REPO', 'github repo') do |g|
9
9
  Slodd::Config.github = g
10
10
  end
11
11
 
12
- opt.on("-t", "--token TOKEN", "github token") do |t|
12
+ opt.on('-t', '--token TOKEN', 'github token') do |t|
13
13
  Slodd::Config.token = t
14
14
  end
15
15
 
16
- opt.on("-r", "--ref REF", "github ref") do |r|
16
+ opt.on('-r', '--ref REF', 'github ref') do |r|
17
17
  Slodd::Config.ref = r
18
18
  end
19
19
 
20
- opt.on("-f", "--file-schema-path PATH", "Path to schema.rb") do |f|
20
+ opt.on('-f', '--file-schema-path PATH', 'Path to schema.rb') do |f|
21
21
  Slodd::Config.path = f
22
22
  end
23
23
  end.parse!
data/bin/slodd CHANGED
@@ -1,43 +1,43 @@
1
1
  #!/usr/bin/env ruby
2
2
  # encoding: utf-8
3
3
 
4
- require "slodd"
5
- require "optparse"
4
+ require 'slodd'
5
+ require 'optparse'
6
6
 
7
7
  OptionParser.new do |opt|
8
- opt.on("-d", "--database DATABASES", "Database names") do |d|
8
+ opt.on('-d', '--database DATABASES', 'Database names') do |d|
9
9
  Slodd::Config.databases = d
10
10
  end
11
11
 
12
- opt.on("-s", "--schema URI", "URI for schema.rb") do |s|
12
+ opt.on('-s', '--schema URI', 'URI for schema.rb') do |s|
13
13
  Slodd::Config.url = s
14
14
  end
15
15
 
16
- opt.on("-g", "--github USER/REPO", "github repo") do |g|
16
+ opt.on('-g', '--github USER/REPO', 'github repo') do |g|
17
17
  Slodd::Config.github = g
18
18
  end
19
19
 
20
- opt.on("-t", "--token TOKEN", "github token") do |t|
20
+ opt.on('-t', '--token TOKEN', 'github token') do |t|
21
21
  Slodd::Config.token = t
22
22
  end
23
23
 
24
- opt.on("-r", "--ref REF", "github ref") do |r|
24
+ opt.on('-r', '--ref REF', 'github ref') do |r|
25
25
  Slodd::Config.ref = r
26
26
  end
27
27
 
28
- opt.on("-f", "--file-schema-path PATH", "Path to schema.rb") do |f|
28
+ opt.on('-f', '--file-schema-path PATH', 'Path to schema.rb') do |f|
29
29
  Slodd::Config.path = f
30
30
  end
31
31
 
32
- opt.on("-u", "--username USERNAME", "MySQL Username") do |u|
32
+ opt.on('-u', '--username USERNAME', 'MySQL Username') do |u|
33
33
  Slodd::Config.username = u
34
34
  end
35
35
 
36
- opt.on("-p", "--password PASSWORD", "MySQL Password") do |p|
36
+ opt.on('-p', '--password PASSWORD', 'MySQL Password') do |p|
37
37
  Slodd::Config.password = p
38
38
  end
39
39
 
40
- opt.on("-h", "--host HOST", "MySQL Hostname") do |h|
40
+ opt.on('-h', '--host HOST', 'MySQL Hostname') do |h|
41
41
  Slodd::Config.host = h
42
42
  end
43
43
  end.parse!
data/lib/slodd.rb CHANGED
@@ -1,11 +1,11 @@
1
1
  # encoding: utf-8
2
- require "slodd/version"
2
+ require 'slodd/version'
3
3
 
4
- require "slodd/github"
5
- require "slodd/local"
6
- require "slodd/http"
7
- require "slodd/config"
8
- require "slodd/runner"
4
+ require 'slodd/github'
5
+ require 'slodd/local'
6
+ require 'slodd/http'
7
+ require 'slodd/config'
8
+ require 'slodd/runner'
9
9
 
10
10
  module Slodd
11
11
  end
data/lib/slodd/config.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # encoding: utf-8
2
- require "active_support/core_ext/module/attribute_accessors"
2
+ require 'active_support/core_ext/module/attribute_accessors'
3
+ require 'uri'
3
4
 
4
5
  module Slodd
5
6
  module Config
@@ -8,29 +9,29 @@ module Slodd
8
9
  mattr_writer :databases
9
10
 
10
11
  def self.defaults
11
- self.path = "db/schema.rb"
12
- self.username = "root"
13
- self.host = "localhost"
12
+ self.path = 'db/schema.rb'
13
+ self.username = 'root'
14
+ self.host = 'localhost'
14
15
  self.databases = nil
15
16
  end
16
17
 
17
18
  defaults
18
19
 
19
20
  def self.databases
21
+ self.databases = database_uri.path[1..-1] if database_uri
20
22
  @@databases ? @@databases.split : []
21
23
  end
22
24
 
23
25
  def self.database_settings
24
- settings = { adapter: "mysql2", host: host, username: username }
25
- password ? settings.merge(password: password) : settings
26
+ settings_from_url || settings_from_args
26
27
  end
27
28
 
28
29
  def self.owner
29
- github.split("/")[0] if github
30
+ github.split('/')[0] if github
30
31
  end
31
32
 
32
33
  def self.repo
33
- github.split("/")[1] if github
34
+ github.split('/')[1] if github
34
35
  end
35
36
 
36
37
  def self.fetcher
@@ -55,8 +56,32 @@ module Slodd
55
56
  token: token,
56
57
  path: path,
57
58
  ref: ref,
58
- url: url
59
+ url: url,
59
60
  }.delete_if { |_, v| v.nil? }
60
61
  end
62
+
63
+ private
64
+
65
+ def self.settings_from_url
66
+ return unless database_uri
67
+ self.databases = database_uri.path[1..-1]
68
+ {
69
+ adapter: database_uri.scheme,
70
+ host: database_uri.host,
71
+ username: database_uri.user,
72
+ password: database_uri.password,
73
+ }
74
+ end
75
+
76
+ def self.database_uri
77
+ return unless ENV['DATABASE_URL']
78
+ @_database_uri ||= URI.parse(ENV['DATABASE_URL'])
79
+ end
80
+
81
+ def self.settings_from_args
82
+ settings = { adapter: 'mysql2', host: host, username: username }
83
+ settings.merge!(password: password) if password
84
+ settings
85
+ end
61
86
  end
62
87
  end
data/lib/slodd/github.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
- require "open-uri"
2
+ require 'open-uri'
3
3
 
4
4
  module Slodd
5
5
  class Github
@@ -29,8 +29,8 @@ module Slodd
29
29
 
30
30
  def headers
31
31
  {
32
- "Accept" => "application/vnd.github.3.raw",
33
- "Authorization" => "token #{token}"
32
+ 'Accept' => 'application/vnd.github.3.raw',
33
+ 'Authorization' => "token #{token}",
34
34
  }
35
35
  end
36
36
  end
data/lib/slodd/http.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
- require "open-uri"
2
+ require 'open-uri'
3
3
 
4
4
  module Slodd
5
5
  class Http
data/lib/slodd/runner.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
- require "active_record"
3
- require "mysql2"
2
+ require 'active_record'
3
+ require 'mysql2'
4
4
 
5
5
  module Slodd
6
6
  class Runner
@@ -15,7 +15,7 @@ module Slodd
15
15
  def run!
16
16
  Config.databases.each do |database|
17
17
  create_database(database)
18
- eval(schema)
18
+ eval(schema) # rubocop:disable Lint/Eval
19
19
  end
20
20
  end
21
21
 
@@ -39,7 +39,7 @@ module Slodd
39
39
  end
40
40
 
41
41
  def options
42
- { charset: "utf8", collation: "utf8_unicode_ci" }
42
+ { charset: 'utf8', collation: 'utf8_unicode_ci' }
43
43
  end
44
44
 
45
45
  def error_message(sqlerr, database)
data/lib/slodd/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # encoding: utf-8
2
2
  module Slodd
3
- VERSION = "0.1.4"
3
+ VERSION = '0.1.5'
4
4
  end
data/slodd.gemspec CHANGED
@@ -1,25 +1,26 @@
1
1
  # -*- encoding: utf-8 -*-
2
- lib = File.expand_path("../lib", __FILE__)
2
+ lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "slodd/version"
4
+ require 'slodd/version'
5
+ require 'English'
5
6
 
6
7
  Gem::Specification.new do |gem|
7
- gem.name = "slodd"
8
+ gem.name = 'slodd'
8
9
  gem.version = Slodd::VERSION
9
- gem.authors = ["Ed Robinson"]
10
- gem.email = ["ed.robinson@reevoo.com"]
11
- gem.description = "Schema Loading On Dependent Databases"
12
- gem.summary = "Schema Loading On Dependent Databases"
13
- gem.homepage = "https://github.com/errm/slodd"
10
+ gem.authors = ['Ed Robinson']
11
+ gem.email = ['ed.robinson@reevoo.com']
12
+ gem.description = 'Schema Loading On Dependent Databases'
13
+ gem.summary = 'Schema Loading On Dependent Databases'
14
+ gem.homepage = 'https://github.com/errm/slodd'
14
15
 
15
- gem.files = `git ls-files`.split($/)
16
+ gem.files = `git ls-files`.split($RS)
16
17
  gem.executables = gem.files.grep(/^bin\//).map { |f| File.basename(f) }
17
18
  gem.test_files = gem.files.grep(/^(test|spec|features)\//)
18
- gem.require_paths = ["lib"]
19
- gem.add_dependency("activerecord")
20
- gem.add_dependency("mysql2")
21
- gem.add_development_dependency("rspec")
22
- gem.add_development_dependency("rake")
23
- gem.add_development_dependency("simplecov")
24
- gem.add_development_dependency("rubocop")
19
+ gem.require_paths = ['lib']
20
+ gem.add_dependency('activerecord')
21
+ gem.add_dependency('mysql2')
22
+ gem.add_development_dependency('rspec')
23
+ gem.add_development_dependency('rake')
24
+ gem.add_development_dependency('codeclimate-test-reporter')
25
+ gem.add_development_dependency('reevoocop')
25
26
  end
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
- require "spec_helper"
2
+ require 'spec_helper'
3
3
 
4
4
  describe Slodd::Config do
5
5
  subject { described_class }
@@ -8,181 +8,205 @@ describe Slodd::Config do
8
8
  subject.reset
9
9
  end
10
10
 
11
- describe "attributes" do
12
- describe ".path" do
13
- it "has a default" do
14
- expect(subject.path).to eq "db/schema.rb"
11
+ describe 'attributes' do
12
+ describe '.path' do
13
+ it 'has a default' do
14
+ expect(subject.path).to eq 'db/schema.rb'
15
15
  end
16
16
 
17
- it "can be overridden" do
18
- subject.path = "dingdong/schema.rb"
19
- expect(subject.path).to eq "dingdong/schema.rb"
17
+ it 'can be overridden' do
18
+ subject.path = 'dingdong/schema.rb'
19
+ expect(subject.path).to eq 'dingdong/schema.rb'
20
20
  end
21
21
  end
22
22
 
23
- describe "github attrs" do
23
+ describe 'github attrs' do
24
24
  before do
25
- subject.github = "errm/awesome_rails_app"
25
+ subject.github = 'errm/awesome_rails_app'
26
26
  end
27
27
 
28
- describe ".owner" do
29
- specify { expect(subject.owner).to eq "errm" }
28
+ describe '.owner' do
29
+ specify { expect(subject.owner).to eq 'errm' }
30
30
  end
31
31
 
32
- describe ".repo" do
33
- specify { expect(subject.repo).to eq "awesome_rails_app" }
32
+ describe '.repo' do
33
+ specify { expect(subject.repo).to eq 'awesome_rails_app' }
34
34
  end
35
35
  end
36
36
 
37
- describe ".username" do
38
- it "has a default" do
39
- expect(subject.username).to eq "root"
37
+ describe '.username' do
38
+ it 'has a default' do
39
+ expect(subject.username).to eq 'root'
40
40
  end
41
41
 
42
- it "can be overridden" do
43
- subject.username = "mysqlusr"
44
- expect(subject.username).to eq "mysqlusr"
42
+ it 'can be overridden' do
43
+ subject.username = 'mysqlusr'
44
+ expect(subject.username).to eq 'mysqlusr'
45
45
  end
46
46
  end
47
47
 
48
- describe ".password" do
49
- it "defaults to nil" do
48
+ describe '.password' do
49
+ it 'defaults to nil' do
50
50
  expect(subject.password).to be_nil
51
51
  end
52
52
 
53
- it "can be overridden" do
54
- subject.password = "mysqlpass"
55
- expect(subject.password).to eq "mysqlpass"
53
+ it 'can be overridden' do
54
+ subject.password = 'mysqlpass'
55
+ expect(subject.password).to eq 'mysqlpass'
56
56
  end
57
57
  end
58
58
 
59
- describe ".url" do
60
- it "defaults to nil" do
59
+ describe '.url' do
60
+ it 'defaults to nil' do
61
61
  expect(subject.url).to be_nil
62
62
  end
63
63
 
64
- it "can be overridden" do
65
- subject.url = "http://some.site.com/schema.rb"
66
- expect(subject.url).to eq "http://some.site.com/schema.rb"
64
+ it 'can be overridden' do
65
+ subject.url = 'http://some.site.com/schema.rb'
66
+ expect(subject.url).to eq 'http://some.site.com/schema.rb'
67
67
  end
68
68
  end
69
69
 
70
- describe ".fetcher" do
71
- it "defaults to Local" do
70
+ describe '.fetcher' do
71
+ it 'defaults to Local' do
72
72
  expect(subject.fetcher.class).to eq Slodd::Local
73
73
  end
74
74
 
75
- it "returns Github if details are supplied" do
76
- subject.github = "errm/awesome_rails_app"
77
- subject.token = "oauth token"
75
+ it 'returns Github if details are supplied' do
76
+ subject.github = 'errm/awesome_rails_app'
77
+ subject.token = 'oauth token'
78
78
  expect(subject.fetcher.class).to eq Slodd::Github
79
79
  end
80
80
 
81
- it "rasies an argument error if no github token is supplied" do
82
- subject.github = "errm/awesome_rails_app"
81
+ it 'rasies an argument error if no github token is supplied' do
82
+ subject.github = 'errm/awesome_rails_app'
83
83
  expect { subject.fetcher }.to raise_error(ArgumentError)
84
84
  end
85
85
 
86
- it "rasies an argument error if the github string is malformed" do
87
- subject.github = "errm"
88
- subject.token = "oauth token"
86
+ it 'rasies an argument error if the github string is malformed' do
87
+ subject.github = 'errm'
88
+ subject.token = 'oauth token'
89
89
  expect { subject.fetcher }.to raise_error(ArgumentError)
90
90
  end
91
91
 
92
- it "returns Http if a url is supplied" do
93
- subject.url = "http://some.url/schema.rb"
92
+ it 'returns Http if a url is supplied' do
93
+ subject.url = 'http://some.url/schema.rb'
94
94
  expect(subject.fetcher.class).to eq Slodd::Http
95
95
  end
96
96
  end
97
97
 
98
- describe ".attributes" do
99
- context "Github" do
100
- it "returns all the arguments needed by github" do
101
- subject.github = "errm/awesome_rails_app"
102
- subject.token = "oauth token"
103
- subject.ref = "my-awesome-branch"
98
+ describe '.attributes' do
99
+ context 'Github' do
100
+ it 'returns all the arguments needed by github' do
101
+ subject.github = 'errm/awesome_rails_app'
102
+ subject.token = 'oauth token'
103
+ subject.ref = 'my-awesome-branch'
104
104
  attrs = {
105
- owner: "errm",
106
- repo: "awesome_rails_app",
107
- token: "oauth token",
108
- path: "db/schema.rb",
109
- ref: "my-awesome-branch"
105
+ owner: 'errm',
106
+ repo: 'awesome_rails_app',
107
+ token: 'oauth token',
108
+ path: 'db/schema.rb',
109
+ ref: 'my-awesome-branch',
110
110
  }
111
111
  expect(subject.attributes).to eq attrs
112
112
  end
113
113
  end
114
114
 
115
- context "Local" do
116
- it "returns all the arguments needed by Local" do
115
+ context 'Local' do
116
+ it 'returns all the arguments needed by Local' do
117
117
  attrs = {
118
- path: "db/schema.rb"
118
+ path: 'db/schema.rb',
119
119
  }
120
120
  expect(subject.attributes).to eq attrs
121
121
  end
122
122
  end
123
123
 
124
- context "Http" do
125
- it "returns all the arguments needed by Http" do
126
- subject.url = "http://some.url.com/db/schema.rb"
124
+ context 'Http' do
125
+ it 'returns all the arguments needed by Http' do
126
+ subject.url = 'http://some.url.com/db/schema.rb'
127
127
  attrs = {
128
- path: "db/schema.rb",
129
- url: "http://some.url.com/db/schema.rb"
128
+ path: 'db/schema.rb',
129
+ url: 'http://some.url.com/db/schema.rb',
130
130
  }
131
131
  expect(subject.attributes).to eq attrs
132
132
  end
133
133
  end
134
134
  end
135
135
 
136
- describe ".databases" do
137
- it "defaults to empty array" do
136
+ describe '.databases' do
137
+ it 'defaults to empty array' do
138
138
  expect(subject.databases).to eq []
139
139
  end
140
140
 
141
- it "is an array of names" do
142
- subject.databases = "db1 db2 db3"
141
+ it 'is an array of names' do
142
+ subject.databases = 'db1 db2 db3'
143
143
  expect(subject.databases).to eq %w(db1 db2 db3)
144
144
  end
145
145
 
146
- it "is an array of one name" do
147
- subject.databases = "db1"
148
- expect(subject.databases).to eq ["db1"]
146
+ it 'is an array of one name' do
147
+ subject.databases = 'db1'
148
+ expect(subject.databases).to eq ['db1']
149
149
  end
150
150
  end
151
151
 
152
- describe ".database_settings" do
153
- context "without a password" do
154
- it "returns the settings" do
152
+ describe '.database_settings' do
153
+ context 'without a password' do
154
+ it 'returns the settings' do
155
155
  settings = {
156
- adapter: "mysql2",
157
- host: "localhost",
158
- username: "root"
156
+ adapter: 'mysql2',
157
+ host: 'localhost',
158
+ username: 'root',
159
159
  }
160
160
  expect(subject.database_settings).to eq settings
161
161
  end
162
162
  end
163
163
 
164
- context "with a password" do
165
- it "returns the settings" do
166
- subject.password = "brian"
164
+ context 'with a password' do
165
+ it 'returns the settings' do
166
+ subject.password = 'brian'
167
167
  settings = {
168
- adapter: "mysql2",
169
- host: "localhost",
170
- username: "root",
171
- password: "brian"
168
+ adapter: 'mysql2',
169
+ host: 'localhost',
170
+ username: 'root',
171
+ password: 'brian',
172
172
  }
173
173
  expect(subject.database_settings).to eq settings
174
174
  end
175
175
  end
176
+
177
+ context 'with a database url in the environment' do
178
+ before do
179
+ ENV['DATABASE_URL'] = 'mysql2://nova:sekret@127.0.0.1/foo_bar'
180
+ end
181
+
182
+ after do
183
+ ENV['DATABASE_URL'] = nil
184
+ end
185
+
186
+ it 'returns the settings' do
187
+ settings = {
188
+ adapter: 'mysql2',
189
+ host: '127.0.0.1',
190
+ username: 'nova',
191
+ password: 'sekret',
192
+ }
193
+ expect(subject.database_settings).to eq settings
194
+ end
195
+
196
+ it 'sets the database' do
197
+ expect(subject.databases).to eq ['foo_bar']
198
+ end
199
+ end
176
200
  end
177
201
 
178
- describe ".host" do
179
- it "defaults to localhost" do
180
- expect(subject.host).to eq "localhost"
202
+ describe '.host' do
203
+ it 'defaults to localhost' do
204
+ expect(subject.host).to eq 'localhost'
181
205
  end
182
206
 
183
- it "it can be overridden" do
184
- subject.host = "db1.something.com"
185
- expect(subject.host).to eq "db1.something.com"
207
+ it 'it can be overridden' do
208
+ subject.host = 'db1.something.com'
209
+ expect(subject.host).to eq 'db1.something.com'
186
210
  end
187
211
  end
188
212
  end
@@ -1,11 +1,11 @@
1
1
  # encoding: utf-8
2
- require "spec_helper"
2
+ require 'spec_helper'
3
3
 
4
4
  describe Slodd::Github do
5
- let(:owner) { "errm" }
6
- let(:repo) { "awesome_rails_app" }
7
- let(:path) { "database/schema.rb" }
8
- let(:token) { "secret-oauth-token" }
5
+ let(:owner) { 'errm' }
6
+ let(:repo) { 'awesome_rails_app' }
7
+ let(:path) { 'database/schema.rb' }
8
+ let(:token) { 'secret-oauth-token' }
9
9
  let(:ref) { nil }
10
10
 
11
11
  let(:schema) { double(read: nil) }
@@ -16,7 +16,7 @@ describe Slodd::Github do
16
16
  repo: repo,
17
17
  path: path,
18
18
  token: token,
19
- ref: ref
19
+ ref: ref,
20
20
  )
21
21
  end
22
22
 
@@ -24,8 +24,8 @@ describe Slodd::Github do
24
24
  "https://api.github.com/repos/#{owner}/#{repo}/contents/#{path}"
25
25
  end
26
26
 
27
- describe "#schema" do
28
- it "hits the correct url" do
27
+ describe '#schema' do
28
+ it 'hits the correct url' do
29
29
  allow(subject).to receive(:open) do |url, _|
30
30
  expect(url).to eq(expected_url)
31
31
  schema
@@ -34,10 +34,10 @@ describe Slodd::Github do
34
34
  subject.schema
35
35
  end
36
36
 
37
- context "with a ref" do
38
- let(:ref) { "exciting-feature-branch" }
37
+ context 'with a ref' do
38
+ let(:ref) { 'exciting-feature-branch' }
39
39
 
40
- it "hits a url including the ref param" do
40
+ it 'hits a url including the ref param' do
41
41
  allow(subject).to receive(:open) do |url, _|
42
42
  expect(url).to eq(expected_url + "?ref=#{ref}")
43
43
  schema
@@ -47,28 +47,28 @@ describe Slodd::Github do
47
47
  end
48
48
  end
49
49
 
50
- it "uses the correct token" do
50
+ it 'uses the correct token' do
51
51
  allow(subject).to receive(:open) do |_, headers|
52
- expect(headers["Authorization"]).to eq "token #{token}"
52
+ expect(headers['Authorization']).to eq "token #{token}"
53
53
  schema
54
54
  end
55
55
 
56
56
  subject.schema
57
57
  end
58
58
 
59
- it "requests the raw mediatype" do
59
+ it 'requests the raw mediatype' do
60
60
  allow(subject).to receive(:open) do |_, headers|
61
- expect(headers["Accept"]).to eq "application/vnd.github.3.raw"
61
+ expect(headers['Accept']).to eq 'application/vnd.github.3.raw'
62
62
  schema
63
63
  end
64
64
 
65
65
  subject.schema
66
66
  end
67
67
 
68
- it "returns the schema" do
68
+ it 'returns the schema' do
69
69
  allow(subject).to receive(:open).and_return(schema)
70
- allow(schema).to receive(:read).and_return("the schema")
71
- expect(subject.schema).to eq "the schema"
70
+ allow(schema).to receive(:read).and_return('the schema')
71
+ expect(subject.schema).to eq 'the schema'
72
72
  end
73
73
  end
74
74
  end
@@ -1,15 +1,15 @@
1
1
  # encoding: utf-8
2
- require "spec_helper"
2
+ require 'spec_helper'
3
3
 
4
4
  describe Slodd::Http do
5
5
  let(:url) { double }
6
- let(:schema_file) { double(read: "the schema") }
6
+ let(:schema_file) { double(read: 'the schema') }
7
7
  subject { described_class.new(url: url) }
8
8
 
9
- describe "#schema" do
10
- it "downloads the schema from the url given" do
9
+ describe '#schema' do
10
+ it 'downloads the schema from the url given' do
11
11
  expect(subject).to receive(:open).with(url).and_return(schema_file)
12
- expect(subject.schema).to eq "the schema"
12
+ expect(subject.schema).to eq 'the schema'
13
13
  end
14
14
  end
15
15
  end
@@ -1,11 +1,11 @@
1
1
  # encoding: utf-8
2
- require "spec_helper"
2
+ require 'spec_helper'
3
3
 
4
4
  describe Slodd::Local do
5
5
  subject { described_class.new(path: schema_path) }
6
6
 
7
- describe "#schema" do
8
- it "reads the file" do
7
+ describe '#schema' do
8
+ it 'reads the file' do
9
9
  expect(subject.schema).to eq File.read(schema_path)
10
10
  end
11
11
  end
@@ -1,20 +1,20 @@
1
1
  # encoding: utf-8
2
- require "spec_helper"
2
+ require 'spec_helper'
3
3
 
4
4
  describe Slodd::Runner do
5
5
  subject { described_class }
6
6
 
7
- describe "#run" do
7
+ describe '#run' do
8
8
  before do
9
9
  Slodd::Config.path = schema_path
10
- Slodd::Config.databases = "slodd_test"
10
+ Slodd::Config.databases = 'slodd_test'
11
11
  end
12
12
 
13
13
  after do
14
14
  Slodd::Config.reset
15
15
  end
16
16
 
17
- it "creates the database ready for testing" do
17
+ it 'creates the database ready for testing' do
18
18
  output = capture_stdout do
19
19
  subject.run!
20
20
  end
@@ -22,10 +22,10 @@ describe Slodd::Runner do
22
22
  expect(output).to match(/create_database\(slodd_test\)/)
23
23
 
24
24
  expect(Test.count).to eq 0
25
- Test.create(name: "James")
25
+ Test.create(name: 'James')
26
26
 
27
27
  expect(Test.count).to eq 1
28
- expect(Test.last.name).to eq "James"
28
+ expect(Test.last.name).to eq 'James'
29
29
  expect(`mysql -uroot -e "show databases;"`).to match(/slodd_test/)
30
30
 
31
31
  capture_stdout do
@@ -35,12 +35,12 @@ describe Slodd::Runner do
35
35
  expect(Test.count).to eq 0
36
36
  end
37
37
 
38
- context "with multiple databases" do
38
+ context 'with multiple databases' do
39
39
  before do
40
- Slodd::Config.databases = "slodd_test slodd_test_2"
40
+ Slodd::Config.databases = 'slodd_test slodd_test_2'
41
41
  end
42
42
 
43
- it "creates both databases" do
43
+ it 'creates both databases' do
44
44
  output = capture_stdout do
45
45
  subject.run!
46
46
  end
@@ -54,13 +54,13 @@ describe Slodd::Runner do
54
54
  end
55
55
  end
56
56
 
57
- context "when something is failing" do
57
+ context 'when something is failing' do
58
58
  before do
59
59
  allow(ActiveRecord::Base).to receive(:establish_connection)
60
- .and_raise(Mysql2::Error, "mysql error")
60
+ .and_raise(Mysql2::Error, 'mysql error')
61
61
  end
62
62
 
63
- it "ouputs a usefull message to stderr" do
63
+ it 'ouputs a usefull message to stderr' do
64
64
  message = capture_stderr do
65
65
  subject.run!
66
66
  end
data/spec/spec_helper.rb CHANGED
@@ -1,15 +1,22 @@
1
1
  # encoding: utf-8
2
- require "simplecov"
2
+ require 'simplecov'
3
+ require 'codeclimate-test-reporter'
4
+
5
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
6
+ SimpleCov::Formatter::HTMLFormatter,
7
+ CodeClimate::TestReporter::Formatter
8
+ ]
9
+
3
10
  SimpleCov.minimum_coverage 100
4
11
  SimpleCov.start
5
12
 
6
- require "slodd"
7
- require "stringio"
13
+ require 'slodd'
14
+ require 'stringio'
8
15
 
9
16
  RSpec.configure do |config|
10
17
  config.run_all_when_everything_filtered = true
11
18
  config.filter_run :focus
12
- config.order = "random"
19
+ config.order = 'random'
13
20
  end
14
21
 
15
22
  module Slodd
@@ -49,5 +56,5 @@ ensure
49
56
  end
50
57
 
51
58
  def schema_path
52
- File.join(File.dirname(__FILE__), "support", "schema.rb")
59
+ File.join(File.dirname(__FILE__), 'support', 'schema.rb')
53
60
  end
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  ActiveRecord::Schema.define(version: 1) do
3
- create_table "tests", force: true do |t|
4
- t.string "name"
3
+ create_table 'tests', force: true do |t|
4
+ t.string 'name'
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slodd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ed Robinson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-13 00:00:00.000000000 Z
11
+ date: 2015-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: simplecov
70
+ name: codeclimate-test-reporter
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: rubocop
84
+ name: reevoocop
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -105,7 +105,6 @@ extra_rdoc_files: []
105
105
  files:
106
106
  - ".gitignore"
107
107
  - ".rspec"
108
- - ".rubocop.yml"
109
108
  - ".ruby-version"
110
109
  - ".travis.yml"
111
110
  - Gemfile
@@ -147,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
146
  version: '0'
148
147
  requirements: []
149
148
  rubyforge_project:
150
- rubygems_version: 2.2.2
149
+ rubygems_version: 2.2.5
151
150
  signing_key:
152
151
  specification_version: 4
153
152
  summary: Schema Loading On Dependent Databases
data/.rubocop.yml DELETED
@@ -1,9 +0,0 @@
1
- AllCops:
2
- Exclude:
3
- - '*.gemspec'
4
- StringLiterals:
5
- EnforcedStyle: "double_quotes"
6
- Documentation:
7
- Enabled: false
8
- Eval:
9
- Enabled: false