hirber 0.8.2 → 0.8.4

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
  SHA256:
3
- metadata.gz: f82bfadd2b8b049d1c15f89b451b52ca891af4bff93b81c218f970bf741e5253
4
- data.tar.gz: df5d9ac56a1026c4c54e4d50cec1a912459d9a646e1810444575727c04654d98
3
+ metadata.gz: 0bb901afec50ad8300985c7f84d2a2296c9b8a6478287cbbb4d37fcfa3189a6d
4
+ data.tar.gz: 1de8e4cb4045f3ceea7bdab47b577d6dd001fe5228ada5bb899893b56a03b5f5
5
5
  SHA512:
6
- metadata.gz: 71b44ebf48bf2a7198daba593cdca90582a3ba50f1d0f3b907000a798e7c7caa7d062c1fa09346d5d4c93451ff97ce7e4ef3a0774add562be7819a66bc4a6533
7
- data.tar.gz: 84f974edc8579002d547eb3c0025faa9285a9fe9c31d730da0294273b12dd5c4e53f0c72162a75489a9ab5da37b1cf8c9d0112f0a5ade8420f8c3e73edfdd500
6
+ metadata.gz: 3a6d83f529532ed0aed83ab8304a11abb729c667f706fc5b519e8cd0c5d83cc748ead769f9ca3e95fd0a7a6d08b659335e4de36c0f2ea1e4cb8105e5844edc6d
7
+ data.tar.gz: ed949ee1a4de44b2cf34f47104526516987e88fb5a0d05cde04496c9dcd39063d1a881e0953fe9f7fd9aea44289dc11eac11a90e3eac9c555e0bf9fe7f415b9e
data/.gemspec CHANGED
@@ -1,23 +1,54 @@
1
1
  # -*- encoding: utf-8 -*-
2
- require 'rubygems' unless Object.const_defined?(:Gem)
2
+ require "rubygems" unless Object.const_defined?(:Gem)
3
3
  require File.dirname(__FILE__) + "/lib/hirb/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "hirber"
7
7
  s.version = Hirb::VERSION
8
- s.authors = ["Gabriel Horner"]
9
- s.email = "gabriel.horner@gmail.com"
8
+
9
+ s.authors = ["Gabriel Horner", "Aleksander Długopolski"]
10
+ s.email = "ad@dotpro.org"
10
11
  s.homepage = "http://tagaholic.me/hirb/"
11
- s.summary = "A mini view framework for console/irb that's easy to use, even while under its influence."
12
- s.description = "Hirb provides a mini view framework for console applications and uses it to improve ripl(irb)'s default inspect output. Given an object or array of objects, hirb renders a view based on the object's class and/or ancestry. Hirb offers reusable views in the form of helper classes. The two main helpers, Hirb::Helpers::Table and Hirb::Helpers::Tree, provide several options for generating ascii tables and trees. Using Hirb::Helpers::AutoTable, hirb has useful default views for at least ten popular database gems i.e. Rails' ActiveRecord::Base. Other than views, hirb offers a smart pager and a console menu. The smart pager only pages when the output exceeds the current screen size. The menu is used in conjunction with tables to offer two dimensional menus."
12
+
13
+ s.summary = <<~TXT.gsub(/[[:space:]]+/, " ").strip
14
+ A mini view framework for console/irb that's easy to use, even while under
15
+ its influence.
16
+ TXT
17
+
18
+ s.description = <<~TXT.gsub(/[[:space:]]+/, " ").strip
19
+ Hirb provides a mini view framework for console applications and uses
20
+ it to improve ripl(irb)'s default inspect output. Given an object or
21
+ array of objects, hirb renders a view based on the object's class and/or
22
+ ancestry. Hirb offers reusable views in the form of helper classes. The
23
+ two main helpers, Hirb::Helpers::Table and Hirb::Helpers::Tree,
24
+ provide several options for generating ascii tables and trees. Using
25
+ Hirb::Helpers::AutoTable, hirb has useful default views for at least ten
26
+ popular database gems i.e. Rails' ActiveRecord::Base. Other than views,
27
+ hirb offers a smart pager and a console menu. The smart pager only pages
28
+ when the output exceeds the current screen size. The menu is used in
29
+ conjunction with tables to offer two dimensional menus.
30
+ TXT
31
+
13
32
  s.required_rubygems_version = ">= 1.3.5"
14
33
 
34
+ s.add_development_dependency "rake"
35
+ s.add_development_dependency "rspec", ">= 3.9"
15
36
  s.add_development_dependency "bacon", "~> 1.1"
