schema_dev 0.1.1 → 0.1.2

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