github-ds 0.1.0 → 0.2.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/.travis.yml +9 -3
- data/CHANGELOG.md +12 -0
- data/Gemfile +3 -3
- data/README.md +24 -10
- data/examples/example_setup.rb +1 -1
- data/examples/sql.rb +24 -13
- data/examples/sql_add.rb +10 -4
- data/examples/sql_with_connection.rb +9 -5
- data/github-ds.gemspec +2 -2
- data/lib/generators/github/ds/active_record_generator.rb +1 -1
- data/lib/github/ds/version.rb +1 -1
- data/script/console +1 -1
- metadata +23 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1aaf710b392b3606a470e855ffc6df96bb8d02d
|
4
|
+
data.tar.gz: a0ccd759cda221b0749c2868e3b55f03aa800589
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b557340535961e3e89fe98a4f5cb84cad5b66d44accff0bec41398677d6d0f9e40df761da62360aae7083ce4a4df4c31be38750767d404eeb6f208b25af5312
|
7
|
+
data.tar.gz: 0fa602a4a8de432e7db165aacef4207e81daa4e03c8c0907aa7a48278f0aa5ae03ebc0dbf9949008bd62dc512151285e8a96bce293571bad4b0184fddfa7ba3b
|
data/.travis.yml
CHANGED
@@ -1,5 +1,11 @@
|
|
1
|
-
sudo: false
|
2
1
|
language: ruby
|
3
2
|
rvm:
|
4
|
-
- 2.
|
5
|
-
|
3
|
+
- 2.2.7
|
4
|
+
- 2.3.4
|
5
|
+
- 2.4.0
|
6
|
+
before_script: gem install bundler -v 1.14.6
|
7
|
+
script: bundle exec rake
|
8
|
+
env:
|
9
|
+
- RAILS_VERSION=5.1.0
|
10
|
+
- RAILS_VERSION=5.0.0
|
11
|
+
- RAILS_VERSION=4.2.5
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## 0.2.0
|
4
|
+
|
5
|
+
Fixes
|
6
|
+
|
7
|
+
* Fixed rails generator name https://github.com/github/github-ds/pull/16
|
8
|
+
* Add active_record as dependency (not just dev dependency) https://github.com/github/github-ds/commit/e9ce8e4e47d39152021976482e1a0a60efbb9d20
|
9
|
+
|
10
|
+
## 0.1.0
|
11
|
+
|
12
|
+
* Initial release.
|
data/Gemfile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
|
-
|
3
|
-
# Specify your gem's dependencies in github-ds.gemspec
|
4
2
|
gemspec
|
5
3
|
|
6
|
-
|
4
|
+
DEFAULT_RAILS_VERSION = '5.0.2'
|
5
|
+
gem "rails", "~> #{ENV['RAILS_VERSION'] || DEFAULT_RAILS_VERSION}"
|
6
|
+
gem "activerecord", "~> #{ENV['RAILS_VERSION'] || DEFAULT_RAILS_VERSION}"
|
data/README.md
CHANGED
@@ -33,7 +33,7 @@ Below is a taste of what you can do with these libraries. If you want to see mor
|
|
33
33
|
First, you'll need to create the `key_values` table using the included Rails migration generator.
|
34
34
|
|
35
35
|
```
|
36
|
-
rails generate github:
|
36
|
+
rails generate github:ds:active_record
|
37
37
|
rails db:migrate
|
38
38
|
```
|
39
39
|
|
@@ -91,24 +91,37 @@ pp kv.mdel(["foo", "bar"])
|
|
91
91
|
|
92
92
|
```ruby
|
93
93
|
# Select, insert, update, delete or whatever you need...
|
94
|
-
|
95
|
-
|
94
|
+
GitHub::SQL.results <<-SQL
|
95
|
+
SELECT * FROM example_key_values
|
96
|
+
SQL
|
96
97
|
|
97
|
-
|
98
|
-
|
98
|
+
GitHub::SQL.run <<-SQL, key: "foo", value: "bar"
|
99
|
+
INSERT INTO example_key_values (`key`, `value`)
|
100
|
+
VALUES (:key, :value)
|
101
|
+
SQL
|
102
|
+
|
103
|
+
GitHub::SQL.value <<-SQL, key: "foo"
|
104
|
+
SELECT value FROM example_key_values WHERE `key` = :key
|
105
|
+
SQL
|
99
106
|
|
100
107
|
# Or slowly build up a query based on conditionals...
|
101
|
-
sql = GitHub::SQL.new
|
108
|
+
sql = GitHub::SQL.new <<-SQL
|
109
|
+
SELECT `value` FROM example_key_values
|
110
|
+
SQL
|
102
111
|
|
103
112
|
key = ENV["KEY"]
|
104
113
|
unless key.nil?
|
105
|
-
sql.add
|
114
|
+
sql.add <<-SQL, key: key
|
115
|
+
WHERE `key` = :key
|
116
|
+
SQL
|
106
117
|
end
|
107
118
|
|
108
119
|
limit = ENV["LIMIT"]
|
109
120
|
unless limit.nil?
|
110
|
-
sql.add
|
111
|
-
|
121
|
+
sql.add <<-SQL, limit: limit.to_i
|
122
|
+
ORDER BY `key` ASC
|
123
|
+
LIMIT :limit
|
124
|
+
SQL
|
112
125
|
end
|
113
126
|
|
114
127
|
p sql.results
|
@@ -193,8 +206,9 @@ Nothing currently on our radar other than continued maintenance. Have a big idea
|
|
193
206
|
|
194
207
|
| pic | @mention |
|
195
208
|
|---|---|
|
196
|
-
|  | [@jnunemaker](https://github.com/jnunemaker) |
|
197
209
|
|  | [@charliesome](https://github.com/charliesome) |
|
210
|
+
|  | [@jnunemaker](https://github.com/jnunemaker) |
|
211
|
+
|  | [@zerowidth](https://github.com/zerowidth) |
|
198
212
|
|
199
213
|
## License
|
200
214
|
|
data/examples/example_setup.rb
CHANGED
@@ -16,7 +16,7 @@ begin
|
|
16
16
|
require "generators/github/ds/templates/migration"
|
17
17
|
ActiveRecord::Migration.verbose = false
|
18
18
|
CreateKeyValuesTable.up
|
19
|
-
rescue
|
19
|
+
rescue
|
20
20
|
raise if attempts >= 1
|
21
21
|
ActiveRecord::Base.establish_connection({
|
22
22
|
adapter: "mysql2",
|
data/examples/sql.rb
CHANGED
@@ -1,44 +1,55 @@
|
|
1
1
|
require File.expand_path("../example_setup", __FILE__)
|
2
2
|
require "github/sql"
|
3
3
|
|
4
|
-
insert_statement = "INSERT INTO example_key_values (`key`, `value`) VALUES (:key, :value)"
|
5
|
-
select_statement = "SELECT value FROM example_key_values WHERE `key` = :key"
|
6
|
-
update_statement = "UPDATE example_key_values SET value = :value WHERE `key` = :key"
|
7
|
-
delete_statement = "DELETE FROM example_key_values WHERE `key` = :key"
|
8
|
-
|
9
4
|
################################# Class Style ##################################
|
10
|
-
sql = GitHub::SQL.run
|
5
|
+
sql = GitHub::SQL.run <<-SQL, key: "foo", value: "bar"
|
6
|
+
INSERT INTO example_key_values (`key`, `value`) VALUES (:key, :value)
|
7
|
+
SQL
|
11
8
|
p sql.last_insert_id
|
12
9
|
# 1
|
13
10
|
|
14
|
-
p GitHub::SQL.value
|
11
|
+
p GitHub::SQL.value <<-SQL, key: "foo"
|
12
|
+
SELECT value FROM example_key_values WHERE `key` = :key
|
13
|
+
SQL
|
15
14
|
# "bar"
|
16
15
|
|
17
|
-
sql = GitHub::SQL.run
|
16
|
+
sql = GitHub::SQL.run <<-SQL, key: "foo", value: "new value"
|
17
|
+
UPDATE example_key_values SET value = :value WHERE `key` = :key
|
18
|
+
SQL
|
18
19
|
p sql.affected_rows
|
19
20
|
# 1
|
20
21
|
|
21
|
-
sql = GitHub::SQL.run
|
22
|
+
sql = GitHub::SQL.run <<-SQL, key: "foo"
|
23
|
+
DELETE FROM example_key_values WHERE `key` = :key
|
24
|
+
SQL
|
22
25
|
p sql.affected_rows
|
23
26
|
# 1
|
24
27
|
|
25
28
|
|
26
29
|
################################ Instance Style ################################
|
27
|
-
sql = GitHub::SQL.new
|
30
|
+
sql = GitHub::SQL.new <<-SQL, key: "foo", value: "bar"
|
31
|
+
INSERT INTO example_key_values (`key`, `value`) VALUES (:key, :value)
|
32
|
+
SQL
|
28
33
|
sql.run
|
29
34
|
p sql.last_insert_id
|
30
35
|
# 2
|
31
36
|
|
32
|
-
sql = GitHub::SQL.new
|
37
|
+
sql = GitHub::SQL.new <<-SQL, key: "foo"
|
38
|
+
SELECT value FROM example_key_values WHERE `key` = :key
|
39
|
+
SQL
|
33
40
|
p sql.value
|
34
41
|
# "bar"
|
35
42
|
|
36
|
-
sql = GitHub::SQL.new
|
43
|
+
sql = GitHub::SQL.new <<-SQL, key: "foo", value: "new value"
|
44
|
+
UPDATE example_key_values SET value = :value WHERE `key` = :key
|
45
|
+
SQL
|
37
46
|
sql.run
|
38
47
|
p sql.affected_rows
|
39
48
|
# 1
|
40
49
|
|
41
|
-
sql = GitHub::SQL.new
|
50
|
+
sql = GitHub::SQL.new <<-SQL, key: "foo"
|
51
|
+
DELETE FROM example_key_values WHERE `key` = :key
|
52
|
+
SQL
|
42
53
|
sql.run
|
43
54
|
p sql.affected_rows
|
44
55
|
# 1
|
data/examples/sql_add.rb
CHANGED
@@ -6,17 +6,23 @@ GitHub::SQL.run <<-SQL
|
|
6
6
|
VALUES ("foo", "bar"), ("baz", "wick")
|
7
7
|
SQL
|
8
8
|
|
9
|
-
sql = GitHub::SQL.new
|
9
|
+
sql = GitHub::SQL.new <<-SQL
|
10
|
+
SELECT `VALUE` FROM example_key_values
|
11
|
+
SQL
|
10
12
|
|
11
13
|
key = ENV["KEY"]
|
12
14
|
unless key.nil?
|
13
|
-
sql.add
|
15
|
+
sql.add <<-SQL, key: key
|
16
|
+
WHERE `key` = :key
|
17
|
+
SQL
|
14
18
|
end
|
15
19
|
|
16
20
|
limit = ENV["LIMIT"]
|
17
21
|
unless limit.nil?
|
18
|
-
sql.add
|
19
|
-
|
22
|
+
sql.add <<-SQL, limit: limit.to_i
|
23
|
+
ORDER BY `key` ASC
|
24
|
+
LIMIT :limit
|
25
|
+
SQL
|
20
26
|
end
|
21
27
|
|
22
28
|
p sql.results
|
@@ -10,15 +10,17 @@ class SomeModel < ActiveRecord::Base
|
|
10
10
|
})
|
11
11
|
end
|
12
12
|
|
13
|
-
insert_statement = "INSERT INTO example_key_values (`key`, `value`) VALUES (:key, :value)"
|
14
|
-
|
15
13
|
ActiveRecord::Base.transaction do
|
16
14
|
# Insert bar on base connection.
|
17
|
-
GitHub::SQL.run
|
15
|
+
GitHub::SQL.run <<-SQL, key: "bar", value: "baz", connection: ActiveRecord::Base.connection
|
16
|
+
INSERT INTO example_key_values (`key`, `value`) VALUES (:key, :value)
|
17
|
+
SQL
|
18
18
|
|
19
19
|
SomeModel.transaction do
|
20
20
|
# Insert foo on different connection.
|
21
|
-
GitHub::SQL.run
|
21
|
+
GitHub::SQL.run <<-SQL, key: "foo", value: "bar", connection: SomeModel.connection
|
22
|
+
INSERT INTO example_key_values (`key`, `value`) VALUES (:key, :value)
|
23
|
+
SQL
|
22
24
|
end
|
23
25
|
|
24
26
|
# Roll back "bar" insertion.
|
@@ -28,5 +30,7 @@ end
|
|
28
30
|
# Show that "bar" key is not here because that connection's transaction was
|
29
31
|
# rolled back. SomeModel is a different connection and started a different
|
30
32
|
# transaction, which succeeded, so "foo" key was created.
|
31
|
-
p GitHub::SQL.values
|
33
|
+
p GitHub::SQL.values <<-SQL
|
34
|
+
SELECT `key` FROM example_key_values
|
35
|
+
SQL
|
32
36
|
# ["foo"]
|
data/github-ds.gemspec
CHANGED
@@ -30,13 +30,13 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
31
31
|
spec.require_paths = ["lib"]
|
32
32
|
|
33
|
+
spec.add_dependency "activerecord", ">= 3.2", "< 6.0"
|
34
|
+
|
33
35
|
spec.add_development_dependency "bundler", "~> 1.14"
|
34
36
|
spec.add_development_dependency "rake", "~> 10.0"
|
35
37
|
spec.add_development_dependency "minitest", "~> 5.0"
|
36
38
|
spec.add_development_dependency "timecop", "~> 0.8.1"
|
37
|
-
spec.add_development_dependency "activerecord", "~> 5.0"
|
38
39
|
spec.add_development_dependency "activesupport"
|
39
40
|
spec.add_development_dependency "mysql2"
|
40
|
-
spec.add_development_dependency "activerecord-mysql-adapter"
|
41
41
|
spec.add_development_dependency "mocha", "~> 1.2.1"
|
42
42
|
end
|
data/lib/github/ds/version.rb
CHANGED
data/script/console
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: github-ds
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GitHub Open Source
|
@@ -9,8 +9,28 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-05-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: activerecord
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '3.2'
|
21
|
+
- - "<"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: '6.0'
|
24
|
+
type: :runtime
|
25
|
+
prerelease: false
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
requirements:
|
28
|
+
- - ">="
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '3.2'
|
31
|
+
- - "<"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '6.0'
|
14
34
|
- !ruby/object:Gem::Dependency
|
15
35
|
name: bundler
|
16
36
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,20 +87,6 @@ dependencies:
|
|
67
87
|
- - "~>"
|
68
88
|
- !ruby/object:Gem::Version
|
69
89
|
version: 0.8.1
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: activerecord
|
72
|
-
requirement: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - "~>"
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: '5.0'
|
77
|
-
type: :development
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - "~>"
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '5.0'
|
84
90
|
- !ruby/object:Gem::Dependency
|
85
91
|
name: activesupport
|
86
92
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,20 +115,6 @@ dependencies:
|
|
109
115
|
- - ">="
|
110
116
|
- !ruby/object:Gem::Version
|
111
117
|
version: '0'
|
112
|
-
- !ruby/object:Gem::Dependency
|
113
|
-
name: activerecord-mysql-adapter
|
114
|
-
requirement: !ruby/object:Gem::Requirement
|
115
|
-
requirements:
|
116
|
-
- - ">="
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: '0'
|
119
|
-
type: :development
|
120
|
-
prerelease: false
|
121
|
-
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
requirements:
|
123
|
-
- - ">="
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '0'
|
126
118
|
- !ruby/object:Gem::Dependency
|
127
119
|
name: mocha
|
128
120
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,6 +140,7 @@ extra_rdoc_files: []
|
|
148
140
|
files:
|
149
141
|
- ".gitignore"
|
150
142
|
- ".travis.yml"
|
143
|
+
- CHANGELOG.md
|
151
144
|
- CODE_OF_CONDUCT.md
|
152
145
|
- CONTRIBUTING.md
|
153
146
|
- Gemfile
|