16
37
  s.add_development_dependency "mocha", "~> 0.12.1"
17
38
  s.add_development_dependency "mocha-on-bacon", "~> 0.2.1"
18
39
  s.add_development_dependency "bacon-bits", "~> 0.1"
19
40
 
20
- s.files = Dir.glob(%w[{lib,test}/**/*.rb bin/* [A-Z]*.{txt,rdoc,md} ext/**/*.{rb,c}]) + %w{Rakefile .gemspec .travis.yml}
41
+ s.files =
42
+ Dir.glob %w[
43
+ {lib,test,spec}/**/*.rb
44
+ bin/*
45
+ [A-Z]*.{txt,rdoc,md}
46
+ ext/**/*.{rb,c}
47
+ Rakefile
48
+ .gemspec
49
+ .travis.yml
50
+ ]
51
+
21
52
  s.extra_rdoc_files = ["README.rdoc", "LICENSE.txt"]
22
- s.license = 'MIT'
53
+ s.license = "MIT"
23
54
  end
data/CHANGELOG.rdoc CHANGED
@@ -1,3 +1,12 @@
1
+ == 0.8.4
2
+ * Fix version number issues
3
+
4
+ == 0.8.3
5
+ * Add autoloading support for pry-rails
6
+
7
+ == 0.8.1
8
+ * Add compatiblity with Ruby 3.0.0
9
+
1
10
  == 0.7.3
2
11
  * Remove warnings
