slodd 0.1.8 → 0.1.9

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: 5895e32f16f7de60acc7fa7fff792e45d714ee2f
4
- data.tar.gz: 9c11ed125b4d5adc56bc7f3359e12ccb101bcbee
3
+ metadata.gz: 58ad0ed388dc2f17445eb085c9e95903c2714bc0
4
+ data.tar.gz: e175c62ef7ee59e0f6caef00c4826e3d01660bdb
5
5
  SHA512:
6
- metadata.gz: b848d14e7dca6b211ccf98b1214fa475414b6a59385b9b4c4cf4c6d8d43f5327512f3decd405083470a62f601e4632a11c646e35226c7494dccc349a0628ce7f
7
- data.tar.gz: 4f25cce1177b1de06a96ceab6997dc342fa67b04ff91407938dcb87486c8e6dcce8dddaffd2f94a59994d3821bf82a8d425d957baa00baff1a0acbb38142b9f6
6
+ metadata.gz: 68d653d3f5153d9b923ada555e1008db3d51ffbfe3f8ef871bfa00687171cf1761870d0bcc91d6d5de46bbb2b627ec864012072d888c9f68dbbac473f053f984
7
+ data.tar.gz: ef32c965d69e51fa93ffcd078f34049c1e8663965ea2b10fde0c9e418e27e0783fceb5c489b936dcff493b7ac786e68800cacf6aa9bb68b6d6531e972027bbfd
@@ -1 +1 @@
1
- 2.1.8
1
+ 2.3.5
@@ -1,6 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.4.1
4
- - 2.3.4
5
- - 2.2.7
3
+ - 2.3.5
4
+ - 2.2.8
6
5
  sudo: false
@@ -0,0 +1,20 @@
1
+ FROM quay.io/assemblyline/alpine:3.6
2
+
3
+ WORKDIR /app
4
+
5
+ COPY . .
6
+
7
+ RUN apk add --no-cache --virtual .builddeps \
8
+ build-base \
9
+ ca-certificates \
10
+ curl \
11
+ git \
12
+ mariadb-dev \
13
+ mariadb-client \
14
+ ruby$(cat .ruby-version) \
15
+ ruby$(cat .ruby-version)-dev \
16
+ ruby$(cat .ruby-version)-irb
17
+
18
+ RUN bundle install -j4 -r3
19
+
20
+ ENTRYPOINT ["bundle", "exec"]
@@ -0,0 +1,26 @@
1
+ version: '3.4'
2
+ services:
3
+ mysql:
4
+ image: mysql:8
5
+ restart: always
6
+ ports:
7
+ - "3306:3306"
8
+ environment:
9
+ MYSQL_ALLOW_EMPTY_PASSWORD: "true"
10
+ volumes:
11
+ - mysql-socket:/run/mysqld/
12
+
13
+ slodd:
14
+ build:
15
+ context: .
16
+ depends_on:
17
+ - mysql
18
+ volumes:
19
+ - type: bind
20
+ source: .
21
+ target: /app
22
+ - mysql-socket:/run/mysqld/
23
+ command: rake
24
+
25
+ volumes:
26
+ mysql-socket:
@@ -6,6 +6,7 @@ require "slodd/local"
6
6
  require "slodd/http"
7
7
  require "slodd/config"
8
8
  require "slodd/runner"
9
+ require "slodd/exceptions"
9
10
 
10
11
  module Slodd
11
12
  end
@@ -0,0 +1,4 @@
1
+ module Slodd
2
+ class GithubError < StandardError
3
+ end
4
+ end
@@ -15,6 +15,8 @@ module Slodd
15
15
 
16
16
  def schema
17
17
  @schema ||= open(url, headers).read
18
+ rescue OpenURI::HTTPError
19
+ raise Slodd::GithubError, "Check your credentials and the schema file location!"
18
20
  end
19
21
 
20
22
  private
@@ -24,7 +26,7 @@ module Slodd
24
26
  end
25
27
 
26
28
  def branch
27
- "?ref=#{ref}" if ref.present?
29
+ "?ref=#{ref}" unless ref.nil?
28
30
  end
29
31
 
30
32
  def headers
@@ -1,5 +1,6 @@
1
1
  # encoding: utf-8
2
2
  require "active_record"
3
+ require "active_record/connection_adapters/abstract_mysql_adapter"
3
4
  require "mysql2"
