pgcli-rails 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 83026651c327b19b11a0e4c18905a69f13ad7966
4
- data.tar.gz: f611bed8246d687bfa5b8f31c76689e0ec21679b
3
+ metadata.gz: 678b1aa5df2b4558367b5b91103879f8f78fe071
4
+ data.tar.gz: 88d8f732d3c86475d8aeceb014734b1e63db773d
5
5
  SHA512:
6
- metadata.gz: a86b77a1f3b9675da09fa74e7860ddfc4133ee5b2b488f1df9a8b1290ed29518ce667acdcaec5ef774791d61fb30fdef931854238a2aa07305ed2642c5a523db
7
- data.tar.gz: a081ff500c7bf4ad706e6b4365b7e367f051693a2a6665e2372fe82bc75e2041dbf8cc76f6d26481b2336dac1c846d5ee87e5f6b9023ad296e76d7ebdd43fe73
6
+ metadata.gz: 1483bc2a3c3dde8baa4449563585d6daabf619508cf5b3bcf776e2f1609d0c8f0e780d534dfc737288ebd99be8b2dfc73f5b8d76c3f0e8d3c58784cc2c0e1930
7
+ data.tar.gz: 0266878584a16289ea4c489b13f887b1080e489ec2fb484c8b0551e334853101a3e2ebb5be4fd6bd3a0710b51405ef13b6f5a27884592432df952bee984ec5bc
@@ -8,8 +8,15 @@ pgcli-rails is in a pre-1.0 state. This means that its APIs and behavior are sub
8
8
 
9
9
  * Your contribution here!
10
10
 
11
+ ## [0.2.0][] (2016-07-18)
12
+
13
+ * Rewrite as a Rake task instead of a monkey patch
14
+ * New usage: `bin/rake pgcli`
15
+
11
16
  ## 0.1.0 (2016-07-15)
12
17
 
13
18
  * Initial release
14
19
 
15
20
  [Semver]: http://semver.org
