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 CHANGED
@@ -2,5 +2,3 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in schema_dev.gemspec
4
4
  gemspec
5
-
6
- gem 'byebug'
data/Rakefile CHANGED
@@ -1,2 +1,4 @@
1
1
  require "bundler/gem_tasks"
2
2
 
3
+ require 'rspec/core/rake_task'
4
+ RSpec::Core::RakeTask.new(:spec)
@@ -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 (YAML.load Pathname.new(CONFIG_FILE).read).deep_symbolize_keys
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(ruby:, rails:, db: nil, exclude: nil, notify: nil, quick: nil)
38
- @ruby = Array.wrap(ruby)
39
- @rails = Array.wrap(rails)
40
- @db = Array.wrap(db)
41
- @exclude = Array.wrap(exclude).map(&:symbolize_keys).map {|tuple| Tuple.new(tuple)}
42
- @notify = Array.wrap(notify)
43
- @quick = Array.wrap(quick || {ruby: @ruby.last, rails: @rails.last, db: @db.andand.last})
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(quick: false, ruby: nil, rails: nil, db: nil)
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)
@@ -1,3 +1,3 @@
1
1
  module SchemaDev
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
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 without db" do
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.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: its-it
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: key_struct
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: thor
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: fastandand
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
- - ".gitignore"
134
- - ".rspec"
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: 2.2.2
215
+ rubygems_version: 1.8.23.2
176
216
  signing_key:
177
- specification_version: 4
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