4
5
 
5
6
  module Slodd
@@ -10,12 +11,14 @@ module Slodd
10
11
 
11
12
  def initialize
12
13
  self.schema = Config.fetcher.schema
14
+ # patch AR to work with mysql 5.7
15
+ ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter::NATIVE_DATABASE_TYPES[:primary_key] = "int(11) auto_increment PRIMARY KEY" # rubocop:disable Metrics/LineLength
13
16
  end
14
17
 
15
18
  def run!
16
19
  Config.databases.each do |database|
17
20
  create_database(database)
18
- eval(schema) # rubocop:disable Lint/Eval
21
+ eval(schema) # rubocop:disable Security/Eval
19
22
  end
20
23
  end
21
24
 
@@ -1,4 +1,4 @@
1
1
  # encoding: utf-8
2
2
  module Slodd
3
- VERSION = "0.1.8".freeze
3
+ VERSION = "0.1.9".freeze
4
4
  end
@@ -18,7 +18,7 @@ Gem::Specification.new do |gem|
18
18
  gem.executables = gem.files.grep(/^bin\//).map { |f| File.basename(f) }
19
19
  gem.test_files = gem.files.grep(/^(test|spec|features)\//)
20
20
  gem.require_paths = ["lib"]
21
- gem.add_dependency("activerecord", "~> 3.2.22")
21
+ gem.add_dependency("activerecord", "~> 3.2.22.5")
22
22
  gem.add_dependency("mysql2", "~> 0.3.10")
23
23
  gem.add_development_dependency("rspec")
24
24
  gem.add_development_dependency("rake")
@@ -70,5 +70,17 @@ describe Slodd::Github do
70
70
  allow(schema).to receive(:read).and_return("the schema")
71
71
  expect(subject.schema).to eq "the schema"
72
72
  end
73
+
74
+ context "with an invalid or unauthorized token" do
75
+ let(:token) { "invalid-or-unauthorized-token" }
76
+
77
+ it "raises exception on Github 404" do
78
+ allow(subject).to receive(:open).and_raise(OpenURI::HTTPError.new("404 not found", nil))
79
+ expect { subject.schema }.to raise_exception(
80
+ Slodd::GithubError,
81
+ "Check your credentials and the schema file location!",
82
+ )
83
+ end
84
+ end
73
85
  end
74
86
  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.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ed Robinson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-10 00:00:00.000000000 Z
11
+ date: 2017-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 3.2.22
19
+ version: 3.2.22.5
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 3.2.22
26
+ version: 3.2.22.5
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mysql2
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -107,14 +107,17 @@ files:
107
107
  - ".rspec"
108
108
  - ".ruby-version"
109
109
  - ".travis.yml"
110
+ - Dockerfile
110
111
  - Gemfile
111
112
  - LICENCE
112
113
  - README.md
113
114
  - Rakefile
114
115
  - bin/gurl
115
116
  - bin/slodd
117
+ - docker-compose.yml
116
118
  - lib/slodd.rb
117
119
  - lib/slodd/config.rb
120
+ - lib/slodd/exceptions.rb
118
121
  - lib/slodd/github.rb
119
122
  - lib/slodd/http.rb
120
123
  - lib/slodd/local.rb
@@ -122,7 +125,7 @@ files:
122
125
  - lib/slodd/version.rb
123
126
  - slodd.gemspec
124
127
  - spec/lib/config_spec.rb
125
- - spec/lib/gitub_spec.rb
128
+ - spec/lib/github_spec.rb
126
129
  - spec/lib/http_spec.rb
127
130
  - spec/lib/local_spec.rb
128
131
  - spec/lib/runner_spec.rb
@@ -148,13 +151,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
151
  version: '0'
149
152
  requirements: []
150
153
  rubyforge_project:
151
- rubygems_version: 2.2.5
154
+ rubygems_version: 2.5.2.1
152
155
  signing_key:
153
156
  specification_version: 4
154
157
  summary: Schema Loading On Dependent Databases
155
158
  test_files:
156
159
  - spec/lib/config_spec.rb
157
- - spec/lib/gitub_spec.rb
160
+ - spec/lib/github_spec.rb
158
161
  - spec/lib/http_spec.rb
159
162
  - spec/lib/local_spec.rb
160
163
  - spec/lib/runner_spec.rb