schema_dev 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.
- data/Gemfile +0 -2
- data/Rakefile +2 -0
- data/lib/schema_dev/config.rb +18 -13
- data/lib/schema_dev/version.rb +1 -1
- data/schema_dev.gemspec +2 -1
- data/spec/config_spec.rb +1 -1
- data/spec/spec_helper.rb +2 -1
- metadata +68 -28
- checksums.yaml +0 -7
data/Gemfile
CHANGED
data/Rakefile
CHANGED
data/lib/schema_dev/config.rb
CHANGED
|
@@ -5,6 +5,7 @@ require 'its-it'
|
|
|
5
5
|
require 'key_struct'
|
|
6
6
|
require 'pathname'
|
|
7
7
|
require 'yaml'
|
|
8
|
+
require 'hash_keyword_args'
|
|
8
9
|
|
|
9
10
|
module SchemaDev
|
|
10
11
|
CONFIG_FILE = "schema_dev.yml"
|
|
@@ -13,8 +14,10 @@ module SchemaDev
|
|
|
13
14
|
|
|
14
15
|
attr_accessor :quick, :db
|
|
15
16
|
|
|
17
|
+
def self._reset ; @@config = nil end # for use by rspec
|
|
18
|
+
|
|
16
19
|
def self.load
|
|
17
|
-
@@config ||= new
|
|
20
|
+
@@config ||= new((YAML.load Pathname.new(CONFIG_FILE).read).deep_symbolize_keys)
|
|
18
21
|
end
|
|
19
22
|
|
|
20
23
|
class Tuple < KeyStruct[:ruby, :rails, :db]
|
|
@@ -34,31 +37,33 @@ module SchemaDev
|
|
|
34
37
|
end
|
|
35
38
|
end
|
|
36
39
|
|
|
37
|
-
def initialize(
|
|
38
|
-
|
|
39
|
-
@
|
|
40
|
-
@
|
|
41
|
-
@
|
|
42
|
-
@
|
|
43
|
-
@
|
|
40
|
+
def initialize(opts={}) # once we no longer support ruby 1.9.3, can switch to native keyword args
|
|
41
|
+
opts = opts.keyword_args(ruby: :required, rails: :required, db: nil, exclude: nil, notify: nil, quick: nil)
|
|
42
|
+
@ruby = Array.wrap(opts.ruby)
|
|
43
|
+
@rails = Array.wrap(opts.rails)
|
|
44
|
+
@db = Array.wrap(opts.db)
|
|
45
|
+
@exclude = Array.wrap(opts.exclude).map(&:symbolize_keys).map {|tuple| Tuple.new(tuple)}
|
|
46
|
+
@notify = Array.wrap(opts.notify)
|
|
47
|
+
@quick = Array.wrap(opts.quick || {ruby: @ruby.last, rails: @rails.last, db: @db.andand.last})
|
|
44
48
|
end
|
|
45
49
|
|
|
46
50
|
def db?
|
|
47
51
|
@db.any?
|
|
48
52
|
end
|
|
49
53
|
|
|
50
|
-
def matrix(
|
|
54
|
+
def matrix(opts={}) # once we no longer support ruby 1.9.3, can switch to native keyword args
|
|
55
|
+
opts = opts.keyword_args(quick: false, ruby: nil, rails: nil, db: nil)
|
|
51
56
|
use_ruby = @ruby
|
|
52
57
|
use_rails = @rails
|
|
53
58
|
use_db = @db
|
|
54
|
-
if quick
|
|
59
|
+
if opts.quick
|
|
55
60
|
use_ruby = @quick.map{|q| q[:ruby]}
|
|
56
61
|
use_rails = @quick.map{|q| q[:rails]}
|
|
57
62
|
use_db = @quick.map{|q| q[:db]}
|
|
58
63
|
end
|
|
59
|
-
use_ruby = Array.wrap(ruby) if ruby
|
|
60
|
-
use_rails = Array.wrap(rails) if rails
|
|
61
|
-
use_db = Array.wrap(db) if db
|
|
64
|
+
use_ruby = Array.wrap(opts.ruby) if opts.ruby
|
|
65
|
+
use_rails = Array.wrap(opts.rails) if opts.rails
|
|
66
|
+
use_db = Array.wrap(opts.db) if opts.db
|
|
62
67
|
|
|
63
68
|
@matrix ||= begin
|
|
64
69
|
m = use_ruby.product(use_rails)
|
data/lib/schema_dev/version.rb
CHANGED
data/schema_dev.gemspec
CHANGED
|
@@ -19,10 +19,11 @@ Gem::Specification.new do |spec|
|
|
|
19
19
|
spec.require_paths = ["lib"]
|
|
20
20
|
|
|
21
21
|
spec.add_dependency "activesupport"
|
|
22
|
+
spec.add_dependency "fastandand"
|
|
23
|
+
spec.add_dependency "hash_keyword_args"
|
|
22
24
|
spec.add_dependency "its-it"
|
|
23
25
|
spec.add_dependency "key_struct"
|
|
24
26
|
spec.add_dependency "thor"
|
|
25
|
-
spec.add_dependency "fastandand"
|
|
26
27
|
|
|
27
28
|
spec.add_development_dependency "bundler", "~> 1.7"
|
|
28
29
|
spec.add_development_dependency "rake", "~> 10.0"
|
data/spec/config_spec.rb
CHANGED
|
@@ -10,7 +10,7 @@ describe SchemaDev::Config do
|
|
|
10
10
|
]
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
it "computes matrix
|
|
13
|
+
it "computes matrix with db" do
|
|
14
14
|
config = get_config(ruby: %W[1.9.3 2.1.5], rails: %W[4.0 4.1], db: %W[sqlite3 postgresql])
|
|
15
15
|
expect(config.matrix).to match_array [
|
|
16
16
|
{ ruby: "1.9.3", rails: "4.0", db: "sqlite3" },
|
data/spec/spec_helper.rb
CHANGED
|
@@ -2,9 +2,10 @@ require 'schema_dev/config'
|
|
|
2
2
|
require 'tmpdir'
|
|
3
3
|
|
|
4
4
|
def get_config(data)
|
|
5
|
+
SchemaDev::Config._reset
|
|
5
6
|
Dir.mktmpdir do |dir|
|
|
6
7
|
Dir.chdir(dir) do
|
|
7
|
-
Pathname.new(SchemaDev::CONFIG_FILE).write data.to_yaml
|
|
8
|
+
Pathname.new(SchemaDev::CONFIG_FILE).open("w") {|f| f.write data.to_yaml }
|
|
8
9
|
SchemaDev::Config.load
|
|
9
10
|
end
|
|
10
11
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: schema_dev
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.2
|
|
5
|
+
prerelease:
|
|
5
6
|
platform: ruby
|
|
6
7
|
authors:
|
|
7
8
|
- ronen barzel
|
|
@@ -13,113 +14,145 @@ dependencies:
|
|
|
13
14
|
- !ruby/object:Gem::Dependency
|
|
14
15
|
name: activesupport
|
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
+
none: false
|
|
16
18
|
requirements:
|
|
17
|
-
- -
|
|
19
|
+
- - ! '>='
|
|
18
20
|
- !ruby/object:Gem::Version
|
|
19
21
|
version: '0'
|
|
20
22
|
type: :runtime
|
|
21
23
|
prerelease: false
|
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
+
none: false
|
|
23
26
|
requirements:
|
|
24
|
-
- -
|
|
27
|
+
- - ! '>='
|
|
25
28
|
- !ruby/object:Gem::Version
|
|
26
29
|
version: '0'
|
|
27
30
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
31
|
+
name: fastandand
|
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
|
33
|
+
none: false
|
|
30
34
|
requirements:
|
|
31
|
-
- -
|
|
35
|
+
- - ! '>='
|
|
32
36
|
- !ruby/object:Gem::Version
|
|
33
37
|
version: '0'
|
|
34
38
|
type: :runtime
|
|
35
39
|
prerelease: false
|
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
+
none: false
|
|
37
42
|
requirements:
|
|
38
|
-
- -
|
|
43
|
+
- - ! '>='
|
|
39
44
|
- !ruby/object:Gem::Version
|
|
40
45
|
version: '0'
|
|
41
46
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
47
|
+
name: hash_keyword_args
|
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
|
49
|
+
none: false
|
|
44
50
|
requirements:
|
|
45
|
-
- -
|
|
51
|
+
- - ! '>='
|
|
46
52
|
- !ruby/object:Gem::Version
|
|
47
53
|
version: '0'
|
|
48
54
|
type: :runtime
|
|
49
55
|
prerelease: false
|
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
+
none: false
|
|
51
58
|
requirements:
|
|
52
|
-
- -
|
|
59
|
+
- - ! '>='
|
|
53
60
|
- !ruby/object:Gem::Version
|
|
54
61
|
version: '0'
|
|
55
62
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
63
|
+
name: its-it
|
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
|
65
|
+
none: false
|
|
58
66
|
requirements:
|
|
59
|
-
- -
|
|
67
|
+
- - ! '>='
|
|
60
68
|
- !ruby/object:Gem::Version
|
|
61
69
|
version: '0'
|
|
62
70
|
type: :runtime
|
|
63
71
|
prerelease: false
|
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
+
none: false
|
|
65
74
|
requirements:
|
|
66
|
-
- -
|
|
75
|
+
- - ! '>='
|
|
67
76
|
- !ruby/object:Gem::Version
|
|
68
77
|
version: '0'
|
|
69
78
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
79
|
+
name: key_struct
|
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
|
81
|
+
none: false
|
|
82
|
+
requirements:
|
|
83
|
+
- - ! '>='
|
|
84
|
+
- !ruby/object:Gem::Version
|
|
85
|
+
version: '0'
|
|
86
|
+
type: :runtime
|
|
87
|
+
prerelease: false
|
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
+
none: false
|
|
90
|
+
requirements:
|
|
91
|
+
- - ! '>='
|
|
92
|
+
- !ruby/object:Gem::Version
|
|
93
|
+
version: '0'
|
|
94
|
+
- !ruby/object:Gem::Dependency
|
|
95
|
+
name: thor
|
|
71
96
|
requirement: !ruby/object:Gem::Requirement
|
|
97
|
+
none: false
|
|
72
98
|
requirements:
|
|
73
|
-
- -
|
|
99
|
+
- - ! '>='
|
|
74
100
|
- !ruby/object:Gem::Version
|
|
75
101
|
version: '0'
|
|
76
102
|
type: :runtime
|
|
77
103
|
prerelease: false
|
|
78
104
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
|
+
none: false
|
|
79
106
|
requirements:
|
|
80
|
-
- -
|
|
107
|
+
- - ! '>='
|
|
81
108
|
- !ruby/object:Gem::Version
|
|
82
109
|
version: '0'
|
|
83
110
|
- !ruby/object:Gem::Dependency
|
|
84
111
|
name: bundler
|
|
85
112
|
requirement: !ruby/object:Gem::Requirement
|
|
113
|
+
none: false
|
|
86
114
|
requirements:
|
|
87
|
-
- -
|
|
115
|
+
- - ~>
|
|
88
116
|
- !ruby/object:Gem::Version
|
|
89
117
|
version: '1.7'
|
|
90
118
|
type: :development
|
|
91
119
|
prerelease: false
|
|
92
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
none: false
|
|
93
122
|
requirements:
|
|
94
|
-
- -
|
|
123
|
+
- - ~>
|
|
95
124
|
- !ruby/object:Gem::Version
|
|
96
125
|
version: '1.7'
|
|
97
126
|
- !ruby/object:Gem::Dependency
|
|
98
127
|
name: rake
|
|
99
128
|
requirement: !ruby/object:Gem::Requirement
|
|
129
|
+
none: false
|
|
100
130
|
requirements:
|
|
101
|
-
- -
|
|
131
|
+
- - ~>
|
|
102
132
|
- !ruby/object:Gem::Version
|
|
103
133
|
version: '10.0'
|
|
104
134
|
type: :development
|
|
105
135
|
prerelease: false
|
|
106
136
|
version_requirements: !ruby/object:Gem::Requirement
|
|
137
|
+
none: false
|
|
107
138
|
requirements:
|
|
108
|
-
- -
|
|
139
|
+
- - ~>
|
|
109
140
|
- !ruby/object:Gem::Version
|
|
110
141
|
version: '10.0'
|
|
111
142
|
- !ruby/object:Gem::Dependency
|
|
112
143
|
name: rspec
|
|
113
144
|
requirement: !ruby/object:Gem::Requirement
|
|
145
|
+
none: false
|
|
114
146
|
requirements:
|
|
115
|
-
- -
|
|
147
|
+
- - ~>
|
|
116
148
|
- !ruby/object:Gem::Version
|
|
117
149
|
version: '3.0'
|
|
118
150
|
type: :development
|
|
119
151
|
prerelease: false
|
|
120
152
|
version_requirements: !ruby/object:Gem::Requirement
|
|
153
|
+
none: false
|
|
121
154
|
requirements:
|
|
122
|
-
- -
|
|
155
|
+
- - ~>
|
|
123
156
|
- !ruby/object:Gem::Version
|
|
124
157
|
version: '3.0'
|
|
125
158
|
description: SchemaPlus development tools
|
|
@@ -130,8 +163,8 @@ executables:
|
|
|
130
163
|
extensions: []
|
|
131
164
|
extra_rdoc_files: []
|
|
132
165
|
files:
|
|
133
|
-
-
|
|
134
|
-
-
|
|
166
|
+
- .gitignore
|
|
167
|
+
- .rspec
|
|
135
168
|
- Gemfile
|
|
136
169
|
- LICENSE.txt
|
|
137
170
|
- README.md
|
|
@@ -155,26 +188,33 @@ files:
|
|
|
155
188
|
homepage: https://github.com/SchemaPlus/schema_dev
|
|
156
189
|
licenses:
|
|
157
190
|
- MIT
|
|
158
|
-
metadata: {}
|
|
159
191
|
post_install_message:
|
|
160
192
|
rdoc_options: []
|
|
161
193
|
require_paths:
|
|
162
194
|
- lib
|
|
163
195
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
196
|
+
none: false
|
|
164
197
|
requirements:
|
|
165
|
-
- -
|
|
198
|
+
- - ! '>='
|
|
166
199
|
- !ruby/object:Gem::Version
|
|
167
200
|
version: '0'
|
|
201
|
+
segments:
|
|
202
|
+
- 0
|
|
203
|
+
hash: 2660621629960467623
|
|
168
204
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
205
|
+
none: false
|
|
169
206
|
requirements:
|
|
170
|
-
- -
|
|
207
|
+
- - ! '>='
|
|
171
208
|
- !ruby/object:Gem::Version
|
|
172
209
|
version: '0'
|
|
210
|
+
segments:
|
|
211
|
+
- 0
|
|
212
|
+
hash: 2660621629960467623
|
|
173
213
|
requirements: []
|
|
174
214
|
rubyforge_project:
|
|
175
|
-
rubygems_version:
|
|
215
|
+
rubygems_version: 1.8.23.2
|
|
176
216
|
signing_key:
|
|
177
|
-
specification_version:
|
|
217
|
+
specification_version: 3
|
|
178
218
|
summary: SchemaPlus development tools
|
|
179
219
|
test_files:
|
|
180
220
|
- spec/config_spec.rb
|
checksums.yaml
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
SHA1:
|
|
3
|
-
metadata.gz: 288f34fe053bfa408a49183dc22d5698f684206a
|
|
4
|
-
data.tar.gz: e60699f9146f1f61fdd5aaf1eef35ce8faaf7c81
|
|
5
|
-
SHA512:
|
|
6
|
-
metadata.gz: 4b9cdcd784ff3fca4fa7de9fb81b4d4a82f9409a83fb4a2ce875aabb730ce9e31335bcd0ddcfd689b42bee96878caa31ae2c46de1474b6bdb5a02e64a5881d48
|
|
7
|
-
data.tar.gz: 1da66872b03c208d69780ed32b162f7fdc9d91f98689d8c9f16d53a496c94fe291ea989a72207259100cb1defb2bcde370abbd183442bd39a59355d2030f4521
|