rsql 0.2.9 → 0.2.10
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.
- data/.yardopts +7 -0
- data/README.rdoc +5 -7
- data/bin/rsql +6 -6
- data/example.rsqlrc +18 -17
- data/example.rsqlrc.rdoc +18 -17
- data/lib/rsql/mysql_results.rb +1 -0
- data/lib/rsql.rb +2 -2
- metadata +6 -5
data/.yardopts
ADDED
data/README.rdoc
CHANGED
@@ -87,14 +87,12 @@ directly from the console (without echoing the characters typed):
|
|
87
87
|
|
88
88
|
== GETTING STARTED
|
89
89
|
|
90
|
-
|
91
|
-
|
90
|
+
Try out the {file:example.rsqlrc.rdoc} for a painless introduction on how to
|
91
|
+
leverage RSQL.
|
92
92
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
The file is available as example.rsqlrc installed with the gem or downloaded
|
97
|
-
with the source.
|
93
|
+
The file is available as
|
94
|
+
{<tt>example.rsqlrc</tt>}[https://raw.github.com/bradrf/rsql/master/example.rsqlrc]
|
95
|
+
installed with the gem or downloaded with the source.
|
98
96
|
|
99
97
|
== LICENSE
|
100
98
|
|
data/bin/rsql
CHANGED
@@ -277,7 +277,7 @@ if opts.ssh_host
|
|
277
277
|
|
278
278
|
password_retry_cnt = 0
|
279
279
|
|
280
|
-
unless opts.
|
280
|
+
unless opts.batch_output
|
281
281
|
print "SSH #{opts.ssh_user}#{opts.ssh_user ? '@' : ''}#{opts.ssh_host}..."
|
282
282
|
$stdout.flush
|
283
283
|
end
|
@@ -297,7 +297,7 @@ if opts.ssh_host
|
|
297
297
|
ssh_enabled = false
|
298
298
|
Signal.trap('INT', 'IGNORE')
|
299
299
|
Signal.trap('TERM') do
|
300
|
-
$stderr.puts 'Closing SSH connection...' unless opts.
|
300
|
+
$stderr.puts 'Closing SSH connection...' unless opts.batch_output
|
301
301
|
ssh_enabled = false
|
302
302
|
end
|
303
303
|
ssh_opts = {:timeout => 15}
|
@@ -313,7 +313,7 @@ if opts.ssh_host
|
|
313
313
|
ssh = Net::SSH.start(opts.ssh_host, opts.ssh_user, ssh_opts)
|
314
314
|
ssh_opts.delete(:password)
|
315
315
|
ssh_enabled = true
|
316
|
-
printf "connected (#{$$})..." unless opts.
|
316
|
+
printf "connected (#{$$})..." unless opts.batch_output
|
317
317
|
$stdout.flush
|
318
318
|
rescue Net::SSH::AuthenticationFailed
|
319
319
|
if 2 < password_retry_cnt
|
@@ -337,7 +337,7 @@ if opts.ssh_host
|
|
337
337
|
ensure
|
338
338
|
if ssh_enabled
|
339
339
|
ssh.forward.local(opts.mysql_port, opts.mysql_host, opts.remote_mysql_port)
|
340
|
-
unless opts.
|
340
|
+
unless opts.batch_output
|
341
341
|
puts(opts.verbose ? "ready (#{opts.mysql_port} => #{opts.remote_mysql_port})" : 'ready')
|
342
342
|
end
|
343
343
|
File.open(ipc_fn,'w'){|f| f.puts('ready')}
|
@@ -393,7 +393,7 @@ if opts.ssh_host
|
|
393
393
|
opts.mysql_host = '127.0.0.1'
|
394
394
|
end
|
395
395
|
|
396
|
-
unless opts.
|
396
|
+
unless opts.batch_output
|
397
397
|
print "MySQL #{opts.mysql_user}@#{opts.remote_mysql_host}..."
|
398
398
|
$stdout.flush
|
399
399
|
end
|
@@ -403,7 +403,7 @@ begin
|
|
403
403
|
MySQLResults.conn = Mysql.new(opts.mysql_host, opts.mysql_user, opts.mysql_password,
|
404
404
|
MySQLResults.database_name, opts.mysql_port)
|
405
405
|
MySQLResults.conn.reconnect = true
|
406
|
-
puts 'connected' unless opts.
|
406
|
+
puts 'connected' unless opts.batch_output
|
407
407
|
rescue Mysql::Error => ex
|
408
408
|
if ex.message.include?('Client does not support authentication')
|
409
409
|
$stderr.puts "failed to connect to #{mysql_conn} mysql server: unknown credentials?"
|
data/example.rsqlrc
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
|
14
14
|
# To use this file, change directory to the one containing this file and run
|
15
15
|
# RSQL connecting to your MySQL server (run rsql with no arguments for
|
16
|
-
# usage--see
|
16
|
+
# usage--see {file:README.rdoc} for more details on command line parameters).
|
17
17
|
#
|
18
18
|
# rsql> .load 'example.rsqlrc';
|
19
19
|
|
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
################################################################################
|
36
36
|
|
37
|
-
# Use of RSQL::EvalContext#register_init allows a block to be automatically
|
37
|
+
# Use of {RSQL::EvalContext#register_init} allows a block to be automatically
|
38
38
|
# invoked when this file is loaded. Often, this is useful to run set up routines
|
39
39
|
# like setting MySQL variables for different read levels (e.g. <b><tt>SET
|
40
40
|
# SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED</tt></b>). Any number of
|
@@ -51,7 +51,7 @@ CREATE TEMPORARY TABLE IF NOT EXISTS #{@rsql_table} (
|
|
51
51
|
}, :desc => 'Sets up example table for trying out RSQL.'
|
52
52
|
|
53
53
|
# This next recipe is building up a string with a single variable interpolated
|
54
|
-
# into it (our table name) through RSQL::EvalContext#register. The string will
|
54
|
+
# into it (our table name) through {RSQL::EvalContext#register}. The string will
|
55
55
|
# then be used as if typed at the command line.
|
56
56
|
#
|
57
57
|
# rsql> .cleanup_example;
|
@@ -73,7 +73,7 @@ DROP TEMPORARY TABLE IF EXISTS #{@rsql_table}
|
|
73
73
|
#
|
74
74
|
# rsql> .fill_table;
|
75
75
|
#
|
76
|
-
# Notice the use of the RSQL::EvalContext#hexify and RSQL::EvalContext#squeeze!
|
76
|
+
# Notice the use of the {RSQL::EvalContext#hexify} and {RSQL::EvalContext#squeeze!}
|
77
77
|
# helper methods.
|
78
78
|
#
|
79
79
|
register :fill_table, :desc => 'Populate the example table.' do
|
@@ -112,7 +112,7 @@ SELECT name, value FROM #{@rsql_table} WHERE #{val} <= value
|
|
112
112
|
|
113
113
|
# Sometimes we make mistakes (never!). Normally, the command history kept in
|
114
114
|
# RSQL only stores the last thing entered at the prompt--not any query that the
|
115
|
-
# previous command may have generated and invoked.
|
115
|
+
# previous command may have generated and invoked. When writing a recipe that
|
116
116
|
# generates a query that has an error reported by MySQL, it is really handy to
|
117
117
|
# see the generated SQL.
|
118
118
|
#
|
@@ -122,7 +122,7 @@ SELECT name, value FROM #{@rsql_table} WHERE #{val} <= value
|
|
122
122
|
# rsql> .bad_query;
|
123
123
|
#
|
124
124
|
# So the command in our history is the recipe and not the query. To see the
|
125
|
-
# query the RSQL::EvalContext#history has a helper method ready for us:
|
125
|
+
# query the {RSQL::EvalContext#history} has a helper method ready for us:
|
126
126
|
#
|
127
127
|
# rsql> .history;
|
128
128
|
#
|
@@ -137,8 +137,8 @@ SELECT name, value FROM #{@rsql_table} WHERE valu < 10000
|
|
137
137
|
#
|
138
138
|
# rsql> select name, value from rsql_example ! value => humanize_bytes;
|
139
139
|
#
|
140
|
-
# The RSQL::EvalContext#humanize_bytes is another helper method. There are
|
141
|
-
# several others available. Check out the RSQL::EvalContext class for details.
|
140
|
+
# The {RSQL::EvalContext#humanize_bytes} is another helper method. There are
|
141
|
+
# several others available. Check out the {RSQL::EvalContext} class for details.
|
142
142
|
#
|
143
143
|
# Additional mappings can be added, separated by commas.
|
144
144
|
#
|
@@ -184,10 +184,10 @@ SELECT name FROM #{@rsql_table}
|
|
184
184
|
#
|
185
185
|
# rsql> select name, value from rsql_example | p @results;
|
186
186
|
#
|
187
|
-
# The RSQL::EvalContext class manages the results from a previous query in the
|
187
|
+
# The {RSQL::EvalContext} class manages the results from a previous query in the
|
188
188
|
# <b><tt>@results</tt></b> member variable accessible by any Ruby recipe
|
189
|
-
# code. This is an instance of the RSQL::MySQLResults class. Below we make use
|
190
|
-
# of the RSQL::MySQLResults#each_hash method to walk over all rows. There are
|
189
|
+
# code. This is an instance of the {RSQL::MySQLResults} class. Below we make use
|
190
|
+
# of the {RSQL::MySQLResults#each_hash} method to walk over all rows. There are
|
191
191
|
# other helpful routines available.
|
192
192
|
#
|
193
193
|
# Here's an example that writes a simple report of the data we are working
|
@@ -215,8 +215,9 @@ end
|
|
215
215
|
#
|
216
216
|
# After running this, a <b><tt>myobj.yml</tt></b> file should be created in the
|
217
217
|
# local directory containing all the content from the query. To accomplish this,
|
218
|
-
# the RSQL::EvalContext#safe_save method is invoked which serializes our
|
219
|
-
# so that we may later decided to run some post processing on the
|
218
|
+
# the {RSQL::EvalContext#safe_save} method is invoked which serializes our
|
219
|
+
# object so that we may later decided to run some post processing on the
|
220
|
+
# content.
|
220
221
|
#
|
221
222
|
# Inspect the YAML[http://www.yaml.org/] content written out:
|
222
223
|
#
|
@@ -246,7 +247,7 @@ SELECT name, value
|
|
246
247
|
# Sometimes it just isn't enough to be able to rely on generating SQL queries
|
247
248
|
# and piping into handlers. Sometimes we just need to roll up our sleeves and
|
248
249
|
# run queries directly so we can start processing results and dealing with
|
249
|
-
# presentation all on our own. That's where the RSQL::EvalContext#query helper
|
250
|
+
# presentation all on our own. That's where the {RSQL::EvalContext#query} helper
|
250
251
|
# comes in handy.
|
251
252
|
#
|
252
253
|
# The intention here is to just create a series of sentences out of two separate
|
@@ -262,7 +263,7 @@ register :show_sentences, :desc => 'Show results as sentences.' do
|
|
262
263
|
end
|
263
264
|
end
|
264
265
|
|
265
|
-
# The RSQL::MySQLResults class built in to RSQL handles binary content
|
266
|
+
# The {RSQL::MySQLResults} class built in to RSQL handles binary content
|
266
267
|
# gracefully, automatically converting it to something a little nicer to our
|
267
268
|
# consoles than just dumping it. It converts it into a hexadecimal string.
|
268
269
|
#
|
@@ -280,7 +281,7 @@ SELECT * FROM #{@rsql_table} WHERE stuff=#{hexify stuff}
|
|
280
281
|
}, :desc => 'Find some hex stuff.'
|
281
282
|
|
282
283
|
# There are many other things to try out left as an "exercise for the
|
283
|
-
# reader". Browsing the RSQL::EvalContext and RSQL::MySQLResults classes
|
284
|
-
# be an excellent start.
|
284
|
+
# reader". Browsing the {RSQL::EvalContext} and {RSQL::MySQLResults} classes
|
285
|
+
# would be an excellent start.
|
285
286
|
|
286
287
|
# vi: set filetype=ruby
|
data/example.rsqlrc.rdoc
CHANGED
@@ -13,7 +13,7 @@ this temporary table.
|
|
13
13
|
|
14
14
|
To use this file, change directory to the one containing this file and run
|
15
15
|
RSQL connecting to your MySQL server (run rsql with no arguments for
|
16
|
-
usage--see
|
16
|
+
usage--see {file:README.rdoc} for more details on command line parameters).
|
17
17
|
|
18
18
|
<tt>rsql> .load 'example.rsqlrc';</tt>
|
19
19
|
|
@@ -34,7 +34,7 @@ period on a command.
|
|
34
34
|
|
35
35
|
---
|
36
36
|
|
37
|
-
Use of RSQL::EvalContext#register_init allows a block to be automatically
|
37
|
+
Use of {RSQL::EvalContext#register_init} allows a block to be automatically
|
38
38
|
invoked when this file is loaded. Often, this is useful to run set up routines
|
39
39
|
like setting MySQL variables for different read levels (e.g. <b><tt>SET
|
40
40
|
SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED</tt></b>). Any number of
|
@@ -51,7 +51,7 @@ Here we are merely setting up the example table.
|
|
51
51
|
}, :desc => 'Sets up example table for trying out RSQL.'
|
52
52
|
|
53
53
|
This next recipe is building up a string with a single variable interpolated
|
54
|
-
into it (our table name) through RSQL::EvalContext#register. The string will
|
54
|
+
into it (our table name) through {RSQL::EvalContext#register}. The string will
|
55
55
|
then be used as if typed at the command line.
|
56
56
|
|
57
57
|
<tt>rsql> .cleanup_example;</tt>
|
@@ -73,7 +73,7 @@ Here we are just populating the table (if it isn't already).
|
|
73
73
|
|
74
74
|
<tt>rsql> .fill_table;</tt>
|
75
75
|
|
76
|
-
Notice the use of the RSQL::EvalContext#hexify and RSQL::EvalContext#squeeze!
|
76
|
+
Notice the use of the {RSQL::EvalContext#hexify} and {RSQL::EvalContext#squeeze!}
|
77
77
|
helper methods.
|
78
78
|
|
79
79
|
register :fill_table, :desc => 'Populate the example table.' do
|
@@ -112,7 +112,7 @@ passed in.
|
|
112
112
|
|
113
113
|
Sometimes we make mistakes (never!). Normally, the command history kept in
|
114
114
|
RSQL only stores the last thing entered at the prompt--not any query that the
|
115
|
-
previous command may have generated and invoked.
|
115
|
+
previous command may have generated and invoked. When writing a recipe that
|
116
116
|
generates a query that has an error reported by MySQL, it is really handy to
|
117
117
|
see the generated SQL.
|
118
118
|
|
@@ -122,7 +122,7 @@ arrow" key to see the previous command.
|
|
122
122
|
<tt>rsql> .bad_query;</tt>
|
123
123
|
|
124
124
|
So the command in our history is the recipe and not the query. To see the
|
125
|
-
query the RSQL::EvalContext#history has a helper method ready for us:
|
125
|
+
query the {RSQL::EvalContext#history} has a helper method ready for us:
|
126
126
|
|
127
127
|
<tt>rsql> .history;</tt>
|
128
128
|
|
@@ -137,8 +137,8 @@ humanize? Try this command:
|
|
137
137
|
|
138
138
|
<tt>rsql> select name, value from rsql_example ! value => humanize_bytes;</tt>
|
139
139
|
|
140
|
-
The RSQL::EvalContext#humanize_bytes is another helper method. There are
|
141
|
-
several others available. Check out the RSQL::EvalContext class for details.
|
140
|
+
The {RSQL::EvalContext#humanize_bytes} is another helper method. There are
|
141
|
+
several others available. Check out the {RSQL::EvalContext} class for details.
|
142
142
|
|
143
143
|
Additional mappings can be added, separated by commas.
|
144
144
|
|
@@ -184,10 +184,10 @@ this:
|
|
184
184
|
|
185
185
|
<tt>rsql> select name, value from rsql_example | p @results;</tt>
|
186
186
|
|
187
|
-
The RSQL::EvalContext class manages the results from a previous query in the
|
187
|
+
The {RSQL::EvalContext} class manages the results from a previous query in the
|
188
188
|
<b><tt>@results</tt></b> member variable accessible by any Ruby recipe
|
189
|
-
code. This is an instance of the RSQL::MySQLResults class. Below we make use
|
190
|
-
of the RSQL::MySQLResults#each_hash method to walk over all rows. There are
|
189
|
+
code. This is an instance of the {RSQL::MySQLResults} class. Below we make use
|
190
|
+
of the {RSQL::MySQLResults#each_hash} method to walk over all rows. There are
|
191
191
|
other helpful routines available.
|
192
192
|
|
193
193
|
Here's an example that writes a simple report of the data we are working
|
@@ -215,8 +215,9 @@ want to process results and keep our data around in a file.
|
|
215
215
|
|
216
216
|
After running this, a <b><tt>myobj.yml</tt></b> file should be created in the
|
217
217
|
local directory containing all the content from the query. To accomplish this,
|
218
|
-
the RSQL::EvalContext#safe_save method is invoked which serializes our
|
219
|
-
so that we may later decided to run some post processing on the
|
218
|
+
the {RSQL::EvalContext#safe_save} method is invoked which serializes our
|
219
|
+
object so that we may later decided to run some post processing on the
|
220
|
+
content.
|
220
221
|
|
221
222
|
Inspect the YAML[http://www.yaml.org/] content written out:
|
222
223
|
|
@@ -246,7 +247,7 @@ Here we simply expand the arguments.
|
|
246
247
|
Sometimes it just isn't enough to be able to rely on generating SQL queries
|
247
248
|
and piping into handlers. Sometimes we just need to roll up our sleeves and
|
248
249
|
run queries directly so we can start processing results and dealing with
|
249
|
-
presentation all on our own. That's where the RSQL::EvalContext#query helper
|
250
|
+
presentation all on our own. That's where the {RSQL::EvalContext#query} helper
|
250
251
|
comes in handy.
|
251
252
|
|
252
253
|
The intention here is to just create a series of sentences out of two separate
|
@@ -262,7 +263,7 @@ queries.
|
|
262
263
|
end
|
263
264
|
end
|
264
265
|
|
265
|
-
The RSQL::MySQLResults class built in to RSQL handles binary content
|
266
|
+
The {RSQL::MySQLResults} class built in to RSQL handles binary content
|
266
267
|
gracefully, automatically converting it to something a little nicer to our
|
267
268
|
consoles than just dumping it. It converts it into a hexadecimal string.
|
268
269
|
|
@@ -280,7 +281,7 @@ RSQL makes querying for hex strings from within a recipe easy too.
|
|
280
281
|
}, :desc => 'Find some hex stuff.'
|
281
282
|
|
282
283
|
There are many other things to try out left as an "exercise for the
|
283
|
-
reader". Browsing the RSQL::EvalContext and RSQL::MySQLResults classes
|
284
|
-
be an excellent start.
|
284
|
+
reader". Browsing the {RSQL::EvalContext} and {RSQL::MySQLResults} classes
|
285
|
+
would be an excellent start.
|
285
286
|
|
286
287
|
|
data/lib/rsql/mysql_results.rb
CHANGED
data/lib/rsql.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# A module encapsulating classes to manage MySQLResults and process
|
2
2
|
# Commands using an EvalContext for handling recipes.
|
3
3
|
#
|
4
|
-
# See the
|
4
|
+
# See the {file:example.rsqlrc.rdoc} file for a simple tutorial and usage
|
5
5
|
# information.
|
6
6
|
#
|
7
7
|
module RSQL
|
8
|
-
VERSION = '0.2.
|
8
|
+
VERSION = '0.2.10'
|
9
9
|
|
10
10
|
require 'rsql/mysql_results'
|
11
11
|
require 'rsql/eval_context'
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rsql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 10
|
10
|
+
version: 0.2.10
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Brad Robel-Forrest
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-02-
|
18
|
+
date: 2012-02-18 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: net-ssh
|
@@ -118,10 +118,12 @@ extra_rdoc_files:
|
|
118
118
|
- LICENSE
|
119
119
|
- example.rsqlrc.rdoc
|
120
120
|
files:
|
121
|
+
- .yardopts
|
121
122
|
- LICENSE
|
122
123
|
- README.rdoc
|
123
124
|
- bin/rsql
|
124
125
|
- example.rsqlrc
|
126
|
+
- example.rsqlrc.rdoc
|
125
127
|
- extra/mysql-client-5.1.59-1.tgz
|
126
128
|
- lib/rsql.rb
|
127
129
|
- lib/rsql/commands.rb
|
@@ -130,7 +132,6 @@ files:
|
|
130
132
|
- test/test_commands.rb
|
131
133
|
- test/test_eval_context.rb
|
132
134
|
- test/test_mysql_results.rb
|
133
|
-
- example.rsqlrc.rdoc
|
134
135
|
homepage: https://rubygems.org/gems/rsql
|
135
136
|
licenses: []
|
136
137
|
|