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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 06371d875489add31a6dada7ff308cee7355759a
4
- data.tar.gz: 1cfaebb92a0ca5d4b75a71d89a4dcaf9fbda6634
3
+ metadata.gz: a1aaf710b392b3606a470e855ffc6df96bb8d02d
4
+ data.tar.gz: a0ccd759cda221b0749c2868e3b55f03aa800589
5
5
  SHA512:
6
- metadata.gz: 65ce5774cd9519de0383bd3597c277246a977a038bec24cbe945d21b55116d1211487b98134170adb4a9851eb44addb1aa40d38004d09b4e756c3fdd43d79d5b
7
- data.tar.gz: 2af9c3b7bc6fd3eaa5543f7c8272afca16afc3e639df64f83074d8ed740c91de37f69ef33c45544fc85bbce1febefeb1e5be92981ff36aef32faefede2d992a9
6
+ metadata.gz: 6b557340535961e3e89fe98a4f5cb84cad5b66d44accff0bec41398677d6d0f9e40df761da62360aae7083ce4a4df4c31be38750767d404eeb6f208b25af5312
7
+ data.tar.gz: 0fa602a4a8de432e7db165aacef4207e81daa4e03c8c0907aa7a48278f0aa5ae03ebc0dbf9949008bd62dc512151285e8a96bce293571bad4b0184fddfa7ba3b
@@ -1,5 +1,11 @@
1
- sudo: false
2
1
  language: ruby
3
2
  rvm:
4
- - 2.3.3
5
- before_install: gem install bundler -v 1.14.6
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
@@ -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
- gem "rails", "~> #{ENV['RAILS_VERSION'] || '5.0.2'}"
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:kv:active_record
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
- statement = "INSERT INTO example_key_values (`key`, `value`) VALUES (:key, :value)"
95
- GitHub::SQL.run statement, key: "foo", value: "bar"
94
+ GitHub::SQL.results <<-SQL
95
+ SELECT * FROM example_key_values
96
+ SQL
96
97
 
97
- statement = "SELECT value FROM example_key_values WHERE `key` = :key"
98
- GitHub::SQL.value select_statement, key: "foo"
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 "SELECT `VALUE` FROM example_key_values"
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 "WHERE `key` = :key", key: key
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 "ORDER BY `key` ASC"
111
- sql.add "LIMIT :limit", limit: limit.to_i
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://avatars3.githubusercontent.com/u/235?s=64) | [@jnunemaker](https://github.com/jnunemaker) |
197
209
  | ![@charliesome](https://avatars3.githubusercontent.com/u/179065?s=64) | [@charliesome](https://github.com/charliesome) |
210
+ | ![@jnunemaker](https://avatars3.githubusercontent.com/u/235?s=64) | [@jnunemaker](https://github.com/jnunemaker) |
211
+ | ![@zerowidth](https://avatars3.githubusercontent.com/u/3999?s=64) | [@zerowidth](https://github.com/zerowidth) |
198
212
 
199
213
  ## License
200
214
 
@@ -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 ActiveRecord::NoDatabaseError
19
+ rescue
20
20
  raise if attempts >= 1
21
21
  ActiveRecord::Base.establish_connection({
22
22
  adapter: "mysql2",
@@ -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 insert_statement, key: "foo", value: "bar"
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 select_statement, key: "foo"
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 update_statement, key: "foo", value: "new value"
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 delete_statement, key: "foo"
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 insert_statement, key: "foo", value: "bar"
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 select_statement, key: "foo"
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 update_statement, key: "foo", value: "new value"
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 delete_statement, key: "foo"
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
@@ -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 "SELECT `VALUE` FROM example_key_values"
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 "WHERE `key` = :key", key: key
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 "ORDER BY `key` ASC"
19
- sql.add "LIMIT :limit", limit: limit.to_i
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 insert_statement, key: "bar", value: "baz", connection: ActiveRecord::Base.connection
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 insert_statement, key: "foo", value: "bar", connection: SomeModel.connection
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 "SELECT `key` FROM example_key_values"
33
+ p GitHub::SQL.values <<-SQL
34
+ SELECT `key` FROM example_key_values
35
+ SQL
32
36
  # ["foo"]
@@ -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
@@ -1,7 +1,7 @@
1
1
  require "rails/generators/active_record"
2
2
 
3
3
  module Github
4
- module DS
4
+ module Ds
5
5
  module Generators
6
6
  class ActiveRecordGenerator < ::Rails::Generators::Base
7
7
  include ::Rails::Generators::Migration
@@ -1,5 +1,5 @@
1
1
  module GitHub
2
2
  module DS
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require "bundler/setup"
4
- require "github/kv"
4
+ require "github/ds"
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
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.1.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-04-11 00:00:00.000000000 Z
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