slodd 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
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