3
12
 
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ ![build passing](https://circleci.com/gh/hirber/hirber.svg?style=svg)
2
+
1
3
  ## Preface
2
4
 
3
5
  This gem is a direct fork of [Hirb](https://github.com/cldwalker/hirb) (0.7.3)
@@ -23,7 +25,7 @@ size. The menu is used in conjunction with tables to offer [two dimensional menu
23
25
 
24
26
  Install the gem with:
25
27
 
26
- gem install hirb
28
+ gem install hirber
27
29
 
28
30
  For people using full-width unicode characters, install
29
31
  [hirb-unicode](https://github.com/miaout17/hirb-unicode):
data/Rakefile CHANGED
@@ -1,15 +1,16 @@
1
- require 'rake'
2
- require 'fileutils'
1
+ require "rake"
2
+ require "fileutils"
3
3
 
4
4
  def gemspec
5
- @gemspec ||= eval(File.read('.gemspec'), binding, '.gemspec')
5
+ @gemspec ||= eval(File.read(".gemspec"), binding, ".gemspec")
6
6
  end
7
7
 
8
8
  desc "Build the gem"
9
- task :gem=>:gemspec do
9
+ task :gem => :gemspec do
10
10
  sh "gem build .gemspec"
11
- FileUtils.mkdir_p 'pkg'
12
- FileUtils.mv "#{gemspec.name}-#{gemspec.version}.gem", 'pkg'
11
+
12
+ FileUtils.mkdir_p "pkg"
13
+ FileUtils.mv "#{gemspec.name}-#{gemspec.version}.gem", "pkg"
13
14
  end
14
15
 
15
16
  desc "Install the gem locally"
@@ -27,9 +28,14 @@ task :gemspec do
27
28
  gemspec.validate
28
29
  end
29
30
 
30
- desc 'Run tests'
31
+ desc "Run spec"
32
+ task :spec do
33
+ sh "rspec"
34
+ end
35
+
36
+ desc "Run tests"
31
37
  task :test do |t|
32
- sh 'bacon -q -Ilib -I. test/*_test.rb'
38
+ sh "bacon -q -Ilib -I. test/*_test.rb"
33
39
  end
34
40
 
35
41
  task :default => :test
data/lib/hirb/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Hirb
2
- VERSION = "0.8.2"
2
+ VERSION = "0.8.4"
3
3
  end
data/lib/hirb/view.rb CHANGED
@@ -108,17 +108,25 @@ module Hirb
108
108
  config[:formatter] = !config[:formatter]
109
109
  end
110
110
 
111
- # Resizes the console width and height for use with the table and pager i.e. after having resized the console window. *nix users
112
- # should only have to call this method. Non-*nix users should call this method with explicit width and height. If you don't know
113
- # your width and height, in irb play with "a"* width to find width and puts "a\n" * height to find height.
111
+ # Resizes the console width and height for use with the table and pager
112
+ # i.e. after having resized the console window. *nix users should only
113
+ # have to call this method. Non-*nix users should call this method with
114
+ # explicit width and height. If you don't know your width and height, in
115
+ # irb play with "a"* width to find width and puts "a\n" * height to find
116
+ # height.
117
+
114
118
  def resize(width=nil, height=nil)
115
119
  config[:width], config[:height] = determine_terminal_size(width, height)
116
120
  pager.resize(config[:width], config[:height])
117
121
  end
118
122
 
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
121
- # Hirb::Formatter.format_output(). Returns true if successful and false if no formatting is done or if not enabled.
123
+ # This is the main method of this class. When view is enabled,
124
+ # this method searches for a formatter it can use for the output
125
+ # and if successful renders it using render_method(). The options
126
+ # this method takes are helper config hashes as described in
127
+ # Hirb::Formatter.format_output(). Returns true if successful and false
128
+ # if no formatting is done or if not enabled.
129
+
122
130
  def view_output(output, options={})
123
131
  enabled? && config[:formatter] && render_output(output, options)
124
132
  rescue Exception=>e
@@ -179,8 +187,18 @@ module Hirb
179
187
  if defined?(Ripl) && Ripl.respond_to?(:started?) && Ripl.started?
180
188
  @output_method = true
181
189
  require 'ripl/hirb' unless defined? Ripl::Hirb
182
- elsif defined? IRB::Irb
190
+
191
+ elsif defined? Pry
192
+ original_print = Pry.config.print
193
+
194
+ Pry.config.print = proc do |output, result, pry_instance|
195
+ Hirb::View.view_or_page_output(result) ||
196
+ original_print.call(output, result, pry_instance)
197
+ end
198
+
199
+ elsif defined?(IRB::Irb)
183
200
  @output_method = true
201
+
184
202
  ::IRB::Irb.class_eval do
185
203
  alias_method :non_hirb_view_output, :output_value
186
204
 
@@ -191,11 +209,14 @@ module Hirb
191
209
 
192
210
  # Do not pass the value if the default is given to keep backwards
193
211
  # compatiblity for Ruby =< 2.7.1
194
- def original_output_value(omit)
195
- if omit
196
- non_hirb_view_output(omit)
197
- else
198
- non_hirb_view_output
212
+
213
+ if !instance_methods(false).include?(:original_output_value)
214
+ def original_output_value(omit)
215
+ if omit
216
+ non_hirb_view_output(omit)
217
+ else
218
+ non_hirb_view_output
219
+ end
199
220
  end
200
221
  end
201
222
  end
@@ -203,8 +224,12 @@ module Hirb
203
224
  end
204
225
 
205
226
  def disable_output_method
206
- if defined?(IRB::Irb) && !defined? Ripl
207
- ::IRB::Irb.send :alias_method, :output_value, :non_hirb_view_output
227
+ if defined?(IRB::Irb) && !defined?(Ripl)
228
+ ::IRB::Irb.class_eval do
229
+ undef output_value
230
+
231
+ alias_method :output_value, :non_hirb_view_output
232
+ end
208
233
  end
209
234
  @output_method = nil
210
235
  end
@@ -0,0 +1,61 @@
1
+ module RSpec::Helpers
2
+ ENV["LINES"] = ENV["COLUMNS"] = "20"
3
+
4
+ def reset_config
5
+ Hirb::View.instance_eval do
6
+ @config = nil
7
+ end
8
+ end
9
+
10
+ def capture_stderr(&block)
11
+ original_stderr = $stderr
12
+ $stderr = fake = StringIO.new
13
+ begin
14
+ yield
15
+ ensure
16
+ $stderr = original_stderr
17
+ end
18
+ fake.string
19
+ end
20
+
21
+ def reset_terminal_size
22
+ ENV["LINES"] = ENV["COLUMNS"] = "20"
23
+ end
24
+ end
25
+
26
+ module ::IRB
27
+ class Irb
28
+ def initialize(context)
29
+ @context = context
30
+ end
31
+
32
+ def output_value; end
33
+ end
34
+ end
35
+
36
+ RSpec.configure do |config|
37
+ include RSpec::Helpers
38
+
39
+ config.expect_with :rspec do |expectations|
40
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
41
+ end
42
+
43
+ config.mock_with :rspec do |mocks|
44
+ mocks.verify_partial_doubles = true
45
+ end
46
+
47
+ config.shared_context_metadata_behavior = :apply_to_host_groups
48
+ config.filter_run_when_matching :focus
49
+ config.example_status_persistence_file_path = "spec/examples.txt"
50
+ config.disable_monkey_patching!
51
+ config.warnings = true
52
+
53
+ if config.files_to_run.one?
54
+ config.default_formatter = "doc"
55
+ end
56
+
57
+ config.profile_examples = 5
58
+ config.order = :random
59
+
60
+ Kernel.srand config.seed
61
+ end
data/spec/view_spec.rb ADDED
@@ -0,0 +1,276 @@
1
+ require "hirber"
2
+ require "spec_helper"
3
+
4
+ RSpec.describe "Hirb::View" do
5
+ it "page_output pages when view is enabled" do
6
+ reset_config
7
+
8
+ Hirb.enable
9
+
10
+ allow(Hirb::View.pager).to receive_messages(activated_by?: true)
11
+ expect(Hirb::View.pager).to receive(:page)
12
+ expect(Hirb::View.page_output("blah")).to be(true)
13
+
14
+ Hirb.disable
15
+ end
16
+
17
+ it "page_output doesn't page when view is disabled" do
18
+ Hirb.enable
19
+ Hirb.disable
20
+
21
+ allow(Hirb::View.pager).to receive_messages(activated_by?: true)
22
+
23
+ expect(Hirb::View.pager).not_to receive(:page)
24
+ expect(Hirb::View.page_output("blah")).to be(false)
25
+ end
26
+
27
+ it "view_output catches unexpected errors and prints them" do
28
+ reset_config
29
+
30
+ Hirb.enable
31
+
32
+ allow(::Hirb::View).to receive(:render_output).and_raise("error")
33
+
34
+ expect(capture_stderr { Hirb::View.view_output([1,2,3]) })
35
+ .to match(/Hirb Error: error/)
36
+
37
+ Hirb.disable
38
+ end
39
+
40
+ describe "enable" do
41
+ before { reset_config }
42
+
43
+ after { Hirb.disable }
44
+
45
+ it "redefines irb output_value" do
46
+ expect(Hirb::View).to receive(:render_output)
47
+
48
+ Hirb.enable
49
+
50
+ context_stub = double(last_value: "")
51
+
52
+ ::IRB::Irb.new(context_stub).output_value
53
+ end
54
+
55
+ it "is enabled?" do
56
+ reset_config
57
+
58
+ Hirb.enable
59
+
60
+ expect(Hirb::View).to be_enabled
61
+ end
62
+
63
+ def output_class_config(klass)
64
+ { :output=>{klass=>{:class=>:auto_table}} }
65
+ end
66
+
67
+ it "sets formatter config" do
68
+ class_hash = {"Something::Base"=>{:class=>"BlahBlah"}}
69
+
70
+ Hirb.enable :output => class_hash
71
+
72
+ expect(Hirb::View.formatter_config["Something::Base"])
73
+ .to eq class_hash["Something::Base"]
74
+ end
75
+
76
+ it "when called multiple times merges configs" do
77
+ Hirb.config = nil
78
+ # default config + config_file
79
+
80
+ allow(Hirb)
81
+ .to receive_messages(
82
+ read_config_file: output_class_config("Regexp"),
83
+ )
84
+
85
+ Hirb.enable output_class_config("String")
86
+
87
+ # add config file and explicit config
88
+ [{:config_file=>"ok"}, output_class_config("Struct")].each do |config|
89
+ expect(Hirb)
90
+ .to receive(:read_config_file)
91
+ .and_return(
92
+ output_class_config('ActiveRecord::Base'),
93
+ output_class_config('Array'),
94
+ )
95
+
96
+ Hirb.enable config
97
+ end
98
+
99
+ expect(Hirb.config_files.include?("ok")).to eq(true)
100
+
101
+ output_keys = %w{ActiveRecord::Base Array Regexp String Struct}
102
+
103
+ expect(Hirb::View.config[:output].keys.sort).to eq output_keys
104
+ end
105
+
106
+ xit "when called multiple times without config doesn't affect config" do
107
+ # FIXME: 2021-02-14 - This flapping, spec is order dependant
108
+
109
+ Hirb.enable
110
+
111
+ old_config = Hirb::View.config
112
+
113
+ expect(Hirb).not_to receive(:read_config_file)
114
+ expect(Hirb::View).not_to receive(:load_config)
115
+
116
+ # Hirb.expects(:read_config_file).never
117
+ # Hirb::View.expects(:load_config).never
118
+
119
+ Hirb.enable
120
+
121
+ expect(Hirb::View.config).to eq old_config
122
+ end
123
+
124
+ xit "works without irb" do
125
+ # FIXME: 2021-02-14 - This flapping, spec is order dependant
126
+
127
+ allow(Object)
128
+ .to receive(:const_defined?)
129
+ .with(:IRB)
130
+ .and_return(false)
131
+
132
+ Hirb.enable
133
+
134
+ expect(Hirb::View.formatter.config.size).to be > 1
135
+ end
136
+
137
+ it "with config_file option adds to config_file" do
138
+ Hirb.enable :config_file => "test_file"
139
+
140
+ expect(Hirb.config_files.include?("test_file")).to be(true)
141
+ end
142
+
143
+ it "with ignore_errors enable option" do
144
+ Hirb.enable :ignore_errors => true
145
+
146
+ expect(Hirb::View)
147
+ .to receive(:render_output)
148
+ .and_raise(Exception, "Ex mesg")
149
+ .twice
150
+
151
+ expect(Hirb::View.view_output("")).to eq(false)
152
+
153
+ expect(capture_stderr { Hirb::View.view_output("") })
154
+ .to match(/Error: Ex mesg/)
155
+ end
156
+ end
157
+
158
+ describe "resize" do
159
+ def pager; Hirb::View.pager; end
160
+
161
+ before do
162
+ Hirb::View.pager = nil
163
+ reset_config
164
+ Hirb.enable
165
+ end
166
+
167
+ after { Hirb.disable }
168
+
169
+ it "changes width and height with stty" do
170
+ if RUBY_PLATFORM[/java/]
171
+ allow(Hirb::Util)
172
+ .to receive(:command_exists?)
173
+ .with("tput")
174
+ .and_returns(false)
175
+ end
176
+
177
+ allow(STDIN)
178
+ .to receive(:tty?)
179
+ .and_return(true)
180
+
181
+ allow(Hirb::Util)
182
+ .to receive(:command_exists?)
183
+ .with("stty")
184
+ .and_return(true)
185
+
186
+ ENV["COLUMNS"] = ENV["LINES"] = nil # bypasses env usage
187
+
188
+ capture_stderr { Hirb::View.resize }
189
+
190
+ expect(pager.width).not_to eq 10
191
+ expect(pager.height).not_to eq 10
192
+
193
+ reset_terminal_size
194
+ end
195
+
196
+ it "changes width and height with ENV" do
197
+ ENV["COLUMNS"] = ENV["LINES"] = "10" # simulates resizing
198
+
199
+ Hirb::View.resize
200
+
201
+ expect(pager.width).to eq 10
202
+ expect(pager.height).to eq 10
203
+ end
204
+
205
+ it "with no environment or stty still has valid width and height" do
206
+ Hirb::View.config[:width] = Hirb::View.config[:height] = nil
207
+
208
+ unless RUBY_PLATFORM[/java/]
209
+ allow(Hirb::Util)
210
+ .to receive(:command_exists?)
211
+ .with("stty")
212
+ .and_return(false)
213
+ end
214
+
215
+ ENV["COLUMNS"] = ENV["LINES"] = nil
216
+
217
+ Hirb::View.resize
218
+
219
+ expect(pager.width.is_a?(Integer)).to eq(true)
220
+ expect(pager.height.is_a?(Integer)).to eq(true)
221
+
222
+ reset_terminal_size
223
+ end
224
+ end
225
+
226
+ it "disable points output_value back to original output_value" do
227
+ expect(Hirb::View).not_to receive(:render_output)
228
+
229
+ Hirb.enable
230
+ Hirb.disable
231
+
232
+ context_stub = double(:last_value=>"")
233
+
234
+ ::IRB::Irb.new(context_stub).output_value
235
+ end
236
+
237
+ it "disable works without irb defined" do
238
+ # Object.stubs(:const_defined?).with(:IRB).returns(false)
239
+ allow(Object).to receive(:const_defined?).with(:IRB).and_return(false)
240
+
241
+ Hirb.enable
242
+ Hirb.disable
243
+
244
+ expect(Hirb::View.enabled?).to eq(false)
245
+ end
246
+
247
+ it "capture_and_render" do
248
+ string = "no waaaay"
249
+
250
+ # Hirb::View.render_method.expects(:call).with(string)
251
+ allow(Hirb::View.render_method).to receive(:call).with(string)
252
+ Hirb::View.capture_and_render { print string }
253
+ end
254
+
255
+ xit "state is toggled by toggle_pager" do
256
+ # FIXME: 2021-02-14 - This causes other specs to fail
257
+
258
+ previous_state = Hirb::View.config[:pager]
259
+
260
+ Hirb::View.toggle_pager
261
+
262
+ expect(Hirb::View.config[:pager]).not_to eq(previous_state)
263
+ end
264
+
265
+ xit "state is toggled by toggle_formatter" do
266
+ # FIXME: 2021-02-14 - This causes other specs to fail
267
+
268
+ Hirb.enable
269
+
270
+ previous_state = Hirb::View.config[:formatter]
271
+
272
+ Hirb::View.toggle_formatter
273
+
274
+ expect(Hirb::View.config[:formatter]).not_to eq(previous_state)
275
+ end
276
+ end
@@ -0,0 +1,54 @@
1
+ require "spec_helper"
2
+ require "hirber"
3
+
4
+ RSpec.describe "activerecord table" do
5
+ before do
6
+ Hirb.enable
7
+ end
8
+
9
+ after do
10
+ Hirb.disable
11
+ end
12
+
13
+ context "with no select" do
14
+ let(:pet) do
15
+ double(
16
+ name: "rufus",
17
+ age: 7,
18
+ attributes: { "name" => "rufus", "age" => 7 },
19
+ class: double(column_names: %w{age name}),
20
+ )
21
+ end
22
+
23
+ it "gets default options" do
24
+ expect(Hirb::Helpers::AutoTable.active_record__base_view(pet))
25
+ .to eq(fields: [:age, :name])
26
+ end
27
+ end
28
+
29
+ context "with select" do
30
+ let(:pet) do
31
+ double(
32
+ name: "rufus",
33
+ age: 7,
34
+ attributes: { "name" => "rufus" },
35
+ class: double(column_names: %w{age name}),
36
+ )
37
+ end
38
+
39
+ it "gets default options" do
40
+ expect(Hirb::Helpers::AutoTable.active_record__base_view(pet))
41
+ .to eq(fields: [:name])
42
+ end
43
+ end
44
+ end
45
+
46
+ RSpec.describe "mongoid table" do
47
+ let(:mongoid_stub) { double(class: double(fields: fields)) }
48
+ let(:fields) { {"_id" => "x0f0x", "name" => "blah"} }
49
+
50
+ it "only has one _id" do
51
+ expect(Hirb::Helpers::AutoTable.mongoid__document_view(mongoid_stub))
52
+ .to eq(fields: fields.keys.sort)
53
+ end
54
+ end
data/test/test_helper.rb CHANGED
@@ -1,12 +1,16 @@
1
- require 'bacon'
2
- require 'bacon/bits'
3
- require 'mocha-on-bacon'
4
- require 'hirb'
1
+ require "bacon"
2
+ require "bacon/bits"
3
+ require "mocha-on-bacon"
4
+ require "hirber"
5
+
5
6
  include Hirb
6
7
 
7
8
  module TestHelpers
8
- # set these to avoid invoking stty multiple times which doubles test suite running time
9
+ # set these to avoid invoking stty multiple times which doubles
10
+ # test suite running time
11
+
9
12
  ENV["LINES"] = ENV["COLUMNS"] = "20"
13
+
10
14
  def reset_terminal_size
11
15
  ENV["LINES"] = ENV["COLUMNS"] = "20"
12
16
  end
metadata CHANGED
@@ -1,15 +1,44 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hirber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gabriel Horner
8
+ - Aleksander Długopolski
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2021-02-06 00:00:00.000000000 Z
12
+ date: 2021-02-14 00:00:00.000000000 Z
12
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rspec
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '3.9'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '3.9'
13
42
  - !ruby/object:Gem::Dependency
14
43
  name: bacon
15
44
  requirement: !ruby/object:Gem::Requirement
@@ -76,7 +105,7 @@ description: Hirb provides a mini view framework for console applications and us
76
105
  offers a smart pager and a console menu. The smart pager only pages when the output
77
106
  exceeds the current screen size. The menu is used in conjunction with tables to
78
107
  offer two dimensional menus.
79
- email: gabriel.horner@gmail.com
108
+ email: ad@dotpro.org
80
109
  executables: []
81
110
  extensions: []
82
111
  extra_rdoc_files:
@@ -122,6 +151,9 @@ files:
122
151
  - lib/hirb/views/rails.rb
123
152
  - lib/hirber.rb
124
153
  - lib/ripl/hirb.rb
154
+ - spec/spec_helper.rb
155
+ - spec/view_spec.rb
156
+ - spec/views_spec.rb
125
157
  - test/auto_table_test.rb
126
158
  - test/console_test.rb
127
159
  - test/dynamic_view_test.rb