sequelizer 0.0.6 → 0.1.0
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/CHANGELOG.md +14 -64
- data/lib/sequelizer.rb +10 -3
- data/lib/sequelizer/connection_maker.rb +6 -1
- data/lib/sequelizer/version.rb +1 -1
- data/lib/sequelizer/yaml_config.rb +4 -3
- data/sequelizer.gemspec +1 -1
- data/test/sequelizer/test_yaml_config.rb +4 -4
- metadata +5 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8d676f724540c01e7cbd2bc6b2a354d78a2e9d15
|
4
|
+
data.tar.gz: e6872a70bdf5d268687f667273edced41abd13aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8fb25153b51b05926e5da76fd977f88b8b3077b9dccedb6282edd40486bea4bc1d1e6be70fd8a576f2102a80c406663b40ef396a6ad32897730fd510cd6bddcd
|
7
|
+
data.tar.gz: ace9f653827f44fac941f1bbd6b2e6e854d3128bcf8d3a8f14343304b5f7350f2e6efe1c7ee11271cd3aa6f8f659bd6dd7b19145223372a3eecac56ac33aa4e7
|
data/CHANGELOG.md
CHANGED
@@ -1,82 +1,47 @@
|
|
1
1
|
# Changelog
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
|
-
##
|
4
|
+
## [0.1.0] - 2016-11-08
|
5
5
|
|
6
6
|
### Added
|
7
|
-
-
|
7
|
+
- Connections are cached by options to avoid over-allocation
|
8
|
+
- URL or URI option represent connection string
|
9
|
+
- sequelizer.yml is passed through ERB
|
8
10
|
|
9
|
-
###
|
10
|
-
-
|
11
|
+
### Changed
|
12
|
+
- Format of this [CHANGELOG](http://keepachangelog.com/en/0.3.0/)
|
13
|
+
- Prefer environment variables over other options
|
14
|
+
- Use config/sequelizer.yml instead of config/database.yml
|
11
15
|
|
12
|
-
|
13
|
-
- Nothing.
|
14
|
-
|
15
|
-
### Fixed
|
16
|
-
- Nothing.
|
17
|
-
|
18
|
-
## 0.0.6 - 2015-08-21
|
16
|
+
## [0.0.6] - 2015-08-21
|
19
17
|
|
20
18
|
### Added
|
21
19
|
- Support for ruby-oci8 (Oracle) in update_gemfile command
|
22
20
|
- Read user-level configuration from ~/.config/sequelizer/database.yml
|
23
21
|
|
24
|
-
### Deprecated
|
25
|
-
- Nothing.
|
26
|
-
|
27
|
-
### Removed
|
28
|
-
- Nothing.
|
29
|
-
|
30
22
|
### Fixed
|
31
23
|
- Bug where options passed as symbols where sometimes ignored.
|
32
24
|
|
33
|
-
|
34
|
-
## 0.0.5 - 2014-08-29
|
25
|
+
## [0.0.5] - 2014-08-29
|
35
26
|
|
36
27
|
### Added
|
37
28
|
- Support for TinyTDS (SQL Server) in update_gemfile command
|
38
29
|
|
39
|
-
### Deprecated
|
40
|
-
- Nothing.
|
41
|
-
|
42
|
-
### Removed
|
43
|
-
- Nothing.
|
44
|
-
|
45
30
|
### Fixed
|
46
31
|
- timeout is always converted to integer before passing to Sequel.connect
|
47
32
|
|
48
|
-
|
49
|
-
## 0.0.4 - 2014-08-18
|
33
|
+
## [0.0.4] - 2014-08-18
|
50
34
|
|
51
35
|
### Added
|
52
36
|
- `init_env` command to bin/sequelizer
|
53
37
|
- Prefer `search_path` over `schema_search_path` option
|
54
38
|
|
55
|
-
|
56
|
-
- Nothing.
|
57
|
-
|
58
|
-
### Removed
|
59
|
-
- Nothing.
|
60
|
-
|
61
|
-
### Fixed
|
62
|
-
- Nothing.
|
63
|
-
|
64
|
-
|
65
|
-
## 0.0.3 - 2014-07-10
|
39
|
+
## [0.0.3] - 2014-07-10
|
66
40
|
|
67
41
|
### Added
|
68
42
|
- Ability to view configuration by running `sequelizer config`
|
69
43
|
|
70
|
-
|
71
|
-
- Nothing.
|
72
|
-
|
73
|
-
### Removed
|
74
|
-
- Nothing.
|
75
|
-
|
76
|
-
### Fixed
|
77
|
-
- Nothing.
|
78
|
-
|
79
|
-
## 0.0.2 - 2014-07-10
|
44
|
+
## [0.0.2] - 2014-07-10
|
80
45
|
|
81
46
|
### Added
|
82
47
|
- This [CHANGELOG](http://keepachangelog.com/)
|
@@ -86,25 +51,10 @@ All notable changes to this project will be documented in this file.
|
|
86
51
|
- Sequelizer::OptionsHash
|
87
52
|
- Reference to issues #1, #3 in README
|
88
53
|
|
89
|
-
### Deprecated
|
90
|
-
- Nothing.
|
91
|
-
|
92
|
-
### Removed
|
93
|
-
- Nothing.
|
94
|
-
|
95
54
|
### Fixed
|
96
55
|
- Prevented TestEnvConfig from polluting environment variables
|
97
56
|
|
98
|
-
## 0.0.1 - 2014-07-10
|
57
|
+
## [0.0.1] - 2014-07-10
|
99
58
|
|
100
59
|
### Added
|
101
60
|
- The project itself
|
102
|
-
|
103
|
-
### Deprecated
|
104
|
-
- Nothing.
|
105
|
-
|
106
|
-
### Removed
|
107
|
-
- Nothing.
|
108
|
-
|
109
|
-
### Fixed
|
110
|
-
- Nothing.
|
data/lib/sequelizer.rb
CHANGED
@@ -11,7 +11,7 @@ module Sequelizer
|
|
11
11
|
# options :: an optional set of database connection options.
|
12
12
|
# If no options are provided, options are read from
|
13
13
|
# config/database.yml or from .env or from environment variables.
|
14
|
-
def db(options =
|
14
|
+
def db(options = {})
|
15
15
|
@_sequelizer_db ||= new_db(options)
|
16
16
|
end
|
17
17
|
|
@@ -20,7 +20,14 @@ module Sequelizer
|
|
20
20
|
# options :: an optional set of database connection options.
|
21
21
|
# If no options are provided, options are read from
|
22
22
|
# config/database.yml or from .env or from environment variables.
|
23
|
-
def new_db(options =
|
24
|
-
|
23
|
+
def new_db(options = {})
|
24
|
+
cached = find_cached(options)
|
25
|
+
return cached if cached && !options[:force_new]
|
26
|
+
@cache[options] = ConnectionMaker.new(options).connection
|
27
|
+
end
|
28
|
+
|
29
|
+
def find_cached(options)
|
30
|
+
@cache ||= {}
|
31
|
+
@cache[options]
|
25
32
|
end
|
26
33
|
end
|
@@ -22,7 +22,12 @@ module Sequelizer
|
|
22
22
|
|
23
23
|
# Returns a Sequel connection to the database
|
24
24
|
def connection
|
25
|
-
|
25
|
+
opts = options.to_hash
|
26
|
+
if url = (opts.delete(:uri) || opts.delete(:url))
|
27
|
+
Sequel.connect(url, opts)
|
28
|
+
else
|
29
|
+
Sequel.connect(options.to_hash)
|
30
|
+
end
|
26
31
|
end
|
27
32
|
end
|
28
33
|
end
|
data/lib/sequelizer/version.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'psych'
|
2
2
|
require 'pathname'
|
3
|
+
require 'erb'
|
3
4
|
|
4
5
|
module Sequelizer
|
5
6
|
class YamlConfig
|
@@ -20,14 +21,14 @@ module Sequelizer
|
|
20
21
|
end
|
21
22
|
|
22
23
|
def initialize(config_file_path = nil)
|
23
|
-
@config_file_path = Pathname.new(config_file_path || Pathname.pwd + "config" + "
|
24
|
+
@config_file_path = Pathname.new(config_file_path || Pathname.pwd + "config" + "sequelizer.yml").expand_path
|
24
25
|
end
|
25
26
|
|
26
27
|
# Returns a set of options pulled from config/database.yml
|
27
28
|
# or +nil+ if config/database.yml doesn't exist
|
28
29
|
def options
|
29
30
|
return {} unless config_file_path.exist?
|
30
|
-
config[
|
31
|
+
config[environment] || config
|
31
32
|
end
|
32
33
|
|
33
34
|
# The environment to load from database.yml
|
@@ -47,7 +48,7 @@ module Sequelizer
|
|
47
48
|
|
48
49
|
# The config as read from config/database.yml
|
49
50
|
def config
|
50
|
-
@config ||= Psych.
|
51
|
+
@config ||= Psych.load(ERB.new(File.read(config_file_path)).result).tap { |c| p c }
|
51
52
|
end
|
52
53
|
end
|
53
54
|
end
|
data/sequelizer.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency 'guard-minitest', '~> 2.3'
|
24
24
|
spec.add_development_dependency 'minitest', '~> 5.3'
|
25
25
|
spec.add_dependency 'sequel', '~> 4.12'
|
26
|
-
spec.add_dependency 'dotenv', '~>
|
26
|
+
spec.add_dependency 'dotenv', '~> 2.1'
|
27
27
|
spec.add_dependency 'thor', '~> 0.19'
|
28
28
|
spec.add_dependency 'hashie', '~> 3.2'
|
29
29
|
end
|
@@ -11,8 +11,8 @@ class TestYamlConfig < Minitest::Test
|
|
11
11
|
mock = Minitest::Mock.new
|
12
12
|
file_mock = Minitest::Mock.new
|
13
13
|
|
14
|
-
stub_const(Sequelizer::YamlConfig, :
|
15
|
-
mock.expect :
|
14
|
+
stub_const(Sequelizer::YamlConfig, :File, mock) do
|
15
|
+
mock.expect :read, 'adapter: <%= "sqlite" %>', [file_mock]
|
16
16
|
file_mock.expect :exist?, true
|
17
17
|
|
18
18
|
@yaml_config.stub :config_file_path, file_mock do
|
@@ -40,7 +40,7 @@ class TestYamlConfig < Minitest::Test
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def test_path_defaults_to_local_config
|
43
|
-
assert_equal(@yaml_config.config_file_path, Pathname.pwd + "config" + "
|
43
|
+
assert_equal(@yaml_config.config_file_path, Pathname.pwd + "config" + "sequelizer.yml")
|
44
44
|
end
|
45
45
|
|
46
46
|
def test_path_can_be_fed_pathanem_from_initialize
|
@@ -52,7 +52,7 @@ class TestYamlConfig < Minitest::Test
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def test_local_is_current_directory
|
55
|
-
assert_equal(Sequelizer::YamlConfig.local_config.config_file_path, Pathname.pwd + "config" + "
|
55
|
+
assert_equal(Sequelizer::YamlConfig.local_config.config_file_path, Pathname.pwd + "config" + "sequelizer.yml")
|
56
56
|
end
|
57
57
|
|
58
58
|
def test_home_uses_home_directory
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequelizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Duryea
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '2.1'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '2.1'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: thor
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -178,7 +178,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
178
178
|
version: '0'
|
179
179
|
requirements: []
|
180
180
|
rubyforge_project:
|
181
|
-
rubygems_version: 2.4.
|
181
|
+
rubygems_version: 2.4.8
|
182
182
|
signing_key:
|
183
183
|
specification_version: 4
|
184
184
|
summary: Sequel database connections via config/database.yml or .env
|
@@ -189,4 +189,3 @@ test_files:
|
|
189
189
|
- test/sequelizer/test_options.rb
|
190
190
|
- test/sequelizer/test_yaml_config.rb
|
191
191
|
- test/test_helper.rb
|
192
|
-
has_rdoc:
|