21
+ [Unreleased]: https://github.com/mattbrictson/pgcli-rails/compare/v0.2.0...HEAD
22
+ [0.2.0]: https://github.com/mattbrictson/pgcli-rails/compare/v0.1.0...v0.2.0
data/README.md CHANGED
@@ -2,16 +2,22 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/pgcli-rails.svg)](http://badge.fury.io/rb/pgcli-rails)
4
4
 
5
- Wouldn't it be great if `rails dbconsole` used [pgcli][] instead of psql?
5
+ [pgcli][] is a command-line interface for PostgreSQL that offers many improvements over `psql`, like auto-completion and syntax highlighting. Wouldn't it be nice to have a convenient way to use `pgcli` with your Rails app?
6
+
7
+ That's where the pgcli-rails gem comes in. It adds a `pgcli` Rake task to your Rails app. Use it in place of `rails dbconsole`.
8
+
9
+ # Usage
10
+
11
+ Add the gem to your Gemfile and run `bundle install`:
6
12
 
7
13
  ```ruby
8
- gem "pgcli-rails", groups: %w(development test)
14
+ gem "pgcli-rails"
9
15
  ```
10
16
 
11
- Now it does.
17
+ Running the `pgcli` Rake task automatically uses your `database.yml` to launch pgcli with the correct connection options:
12
18
 
13
19
  ```
14
- $ rails dbconsole
20
+ $ bin/rake pgcli
15
21
  Version: 1.0.0
16
22
  Chat: https://gitter.im/dbcli/pgcli
17
23
  Mail: https://groups.google.com/forum/#!forum/pgcli
@@ -23,6 +29,16 @@ my_app_development>
23
29
  [F2] Smart Completion: ON [F3] Multiline: OFF [F4] Emacs-mode
24
30
  ```
25
31
 
32
+ Other ways to use it:
33
+
34
+ ```
35
+ # Rails 5 also supports running Rake tasks via the rails command
36
+ bin/rails pgcli
37
+
38
+ # Connect to the test database
39
+ RAILS_ENV=test bin/rake pgcli
40
+ ```
41
+
26
42
  ## Requirements
27
43
 
28
44
  * Rails 4.2+ using PostgreSQL
@@ -31,21 +47,11 @@ my_app_development>
31
47
 
32
48
  ## How it works
33
49
 
34
- pgcli-rails is a monkey patch. Using a `Rails::Railtie` callback, it hooks into the Rails load process and patches the `Rails::DBConsole` class to execute `pgcli` instead of `psql`. All you need to do is require the pgcli-rails gem by placing it in your Gemfile.
50
+ pgcli-rails is simply a Rake task that reuses the existing `Rails::DBConsole` command class provided by Rails. It subclasses DBConsole to execute `pgcli` instead of `psql`. All you need to do is require the pgcli-rails gem by placing it in your Gemfile.
35
51
 
36
52
  ## Configuration
37
53
 
38
- There is no configuration to speak of, but you can control which environment(s) use `pgcli` by specifying the appropriate group in the Gemfile.
39
-
40
- ```ruby
41
- # Use pgcli in *all* environments (including production)
42
- gem "pgcli-rails"
43
- ```
44
-
45
- ```ruby
46
- # Use pgcli only in development and test environments
47
- gem "pgcli-rails", groups: %w(development test)
48
- ```
54
+ There is no configuration. Like `rails dbconsole`, it simply uses your ActiveRecord database connection as specified in `database.yml`.
49
55
 
50
56
  ## Roadmap
51
57
 
@@ -0,0 +1,15 @@
1
+ require "rails/commands/dbconsole"
2
+
3
+ module Pgcli
4
+ module Rails
5
+ # Subclass the built-in Rails DBConsole to override "psql" with "pgcli".
6
+ class DBConsole < ::Rails::DBConsole
7
+ protected
8
+
9
+ def find_cmd_and_exec(commands, *args)
10
+ commands = "pgcli" if commands == "psql"
11
+ super(commands, *args)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,20 +1,8 @@
1
1
  module Pgcli
2
2
  module Rails
3
3
  class Railtie < ::Rails::Railtie
4
- # This code executes when Rails loads but before the dbconsole command is
5
- # executed. Monkey patches the Rails::DBConsole class to change the
6
- # executable that is used for the pg adapter from "psql" to "pgcli".
7
- config.before_configuration do
8
- require "rails/commands/dbconsole"
9
- class ::Rails::DBConsole
10
- protected
11
-
12
- alias original_find_cmd_and_exec find_cmd_and_exec
13
- def find_cmd_and_exec(commands, *args)
14
- commands = "pgcli" if commands == "psql"
15
- original_find_cmd_and_exec(commands, *args)
16
- end
17
- end
4
+ rake_tasks do
5
+ load File.expand_path("../tasks.rake", __FILE__)
18
6
  end
19
7
  end
20
8
  end
@@ -0,0 +1,10 @@
1
+ desc "Start pgcli using connection info from database.yml"
2
+ task :pgcli do
3
+ require "pgcli/rails/dbconsole"
4
+
5
+ # APP_PATH constant must be set for DBConsole to work
6
+ APP_PATH = Rails.root.join("config", "application") unless defined?(APP_PATH)
7
+
8
+ console = Pgcli::Rails::DBConsole.new(["--include-password"])
9
+ console.start
10
+ end
@@ -1,5 +1,5 @@
1
1
  module Pgcli
2
2
  module Rails
3
- VERSION = "0.1.0".freeze
3
+ VERSION = "0.2.0".freeze
4
4
  end
5
5
  end
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
22
22
 
23
23
  spec.add_development_dependency "bundler", "~> 1.12"
24
24
  spec.add_development_dependency "chandler"
25
- spec.add_development_dependency "rake", "~> 10.0"
25
+ spec.add_development_dependency "rake", "~> 11.2"
26
26
  spec.add_development_dependency "minitest", "~> 5.0"
27
27
  spec.add_development_dependency "minitest-reporters"
28
28
  spec.add_development_dependency "rubocop", ">= 0.37.2"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pgcli-rails
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
  - Matt Brictson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-07-15 00:00:00.000000000 Z
11
+ date: 2016-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: '11.2'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: '11.2'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: minitest
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -128,7 +128,9 @@ files:
128
128
  - bin/console
129
129
  - bin/setup
130
130
  - lib/pgcli/rails.rb
131
+ - lib/pgcli/rails/dbconsole.rb
131
132
  - lib/pgcli/rails/railtie.rb
133
+ - lib/pgcli/rails/tasks.rake
132
134
  - lib/pgcli/rails/version.rb
133
135
  - pgcli-rails.gemspec
134
136
  homepage: https://github.com/mattbrictson/pgcli-rails