hirb 0.7.2 → 0.7.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.rdoc +3 -0
- data/README.rdoc +2 -1
- data/lib/hirb.rb +8 -6
- data/lib/hirb/formatter.rb +4 -4
- data/lib/hirb/helpers/table.rb +2 -0
- data/lib/hirb/helpers/table/resizer.rb +1 -1
- data/lib/hirb/menu.rb +1 -1
- data/lib/hirb/util.rb +2 -2
- data/lib/hirb/version.rb +1 -1
- data/lib/hirb/view.rb +9 -7
- data/test/hirb_test.rb +6 -6
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c82103d6a98efbf7551286da42328fe06933713
|
4
|
+
data.tar.gz: 007e3755d06c41814d5b3e80731f55c4b4cd47ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aad1ff6678f0a2b1a33aeeaf5ccf2cf647c96e9d0e4e077efec0e22c3c77ab3892534cba9810709b16b6f9729233658fe191ef206358f9c73e92db8b7677f938
|
7
|
+
data.tar.gz: 97a34adef83202ddfe42e989b8ef4ef639ce35b077258ca415af034f6cec0ba40be3786ffafd73030233ad4d82eabe23c8a31306a68627d7c6996d50cf0669cf
|
data/CHANGELOG.rdoc
CHANGED
data/README.rdoc
CHANGED
@@ -190,7 +190,8 @@ Table code from http://gist.github.com/72234 and {my console app's needs}[http:/
|
|
190
190
|
* Chrononaut for vertical table helper.
|
191
191
|
* janlelis for unicode table helper.
|
192
192
|
* technogeeky and FND for markdown table helper.
|
193
|
-
* hsume2, crafterm, spastorino, xaviershay, bogdan, asanghi, vwall, maxmeyer, jimjh, ddoherty03
|
193
|
+
* hsume2, crafterm, spastorino, xaviershay, bogdan, asanghi, vwall, maxmeyer, jimjh, ddoherty03,
|
194
|
+
rochefort and joshua for patches.
|
194
195
|
|
195
196
|
== Bugs/Issues
|
196
197
|
Please report them {on github}[http://github.com/cldwalker/hirb/issues].
|
data/lib/hirb.rb
CHANGED
@@ -34,8 +34,8 @@ module Hirb
|
|
34
34
|
attr_accessor :config_files, :config
|
35
35
|
|
36
36
|
# Enables view functionality. See Hirb::View.enable for details.
|
37
|
-
def enable(options={}
|
38
|
-
View.enable(options
|
37
|
+
def enable(options={})
|
38
|
+
View.enable(options)
|
39
39
|
end
|
40
40
|
|
41
41
|
# Disables view functionality. See Hirb::View.disable for details.
|
@@ -44,8 +44,8 @@ module Hirb
|
|
44
44
|
end
|
45
45
|
|
46
46
|
# Adds views. See Hirb::View.add for details.
|
47
|
-
def add_view(view, options
|
48
|
-
View.add(view, options
|
47
|
+
def add_view(view, options)
|
48
|
+
View.add(view, options)
|
49
49
|
end
|
50
50
|
|
51
51
|
# Adds views. See Hirb::DynamicView.add for details.
|
@@ -55,6 +55,7 @@ module Hirb
|
|
55
55
|
|
56
56
|
# Array of config files which are merged sequentially to produce config.
|
57
57
|
# Defaults to config/hirb.yml and ~/.hirb_yml
|
58
|
+
undef :config_files
|
58
59
|
def config_files
|
59
60
|
@config_files ||= default_config_files
|
60
61
|
end
|
@@ -62,13 +63,14 @@ module Hirb
|
|
62
63
|
#:stopdoc:
|
63
64
|
def default_config_files
|
64
65
|
[File.join(Util.find_home, ".hirb.yml")] +
|
65
|
-
(File.
|
66
|
+
(File.exist?('config/hirb.yml') ? ['config/hirb.yml'] : [])
|
66
67
|
end
|
67
68
|
|
68
69
|
def read_config_file(file=config_file)
|
69
|
-
File.
|
70
|
+
File.exist?(file) ? YAML.load_file(file) : {}
|
70
71
|
end
|
71
72
|
|
73
|
+
undef :config
|
72
74
|
def config(reload=false)
|
73
75
|
if (@config.nil? || reload)
|
74
76
|
@config = config_files.inject({}) {|acc,e|
|
data/lib/hirb/formatter.rb
CHANGED
@@ -29,7 +29,7 @@ module Hirb
|
|
29
29
|
# [*:options*] Options to pass the helper method or class.
|
30
30
|
# [*:ancestor*] Boolean which when true causes subclasses of the output class to inherit its config. This doesn't effect the current
|
31
31
|
# output class. Defaults to false. This is used by ActiveRecord classes.
|
32
|
-
#
|
32
|
+
#
|
33
33
|
# Examples:
|
34
34
|
# {'WWW::Delicious::Element'=>{:class=>'Hirb::Helpers::ObjectTable', :ancestor=>true, :options=>{:max_width=>180}}}
|
35
35
|
# {'Date'=>{:class=>:auto_table, :ancestor=>true}}
|
@@ -101,10 +101,10 @@ module Hirb
|
|
101
101
|
def build_klass_config(output_class)
|
102
102
|
output_ancestors = output_class.ancestors.map {|e| e.to_s}.reverse
|
103
103
|
output_ancestors.pop
|
104
|
-
hash = output_ancestors.inject({}) {|h,
|
105
|
-
add_klass_config_if_true(h,
|
104
|
+
hash = output_ancestors.inject({}) {|h, ancestor_klass|
|
105
|
+
add_klass_config_if_true(h, ancestor_klass) {|c, klass| c[klass] && c[klass][:ancestor] }
|
106
106
|
}
|
107
|
-
add_klass_config_if_true(hash, output_class.to_s) {|c,klass| c[klass] }
|
107
|
+
add_klass_config_if_true(hash, output_class.to_s) {|c, klass| c[klass] }
|
108
108
|
end
|
109
109
|
|
110
110
|
def add_klass_config_if_true(hash, klass)
|
data/lib/hirb/helpers/table.rb
CHANGED
@@ -302,6 +302,7 @@ class Helpers::Table
|
|
302
302
|
max_fields.each {|k,max| @field_lengths[k] = max if @field_lengths[k].to_i > max }
|
303
303
|
end
|
304
304
|
|
305
|
+
undef :max_fields
|
305
306
|
def max_fields
|
306
307
|
@max_fields ||= (@options[:max_fields] ||= {}).each {|k,v|
|
307
308
|
@options[:max_fields][k] = (actual_width * v.to_f.abs).floor if v.to_f.abs < 1
|
@@ -312,6 +313,7 @@ class Helpers::Table
|
|
312
313
|
@actual_width ||= self.width - (@fields.size * BORDER_LENGTH + 1)
|
313
314
|
end
|
314
315
|
|
316
|
+
undef :width
|
315
317
|
def width
|
316
318
|
@width ||= @options[:max_width] || View.width
|
317
319
|
end
|
@@ -48,7 +48,7 @@ class Hirb::Helpers::Table
|
|
48
48
|
|
49
49
|
# set all fields the same if relative doesn't work
|
50
50
|
unless new_lengths.values.all? {|e| e > MIN_FIELD_LENGTH} && (sum(new_lengths.values) <= @width)
|
51
|
-
new_lengths = @field_lengths.inject({}) {|t,(k,
|
51
|
+
new_lengths = @field_lengths.inject({}) {|t,(k,_v)| t[k] = @width / @field_size; t }
|
52
52
|
end
|
53
53
|
@field_lengths.each {|k,v| @field_lengths[k] = new_lengths[k] }
|
54
54
|
end
|
data/lib/hirb/menu.rb
CHANGED
@@ -89,7 +89,7 @@ module Hirb
|
|
89
89
|
def choose_from_menu
|
90
90
|
return unasked_choice if @output.size == 1 && !@options[:ask]
|
91
91
|
|
92
|
-
if (
|
92
|
+
if (Util.any_const_get(@options[:helper_class]))
|
93
93
|
View.render_output(@output, :class=>@options[:helper_class], :options=>@options.merge(:number=>true))
|
94
94
|
else
|
95
95
|
@output.each_with_index {|e,i| puts "#{i+1}: #{e}" }
|
data/lib/hirb/util.rb
CHANGED
@@ -13,7 +13,7 @@ module Hirb
|
|
13
13
|
}
|
14
14
|
klass
|
15
15
|
rescue
|
16
|
-
|
16
|
+
nil
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -53,7 +53,7 @@ module Hirb
|
|
53
53
|
|
54
54
|
# Determines if a shell command exists by searching for it in ENV['PATH'].
|
55
55
|
def command_exists?(command)
|
56
|
-
ENV['PATH'].split(File::PATH_SEPARATOR).any? {|d| File.
|
56
|
+
ENV['PATH'].split(File::PATH_SEPARATOR).any? {|d| File.exist? File.join(d, command) }
|
57
57
|
end
|
58
58
|
|
59
59
|
# Returns [width, height] of terminal when detected, nil if not detected.
|
data/lib/hirb/version.rb
CHANGED
data/lib/hirb/view.rb
CHANGED
@@ -22,7 +22,7 @@ module Hirb
|
|
22
22
|
# >> {:a=>1, :b=>{:c=>3}}
|
23
23
|
# ---
|
24
24
|
# :a : 1
|
25
|
-
# :b :
|
25
|
+
# :b :
|
26
26
|
# :c : 3
|
27
27
|
# => true
|
28
28
|
#
|
@@ -75,7 +75,7 @@ module Hirb
|
|
75
75
|
# Examples:
|
76
76
|
# Hirb.enable
|
77
77
|
# Hirb.enable :formatter=>false
|
78
|
-
def enable(options={}
|
78
|
+
def enable(options={})
|
79
79
|
Array(options.delete(:config_file)).each {|e|
|
80
80
|
@new_config_file = true
|
81
81
|
Hirb.config_files << e
|
@@ -115,9 +115,9 @@ module Hirb
|
|
115
115
|
config[:width], config[:height] = determine_terminal_size(width, height)
|
116
116
|
pager.resize(config[:width], config[:height])
|
117
117
|
end
|
118
|
-
|
118
|
+
|
119
119
|
# This is the main method of this class. When view is enabled, this method searches for a formatter it can use for the output and if
|
120
|
-
# successful renders it using render_method(). The options this method takes are helper config hashes as described in
|
120
|
+
# successful renders it using render_method(). The options this method takes are helper config hashes as described in
|
121
121
|
# Hirb::Formatter.format_output(). Returns true if successful and false if no formatting is done or if not enabled.
|
122
122
|
def view_output(output, options={})
|
123
123
|
enabled? && config[:formatter] && render_output(output, options)
|
@@ -127,7 +127,7 @@ module Hirb
|
|
127
127
|
false
|
128
128
|
else
|
129
129
|
index = (obj = e.backtrace.find {|f| f =~ /^\(eval\)/}) ? e.backtrace.index(obj) : e.backtrace.length
|
130
|
-
$stderr.puts "Hirb Error: #{e.message}", e.backtrace.slice(0,index).map {|
|
130
|
+
$stderr.puts "Hirb Error: #{e.message}", e.backtrace.slice(0,index).map {|_e| " " + _e }
|
131
131
|
true
|
132
132
|
end
|
133
133
|
end
|
@@ -140,6 +140,7 @@ module Hirb
|
|
140
140
|
# A lambda or proc which handles the final formatted object.
|
141
141
|
# Although this pages/puts the object by default, it could be set to do other things
|
142
142
|
# i.e. write the formatted object to a file.
|
143
|
+
undef :render_method
|
143
144
|
def render_method
|
144
145
|
@render_method ||= default_render_method
|
145
146
|
end
|
@@ -148,7 +149,7 @@ module Hirb
|
|
148
149
|
def reset_render_method
|
149
150
|
@render_method = default_render_method
|
150
151
|
end
|
151
|
-
|
152
|
+
|
152
153
|
# Current console width
|
153
154
|
def width
|
154
155
|
config && config[:width] ? config[:width] : DEFAULT_WIDTH
|
@@ -253,10 +254,11 @@ module Hirb
|
|
253
254
|
|
254
255
|
def config_loaded?; !!@config; end
|
255
256
|
|
257
|
+
undef :config
|
256
258
|
def config
|
257
259
|
@config
|
258
260
|
end
|
259
|
-
|
261
|
+
|
260
262
|
def default_render_method
|
261
263
|
lambda {|output| page_output(output) || puts(output) }
|
262
264
|
end
|
data/test/hirb_test.rb
CHANGED
@@ -6,17 +6,17 @@ describe "Hirb" do
|
|
6
6
|
|
7
7
|
it "config converts yaml when config file exists" do
|
8
8
|
yaml_data = {:blah=>'blah'}
|
9
|
-
File.stubs('
|
9
|
+
File.stubs('exist?').returns(true)
|
10
10
|
Hirb.config_files = ['ok']
|
11
|
-
YAML
|
11
|
+
YAML.expects(:load_file).returns(yaml_data)
|
12
12
|
Hirb.config.should == yaml_data
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
it "config defaults to hash when no config file" do
|
16
|
-
File.stubs('
|
16
|
+
File.stubs('exist?').returns(false)
|
17
17
|
Hirb.config.should == {}
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
it "config reloads if given explicit reload" do
|
21
21
|
Hirb.config
|
22
22
|
Hirb.expects(:read_config_file).returns({})
|
@@ -36,4 +36,4 @@ describe "Hirb" do
|
|
36
36
|
Hirb.config_files[0].class.should == String
|
37
37
|
ENV["HOME"] = home
|
38
38
|
end
|
39
|
-
end
|
39
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hirb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gabriel Horner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bacon
|
@@ -157,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
157
157
|
version: 1.3.5
|
158
158
|
requirements: []
|
159
159
|
rubyforge_project:
|
160
|
-
rubygems_version: 2.
|
160
|
+
rubygems_version: 2.4.5
|
161
161
|
signing_key:
|
162
162
|
specification_version: 4
|
163
163
|
summary: A mini view framework for console/irb that's easy to use, even while under
|