declare_schema 0.1.1 → 0.1.2
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 +4 -4
- data/.travis.yml +37 -0
- data/CHANGELOG.md +10 -4
- data/Gemfile +0 -1
- data/Gemfile.lock +1 -2
- data/Rakefile +1 -1
- data/gemfiles/rails_4.gemfile +4 -6
- data/gemfiles/rails_5.gemfile +4 -6
- data/gemfiles/rails_6.gemfile +4 -6
- data/lib/declare_schema/version.rb +1 -1
- data/lib/generators/declare_schema/migration/migration_generator.rb +1 -0
- data/lib/generators/declare_schema/migration/migrator.rb +12 -7
- data/test/generators.rdoctest +6 -4
- metadata +3 -4
- data/.jenkins/Jenkinsfile +0 -72
- data/.jenkins/ruby_build_pod.yml +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 04233cec7c3c0cbcabde6b7731bc106bca8f416409c765af38eb5320d119824c
|
4
|
+
data.tar.gz: fc3f6b420e002fa41fd69c2c07e7013b3de4098b6033f9fc1dfc09947b9897ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89dfe6be533b57ee00b598fe3e5ed39005fb613e0b9b873623c780debe024cf3e10044114d902db6c26bb471e94212732a709d380383a2411d60b87d76e180aa
|
7
|
+
data.tar.gz: 71e59b6eddc79a1a2dccac6c8fecaa4d6c41cb99032311df9ec595a2c2c8098a845dd5409eb245d3489ad7a6135be88b78f27a511fda348200f7c120a964c8d4
|
data/.travis.yml
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
---
|
2
|
+
dist: trusty
|
3
|
+
os: linux
|
4
|
+
language: ruby
|
5
|
+
cache: bundler
|
6
|
+
rvm:
|
7
|
+
- 2.4.5
|
8
|
+
- 2.5.8
|
9
|
+
- 2.6.5
|
10
|
+
- 2.7.1
|
11
|
+
- ruby-head
|
12
|
+
gemfile:
|
13
|
+
- gemfiles/rails_4.gemfile
|
14
|
+
- gemfiles/rails_5.gemfile
|
15
|
+
- gemfiles/rails_6.gemfile
|
16
|
+
jobs:
|
17
|
+
fast_finish: false
|
18
|
+
exclude:
|
19
|
+
- gemfile: gemfiles/rails_4.gemfile
|
20
|
+
rvm: 2.7.1
|
21
|
+
- gemfile: gemfiles/rails_5.gemfile
|
22
|
+
rvm: 2.4.5
|
23
|
+
- gemfile: gemfiles/rails_6.gemfile
|
24
|
+
rvm: 2.4.5
|
25
|
+
allow_failures:
|
26
|
+
- rvm: ruby-head
|
27
|
+
before_install:
|
28
|
+
- rm -f /home/travis/.rvm/rubies/ruby-2.*/lib/ruby/gems/2.*/specifications/default/bundler-2.*.gemspec
|
29
|
+
- echo y | rvm @global do gem install bundler -v 1.17.3 --force --default
|
30
|
+
- gem install bundler -v 1.17.3 --force --default
|
31
|
+
- gem install bundler -v 1.17.3
|
32
|
+
install:
|
33
|
+
- bundle --version
|
34
|
+
- bundle install --jobs=3 --retry=3 --path=${BUNDLE_PATH:-vendor/bundle}
|
35
|
+
script:
|
36
|
+
- bundle exec rake test:prepare_testapp[force]
|
37
|
+
- bundle exec rake test:all < test_responses.txt
|
data/CHANGELOG.md
CHANGED
@@ -1,11 +1,17 @@
|
|
1
|
-
# CHANGELOG for `
|
1
|
+
# CHANGELOG for `declare_schema`
|
2
2
|
|
3
3
|
Inspired by [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
4
4
|
|
5
5
|
Note: this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
6
|
|
7
|
-
## [0.1.
|
7
|
+
## [0.1.2] - 2020-09-29
|
8
|
+
### Changed
|
9
|
+
- Added travis support and created 2 specs as a starting point.
|
10
|
+
|
11
|
+
|
12
|
+
## [0.1.1] - 2020-09-24
|
8
13
|
### Added
|
9
|
-
- Initial version from https://github.com/Invoca/
|
14
|
+
- Initial version from https://github.com/Invoca/hobo_fields v4.1.0.
|
10
15
|
|
11
|
-
[0.1.
|
16
|
+
[0.1.2]: https://github.com/Invoca/declare_schema/compare/v0.1.1...v0.1.2
|
17
|
+
[0.1.1]: https://github.com/Invoca/declare_schema/tree/v0.1.1
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/Rakefile
CHANGED
@@ -29,7 +29,7 @@ namespace "test" do
|
|
29
29
|
desc "Run the doctests"
|
30
30
|
task :doctest do |_t|
|
31
31
|
files = Dir['test/*.rdoctest'].sort.map { |f| File.expand_path(f) }.join(' ')
|
32
|
-
system("#{RUBYDOCTEST} #{files}") or exit(1)
|
32
|
+
system("#{RUBYDOCTEST} --trace --verbose #{files}") or exit(1)
|
33
33
|
end
|
34
34
|
|
35
35
|
desc "Prepare a rails application for testing"
|
data/gemfiles/rails_4.gemfile
CHANGED
@@ -1,25 +1,23 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
1
|
# This file was generated by Appraisal
|
4
2
|
|
5
3
|
source "https://rubygems.org"
|
6
|
-
source "https://gem.fury.io/invoca"
|
7
4
|
|
8
5
|
gem "appraisal"
|
6
|
+
gem "bundler", "< 2"
|
7
|
+
gem "climate_control", "~> 0.2"
|
9
8
|
gem "pry"
|
10
9
|
gem "pry-byebug"
|
11
10
|
gem "rails", "~> 4.2"
|
12
11
|
gem "responders"
|
12
|
+
gem "rspec"
|
13
|
+
gem "rubocop"
|
13
14
|
gem "rubydoctest"
|
14
15
|
gem "sqlite3", "~> 1.3.0"
|
15
|
-
gem "test_overrides"
|
16
16
|
gem "yard"
|
17
17
|
|
18
18
|
group :testapp do
|
19
19
|
gem "bootsnap", ">= 1.1.0", require: false
|
20
|
-
gem "kramdown"
|
21
20
|
gem "listen"
|
22
|
-
gem "RedCloth"
|
23
21
|
end
|
24
22
|
|
25
23
|
gemspec path: "../"
|
data/gemfiles/rails_5.gemfile
CHANGED
@@ -1,25 +1,23 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
1
|
# This file was generated by Appraisal
|
4
2
|
|
5
3
|
source "https://rubygems.org"
|
6
|
-
source "https://gem.fury.io/invoca"
|
7
4
|
|
8
5
|
gem "appraisal"
|
6
|
+
gem "bundler", "< 2"
|
7
|
+
gem "climate_control", "~> 0.2"
|
9
8
|
gem "pry"
|
10
9
|
gem "pry-byebug"
|
11
10
|
gem "rails", "~> 5.2"
|
12
11
|
gem "responders"
|
12
|
+
gem "rspec"
|
13
|
+
gem "rubocop"
|
13
14
|
gem "rubydoctest"
|
14
15
|
gem "sqlite3"
|
15
|
-
gem "test_overrides"
|
16
16
|
gem "yard"
|
17
17
|
|
18
18
|
group :testapp do
|
19
19
|
gem "bootsnap", ">= 1.1.0", require: false
|
20
|
-
gem "kramdown"
|
21
20
|
gem "listen"
|
22
|
-
gem "RedCloth"
|
23
21
|
end
|
24
22
|
|
25
23
|
gemspec path: "../"
|
data/gemfiles/rails_6.gemfile
CHANGED
@@ -1,25 +1,23 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
1
|
# This file was generated by Appraisal
|
4
2
|
|
5
3
|
source "https://rubygems.org"
|
6
|
-
source "https://gem.fury.io/invoca"
|
7
4
|
|
8
5
|
gem "appraisal"
|
6
|
+
gem "bundler", "< 2"
|
7
|
+
gem "climate_control", "~> 0.2"
|
9
8
|
gem "pry"
|
10
9
|
gem "pry-byebug"
|
11
10
|
gem "rails", "~> 6.0"
|
12
11
|
gem "responders"
|
12
|
+
gem "rspec"
|
13
|
+
gem "rubocop"
|
13
14
|
gem "rubydoctest"
|
14
15
|
gem "sqlite3"
|
15
|
-
gem "test_overrides"
|
16
16
|
gem "yard"
|
17
17
|
|
18
18
|
group :testapp do
|
19
19
|
gem "bootsnap", ">= 1.1.0", require: false
|
20
|
-
gem "kramdown"
|
21
20
|
gem "listen"
|
22
|
-
gem "RedCloth"
|
23
21
|
end
|
24
22
|
|
25
23
|
gemspec path: "../"
|
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'rails/generators/migration'
|
4
4
|
require 'rails/generators/active_record'
|
5
5
|
require 'generators/declare_schema/support/thor_shell'
|
6
|
+
require_relative '../../../declare_schema/model/field_spec'
|
6
7
|
|
7
8
|
module DeclareSchema
|
8
9
|
class MigrationGenerator < Rails::Generators::Base
|
@@ -218,13 +218,18 @@ module Generators
|
|
218
218
|
end
|
219
219
|
|
220
220
|
def always_ignore_tables
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
221
|
+
sessions_table =
|
222
|
+
begin
|
223
|
+
if defined?(CGI::Session::ActiveRecordStore::Session) &&
|
224
|
+
defined?(ActionController::Base) &&
|
225
|
+
ActionController::Base.session_store == CGI::Session::ActiveRecordStore
|
226
|
+
CGI::Session::ActiveRecordStore::Session.table_name
|
227
|
+
end
|
228
|
+
rescue
|
229
|
+
nil
|
230
|
+
end
|
231
|
+
|
232
|
+
['schema_info', 'schema_migrations', 'ar_internal_metadata', sessions_table].compact
|
228
233
|
end
|
229
234
|
|
230
235
|
def generate
|
data/test/generators.rdoctest
CHANGED
@@ -2,7 +2,7 @@ doctest: prepare testapp environment
|
|
2
2
|
doctest_require: 'prepare_testapp'
|
3
3
|
|
4
4
|
doctest: generate declare_schema:model
|
5
|
-
>> Rails::Generators.invoke 'declare_schema:model', %w(alpha/beta one:string two:integer)
|
5
|
+
>> begin; Rails::Generators.invoke 'declare_schema:model', %w(alpha/beta one:string two:integer); rescue => ex; $stderr.puts "#{ex.class}: #{ex}\n#{ex.backtrace.join("\n")}"; end
|
6
6
|
|
7
7
|
|
8
8
|
doctest: model file exists
|
@@ -43,16 +43,18 @@ doctest: fixture file exists
|
|
43
43
|
|
44
44
|
|
45
45
|
doctest: generate declare_schema:migration
|
46
|
-
>>
|
47
|
-
>>
|
46
|
+
>> puts "#{Rails.root}/app/models/alpha.rb"
|
47
|
+
>> require "#{Rails.root}/app/models/alpha.rb" if Rails::VERSION::MAJOR > 4
|
48
|
+
>> require "#{Rails.root}/app/models/alpha/beta.rb" if Rails::VERSION::MAJOR > 4
|
48
49
|
>> Rails::Generators.invoke 'declare_schema:migration', %w(-n -m)
|
49
50
|
|
50
51
|
doctest: schema.rb file exists
|
52
|
+
>> system("ls -al db")
|
51
53
|
>> File.exist? 'db/schema.rb'
|
52
54
|
=> true
|
53
55
|
|
54
56
|
doctest: db file exists
|
55
|
-
>> File.exist?
|
57
|
+
>> File.exist?("db/development.sqlite3") || File.exist?("db/test.sqlite3")
|
56
58
|
=> true
|
57
59
|
|
58
60
|
doctest: Alpha::Beta class exists
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: declare_schema
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Invoca Development adapted from hobo_fields by Tom Locke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-09-
|
11
|
+
date: 2020-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -35,11 +35,10 @@ files:
|
|
35
35
|
- ".dependabot/config.yml"
|
36
36
|
- ".github/workflows/gem_release.yml"
|
37
37
|
- ".gitignore"
|
38
|
-
- ".jenkins/Jenkinsfile"
|
39
|
-
- ".jenkins/ruby_build_pod.yml"
|
40
38
|
- ".rspec"
|
41
39
|
- ".rubocop.yml"
|
42
40
|
- ".ruby-version"
|
41
|
+
- ".travis.yml"
|
43
42
|
- Appraisals
|
44
43
|
- CHANGELOG.md
|
45
44
|
- Gemfile
|
data/.jenkins/Jenkinsfile
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
#!/usr/bin/groovy
|
2
|
-
@Library('jenkins-pipeline@v0.5.1')
|
3
|
-
import com.invoca.ci.*;
|
4
|
-
|
5
|
-
pipeline {
|
6
|
-
agent {
|
7
|
-
kubernetes {
|
8
|
-
defaultContainer 'ruby'
|
9
|
-
yamlFile '.jenkins/ruby_build_pod.yml'
|
10
|
-
}
|
11
|
-
}
|
12
|
-
|
13
|
-
environment {
|
14
|
-
GITHUB_TOKEN = credentials('github_token')
|
15
|
-
BUNDLE_GEM__FURY__IO = credentials('gemfury_deploy_token')
|
16
|
-
}
|
17
|
-
|
18
|
-
stages {
|
19
|
-
stage('Setup') {
|
20
|
-
steps {
|
21
|
-
updateGitHubStatus('clean-build', 'pending', "Running unit tests")
|
22
|
-
sh 'bundle install'
|
23
|
-
sh 'bundle exec appraisal install'
|
24
|
-
}
|
25
|
-
}
|
26
|
-
|
27
|
-
stage("Current Unit Tests") {
|
28
|
-
steps {
|
29
|
-
sh 'bundle exec rake test:prepare_testapp[force]'
|
30
|
-
sh 'bundle exec rake test:all < test_responses.txt'
|
31
|
-
}
|
32
|
-
}
|
33
|
-
|
34
|
-
stage("Rails 4 Appraisal") {
|
35
|
-
steps {
|
36
|
-
sh 'bundle exec appraisal rails-4 rake test:prepare_testapp[force]'
|
37
|
-
sh 'bundle exec appraisal rails-4 rake test:all < test_responses.txt'
|
38
|
-
}
|
39
|
-
}
|
40
|
-
|
41
|
-
stage("Rails 5 Appraisal") {
|
42
|
-
steps {
|
43
|
-
sh 'bundle exec appraisal rails-5 rake test:prepare_testapp[force]'
|
44
|
-
sh 'bundle exec appraisal rails-5 rake test:all < test_responses.txt'
|
45
|
-
}
|
46
|
-
}
|
47
|
-
|
48
|
-
stage("Rails 6 Appraisal") {
|
49
|
-
steps {
|
50
|
-
sh 'bundle exec appraisal rails-6 rake test:prepare_testapp[force]'
|
51
|
-
sh 'bundle exec appraisal rails-6 rake test:all < test_responses.txt'
|
52
|
-
}
|
53
|
-
}
|
54
|
-
}
|
55
|
-
|
56
|
-
post {
|
57
|
-
success { updateGitHubStatus('clean-build', 'success', "Unit tests passed") }
|
58
|
-
failure { updateGitHubStatus('clean-build', 'failure', "Unit tests failed") }
|
59
|
-
}
|
60
|
-
}
|
61
|
-
|
62
|
-
void updateGitHubStatus(String context, String status, String description) {
|
63
|
-
gitHubStatus([
|
64
|
-
repoSlug: 'Invoca/declare_schema',
|
65
|
-
sha: env.GIT_COMMIT,
|
66
|
-
description: description,
|
67
|
-
context: context,
|
68
|
-
targetURL: env.RUN_DISPLAY_URL,
|
69
|
-
token: env.GITHUB_TOKEN,
|
70
|
-
status: status
|
71
|
-
])
|
72
|
-
}
|
data/.jenkins/ruby_build_pod.yml
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
|
2
|
-
---
|
3
|
-
apiVersion: v1
|
4
|
-
kind: Pod
|
5
|
-
metadata:
|
6
|
-
labels:
|
7
|
-
jenkins/declare_schema: 'true'
|
8
|
-
namespace: jenkins
|
9
|
-
name: declare_schema
|
10
|
-
spec:
|
11
|
-
containers:
|
12
|
-
- name: ruby
|
13
|
-
image: ruby:2.6.5
|
14
|
-
tty: true
|
15
|
-
resources:
|
16
|
-
requests:
|
17
|
-
memory: "100Mi"
|
18
|
-
command:
|
19
|
-
- cat
|