console_util 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module ConsoleUtil
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
data/lib/console_util.rb CHANGED
@@ -3,7 +3,7 @@ require 'console_util/color'
3
3
  module ConsoleUtil
4
4
  class << self
5
5
  attr_reader :suppressed_output
6
-
6
+
7
7
  # Monkey-patch the ActiveRecord connection to output the SQL query before
8
8
  # executing it.
9
9
  def output_sql_to_console(options = {})
@@ -19,10 +19,10 @@ module ConsoleUtil
19
19
  super
20
20
  end
21
21
  end
22
-
22
+
23
23
  true
24
24
  end
25
-
25
+
26
26
  # Import a MySQL dump file.
27
27
  # [This may work with other databases, but has only been tested with MySQL.]
28
28
  def import_mysql_dump(filename)
@@ -36,10 +36,10 @@ module ConsoleUtil
36
36
  def load_all_models
37
37
  Rails.root.join('app/models').each_entry do |model_file|
38
38
  model_match = model_file.to_s.match(/^(.*)\.rb$/)
39
- model_match[1].classify.constantize if model_match
39
+ model_match[1].camelize.constantize if model_match
40
40
  end
41
41
  end
42
-
42
+
43
43
  # Allows you to filter output to the console using grep
44
44
  # Ex:
45
45
  # def foo
@@ -47,7 +47,7 @@ module ConsoleUtil
47
47
  # puts "The value of x is y"
48
48
  # puts "The value of foo is bar"
49
49
  # end
50
- #
50
+ #
51
51
  # grep_stdout(/value/) { foo }
52
52
  # # => The value of x is y
53
53
  # # => The value of foo is bar
@@ -57,22 +57,22 @@ module ConsoleUtil
57
57
  # the first is read only (which represents a fake $stdin) and the second is
58
58
  # write only (which represents a fake $stdout).
59
59
  placeholder_in, placeholder_out = IO.pipe
60
-
60
+
61
61
  # This child process handles the grep'ing. Its done in a child process so that
62
62
  # it can operate in parallel with the main process.
63
63
  pid = fork {
64
64
  # sync $stdout so we can report any matches asap
65
65
  $stdout.sync
66
-
66
+
67
67
  # replace $stdout with placeholder_out
68
68
  $stdin.reopen(placeholder_in)
69
-
69
+
70
70
  # we have to close both placeholder_out and placeholder_in because all instances
71
71
  # of an IO stream must be closed in order for it to ever reach EOF. There's two
72
72
  # in this method; one in the child process and one in the main process.
73
73
  placeholder_in.close
74
74
  placeholder_out.close
75
-
75
+
76
76
  # loop continuously until we reach EOF (which happens when all
77
77
  # instances of placeholder_out have closed)
78
78
  read_buffer = ''
@@ -80,52 +80,52 @@ module ConsoleUtil
80
80
  begin
81
81
  match = nil
82
82
  next_read = $stdin.readpartial(4096)
83
-
83
+
84
84
  read_buffer << next_read
85
85
  if line_match = read_buffer.match(/^(.*\n)(.*)$/m)
86
86
  match = line_match[1].grep(expression) # grep complete lines
87
- read_buffer = line_match[2] # save remaining partial line for the next iteration
87
+ read_buffer = line_match[2] # save remaining partial line for the next iteration
88
88
  end
89
89
  rescue EOFError
90
- match = read_buffer.grep(expression) # grep any remaining partial line at EOF
90
+ match = read_buffer.grep(expression) # grep any remaining partial line at EOF
91
91
  break
92
92
  end
93
-
93
+
94
94
  if match && !match.empty?
95
95
  print match
96
96
  end
97
97
  end
98
98
  }
99
-
99
+
100
100
  # Save the original stdout out to a variable so we can use it again after this
101
101
  # method is done
102
102
  original_stdout = $stdout
103
-
103
+
104
104
  # Redirect stdout to our pipe
105
105
  $stdout = placeholder_out
106
-
106
+
107
107
  # sync $stdout so that we can start operating on it as soon as possible
108
108
  $stdout.sync
109
-
109
+
110
110
  # allow the block to execute and save its return value
111
111
  return_value = yield
112
-
112
+
113
113
  # Set stdout back to the original so output will flow again
114
114
  $stdout = original_stdout
115
-
115
+
116
116
  # close the main instances of placeholder_in and placeholder_out
117
117
  placeholder_in.close
118
118
  placeholder_out.close
119
-
119
+
120
120
  # Wait for the child processes to finish
121
121
  Process.wait pid
122
-
122
+
123
123
  # Because the connection to the database has a tendency to go away when calling this, reconnect here
124
124
  # if we're using ActiveRecord
125
125
  if defined?(ActiveRecord)
126
126
  suppress_stdout { ActiveRecord::Base.verify_active_connections! }
127
127
  end
128
-
128
+
129
129
  # return the value of the block
130
130
  return_value
131
131
  end
@@ -135,7 +135,7 @@ module ConsoleUtil
135
135
  # def foo
136
136
  # puts "lots of stuff directed to $stdout that I don't want to see."
137
137
  # end
138
- #
138
+ #
139
139
  # suppress_stdout do |stdout|
140
140
  # stdout.puts "About to call #foo"
141
141
  # foo
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: console_util
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 0
10
- version: 0.3.0
9
+ - 1
10
+ version: 0.3.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Clyde Law
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-07-19 00:00:00 -07:00
18
+ date: 2012-07-24 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency