bri 0.5.0 → 1.0.0.pre.beta1

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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog +0 -2
  3. data/TODO +2 -3
  4. data/bin/bri +21 -8
  5. data/lib/bri/mall.rb +12 -17
  6. data/lib/bri/match/base.rb +2 -7
  7. data/lib/bri/match/class.rb +6 -3
  8. data/lib/bri/match/method.rb +3 -3
  9. data/lib/bri/renderer/blank_line.rb +9 -0
  10. data/lib/bri/renderer/default.rb +27 -0
  11. data/lib/bri/renderer/document.rb +11 -0
  12. data/lib/bri/renderer/heading.rb +9 -0
  13. data/lib/bri/renderer/list/base.rb +18 -0
  14. data/lib/bri/renderer/list/bullet.rb +15 -0
  15. data/lib/bri/renderer/list/labeled.rb +15 -0
  16. data/lib/bri/renderer/list/lower_lettered.rb +18 -0
  17. data/lib/bri/renderer/list/note.rb +15 -0
  18. data/lib/bri/renderer/list/numbered.rb +18 -0
  19. data/lib/bri/renderer/list/upper_lettered.rb +18 -0
  20. data/lib/bri/renderer/list.rb +24 -0
  21. data/lib/bri/renderer/list_item.rb +24 -0
  22. data/lib/bri/renderer/paragraph.rb +11 -0
  23. data/lib/bri/renderer/result.rb +73 -0
  24. data/lib/bri/renderer/rule.rb +9 -0
  25. data/lib/bri/renderer/verbatim.rb +14 -0
  26. data/lib/bri/renderer.rb +28 -188
  27. data/lib/bri/search/class.rb +3 -1
  28. data/lib/bri/search/method.rb +3 -3
  29. data/lib/bri/templates.rb +7 -38
  30. data/lib/bri/text_formatting_utils.rb +92 -0
  31. data/lib/bri.rb +18 -15
  32. metadata +27 -17
  33. data/spec/bri_dummy_spec_class.rb +0 -132
  34. data/spec/lib/bri/mall_spec.rb +0 -38
  35. data/spec/lib/bri/match/class_spec.rb +0 -125
  36. data/spec/lib/bri/match/method_spec.rb +0 -116
  37. data/spec/lib/bri/matcher_spec.rb +0 -70
  38. data/spec/lib/bri/renderer_spec.rb +0 -338
  39. data/spec/lib/bri/search/class_method_spec.rb +0 -173
  40. data/spec/lib/bri/search/class_spec.rb +0 -66
  41. data/spec/lib/bri/search/instance_method_spec.rb +0 -174
  42. data/spec/lib/bri/search/method_spec.rb +0 -41
  43. data/spec/spec_helper.rb +0 -22
data/lib/bri/renderer.rb CHANGED
@@ -1,195 +1,35 @@
1
1
  require 'strscan'
2
+ require 'rdoc'
3
+ require 'rdoc/markup'
4
+
5
+ require_relative 'renderer/default'
6
+ require_relative 'renderer/blank_line'
7
+ require_relative 'renderer/document'
8
+ require_relative 'renderer/heading'
9
+ require_relative 'renderer/list_item'
10
+ require_relative 'renderer/list'
11
+ require_relative 'renderer/paragraph'
12
+ require_relative 'renderer/rule'
13
+ require_relative 'renderer/verbatim'
14
+ require_relative 'renderer/result'
2
15
 
3
16
  module Bri
4
17
  module Renderer
5
- Color = ::Term::ANSIColor
6
-
7
- INDENT = ' ' * 2
8
- INDENT_WIDTH = 2
9
- LOWER_ALPHABET = ('a'..'z').to_a.map { |char| "#{char}." }.freeze
10
- UPPER_ALPHABET = ('A'..'Z').to_a.map { |char| "#{char}." }.freeze
11
-
12
- def self.render( element, width = Bri.width, alignment_width = 0 )
13
- case element
14
- when RDoc::Markup::Verbatim
15
- text = extract_text( element, width )
16
- styled_text = replace_markup( text )
17
- "#{indent( styled_text )}\n"
18
-
19
- when RDoc::Markup::List
20
- item_width = width - INDENT_WIDTH
21
- case element.type
22
- when :BULLET
23
- rendered_items = element.items.map { |item| render( item, item_width ) }
24
- rendered_items.map! { |item| item.gsub( /\n/, "\n#{INDENT}" ) }
25
- rendered_items.map! { |item| item.prepend( ' *' ) }
26
-
27
- when :NUMBER
28
- rendered_items = element.items.map { |item| render( item, item_width ) }
29
- rendered_items.map! { |item| item.gsub( /\n/, "\n#{INDENT}" ) }
30
- rendered_items.map!.with_index( 1 ) { |item, i| item.prepend( "#{i}." ) }
31
-
32
- when :LALPHA
33
- rendered_items = element.items.map { |item| render( item, item_width ) }
34
- rendered_items.map! { |item| item.gsub( /\n/, "\n#{INDENT}" ) }
35
- rendered_items.map!.with_index { |item, i| item.prepend( LOWER_ALPHABET[i] ) }
36
-
37
- when :UALPHA
38
- rendered_items = element.items.map { |item| render( item, item_width ) }
39
- rendered_items.map! { |item| item.gsub( /\n/, "\n#{INDENT}" ) }
40
- rendered_items.map!.with_index { |item, index| item.prepend( UPPER_ALPHABET[i] ) }
41
-
42
- when :LABEL
43
- # do nothing
44
- rendered_items = element.items.map { |item| render( item, item_width ) }
45
- rendered_items.map! { |item| item.gsub( /\n/, "\n#{INDENT}" ) }
46
-
47
- when :NOTE
48
- alignment_width = element.items.flat_map(&:label).map(&:size).max + 1
49
- rendered_items = element.items.map { |item| render( item, item_width, alignment_width ) }
50
- rendered_items.map! { |item| item.gsub( /\n/, "\n#{INDENT}" ) }
51
- end
52
-
53
- "#{rendered_items.join( "\n" )}\n"
54
-
55
- else
56
- text = extract_text( element, width, alignment_width )
57
-
58
- if text == "\n"
59
- nil
60
- else
61
- styled_text = replace_markup( text )
62
- wrapped_text = wrap_to_width( styled_text, width )
63
- indent( wrapped_text )
64
- end
65
- end
66
- end
67
-
68
- def self.extract_text( element, width, label_alignment_width = 0, conserve_newlines = false )
69
- case element
70
- when RDoc::Markup::Paragraph
71
- join_char = conserve_newlines ? "\n" : " "
72
- element.parts.map(&:strip).join( join_char ) + "\n"
73
-
74
- when RDoc::Markup::BlankLine
75
- "\n"
76
-
77
- when RDoc::Markup::Rule
78
- "-" * width + "\n"
79
-
80
- when RDoc::Markup::Verbatim
81
- element.parts.map { |part| part.prepend( " " ) }.join + "\n"
82
-
83
- when RDoc::Markup::Heading
84
- "<h>#{element.text}</h>\n"
85
-
86
- when RDoc::Markup::ListItem
87
- parts = element.parts.map { |part| extract_text( part, width, 0, true ) }.join
88
-
89
- if element.label
90
- labels = element.label.map { |l| "#{l}:" }.join("\n")
91
- sprintf( "%*s %s", -label_alignment_width, labels, parts )
92
- else
93
- parts
94
- end
95
-
96
- when RDoc::Markup::List
97
- render( element, width - INDENT_WIDTH ) + "\n"
98
-
99
- when RDoc::Markup::Document
100
- element.parts.
101
- map { |part| extract_text( part, width, label_alignment_width, conserve_newlines ) }.
102
- join + "\n"
103
- else
104
- raise "Don't know how to handle type #{element.class}: #{element.inspect}"
105
- end
106
- end
107
-
108
- def self.replace_markup( text )
109
- text.gsub!( /(?<!\\)<(?:tt|code)>/, Color.cyan )
110
- text.gsub!( /(?<!\\)<\/(?:tt|code)>/, Color.reset )
111
-
112
- text.gsub!( /(?<!\\)<b>/, Color.bold )
113
- text.gsub!( /(?<!\\)<\/b>/, Color.reset )
114
-
115
- text.gsub!( /(?<!\\)<(?:em|i)>/, Color.yellow )
116
- text.gsub!( /(?<!\\)<\/(?:em|i)>/, Color.reset )
117
-
118
- text.gsub!( "<h>", Color.green )
119
- text.gsub!( "</h>", Color.reset )
120
-
121
- text.gsub!( "\\<", "<" )
122
-
123
- text.gsub!( /(#\s*=>)(.*)/,
124
- "#{Color.dark}\\1#{Color.reset}#{Color.bold}\\2#{Color.reset}" )
125
-
126
- text.gsub!( /(^|\s)\*(.*?[a-zA-Z0-9]+.*?)\*/,
127
- "\\1#{Color.bold}\\2#{Color.reset}" )
128
- text.gsub!( /(^|\s)\+(.*?[a-zA-Z0-9]+.*?)\+/,
129
- "\\1#{Color.cyan}\\2#{Color.reset}" )
130
- text.gsub!( /(^|\s)_(.*?[a-zA-Z0-9]+.*?)_/,
131
- "\\1#{Color.yellow}\\2#{Color.reset}" )
132
-
133
- text.gsub!( %r{\b((?:https?|ftp)://[-\w.?%&=/]+)\b},
134
- "#{Color.underline}\\1#{Color.reset}" )
135
-
136
- text.gsub!( %r{\b(mailto:[-\w.%]+@[-\w.]+)\b},
137
- "#{Color.underline}\\1#{Color.reset}" )
138
-
139
- text.gsub!( %r{\b((?<!:\/\/)www.[-\w.?%&=]+)\b},
140
- "#{Color.underline}\\1#{Color.reset}" )
141
-
142
- text.gsub!( %r{\blink:(.*?)(\s|$)},
143
- "#{Color.underline}\\1#{Color.reset}\\2" )
144
-
145
- text.gsub!( %r{\{(.*?)\}\[(.*?)\]}, "\\1 (\\2)" )
146
- text.gsub!( %r{\[(#{Regexp.escape( Color.underline )}.*?#{Regexp.escape( Color.reset )})\]},
147
- " (\\1)" )
148
- text
149
- end
150
-
151
- def self.printable_length( text )
152
- Term::ANSIColor.uncolored( text ).length
153
- end
154
-
155
- def self.wrap_list( array, width = Bri.width )
156
- indent( wrap_to_width( array.join(" "), width ) )
157
- end
158
-
159
- def self.wrap_to_width( styled_text, width )
160
- styled_text.split( "\n" ).map { |row| wrap_row( row, width ) }.join
161
- end
162
-
163
- def self.wrap_row( physical_row, width )
164
- output_text = ''
165
- logical_row = ''
166
- printable_row_length = 0
167
-
168
- scanner = StringScanner.new( physical_row )
169
-
170
- while( !scanner.eos? )
171
- token = scanner.scan( /\S+/ ).to_s
172
- printable_token_length = printable_length( token )
173
-
174
- if printable_token_length + printable_row_length > width
175
- output_text << logical_row << "\n"
176
- logical_row = ''
177
- printable_row_length = 0
178
- end
179
-
180
- logical_row << token
181
- printable_row_length += printable_token_length
182
-
183
- token = scanner.scan( /\s*/ ).to_s
184
- logical_row << token
185
- printable_row_length += token.length
186
- end
187
-
188
- output_text << logical_row << "\n"
189
- end
190
-
191
- def self.indent( text )
192
- text.split( "\n" ).map { |row| "#{INDENT}#{row}" }.join("\n" )
18
+ RDOC_TO_BRI_RENDERER_CLASS_MAP = {
19
+ ::RDoc::Markup::Document => ::Bri::Renderer::Document,
20
+ ::RDoc::Markup::Paragraph => ::Bri::Renderer::Paragraph,
21
+ ::RDoc::Markup::BlankLine => ::Bri::Renderer::BlankLine,
22
+ ::RDoc::Markup::Rule => ::Bri::Renderer::Rule,
23
+ ::RDoc::Markup::Verbatim => ::Bri::Renderer::Verbatim,
24
+ ::RDoc::Markup::Heading => ::Bri::Renderer::Heading,
25
+ ::RDoc::Markup::ListItem => ::Bri::Renderer::ListItem,
26
+ ::RDoc::Markup::List => ::Bri::Renderer::List,
27
+ }
28
+ RDOC_TO_BRI_RENDERER_CLASS_MAP.default = ::Bri::Renderer::Default
29
+
30
+ def self.new( element )
31
+ renderer_class = RDOC_TO_BRI_RENDERER_CLASS_MAP[element.class]
32
+ renderer_class.new( element )
193
33
  end
194
34
  end
195
35
  end
@@ -3,7 +3,9 @@ module Bri
3
3
  class Class < Base
4
4
  def search( type = :fully_qualified )
5
5
  # NOTE: classes are only searched as fully qualified for the time being
6
- Bri::Mall.instance.stores.select { |s| s.module_names.include?( @term ) }.each do |store|
6
+ Bri::Mall.stores.
7
+ select { |s| s.module_names.include?( @term ) }.
8
+ each do |store|
7
9
  @matches << Bri::Match::Class.new( store.load_class( @term ), store )
8
10
  end
9
11
  end
@@ -31,7 +31,7 @@ module Bri
31
31
  end
32
32
 
33
33
  def store_for_method
34
- Bri::Mall.instance.stores.detect do |store|
34
+ Bri::Mall.stores.detect do |store|
35
35
  store_methods( store ).has_key?( @class_term ) &&
36
36
  store_methods( store )[@class_term].include?( @method_term )
37
37
  end
@@ -54,7 +54,7 @@ module Bri
54
54
 
55
55
 
56
56
  def partially_qualified_search
57
- Bri::Mall.instance.stores.each do |store|
57
+ Bri::Mall.stores.each do |store|
58
58
  classes_with_method( store, @method_term ).each do |klass|
59
59
  match_data = method_rdoc( store, klass, @method_term )
60
60
  next unless match_data
@@ -74,7 +74,7 @@ module Bri
74
74
  end
75
75
 
76
76
  def unqualified_search_worker( method_re )
77
- Bri::Mall.instance.stores.each do |store|
77
+ Bri::Mall.stores.each do |store|
78
78
  candidates_from_method_re( store, method_re ).each do |klass, methods|
79
79
  methods.each do |method|
80
80
  match_data = method_rdoc( store, klass, method )
data/lib/bri/templates.rb CHANGED
@@ -1,9 +1,7 @@
1
1
  module Bri
2
2
  module Templates
3
- RULE_CHARACTER = '-'.freeze
4
-
5
3
  MULTIPLE_CHOICES =<<-EOT
6
- <%= Bri::Templates::Helpers.hrule( "Multiple choices:" ) %>
4
+ <%= hrule( "Multiple choices:" ) %>
7
5
 
8
6
  <%= qualified_methods.sort.join("\n") %>
9
7
 
@@ -24,38 +22,32 @@ module Bri
24
22
 
25
23
  <% if !includes.empty? %>
26
24
  <%= section_header( "Includes:" ) %>
27
- <%= Bri::Renderer.wrap_list( includes.sort ) %>
28
-
25
+ <%= wrap_list( includes.sort ) %>
29
26
 
30
27
  <% end %>
31
28
  <% if !extends.empty? %>
32
29
  <%= section_header( "Extends:" ) %>
33
- <%= Bri::Renderer.wrap_list( extends.sort ) %>
34
-
30
+ <%= wrap_list( extends.sort ) %>
35
31
 
36
32
  <% end %>
37
33
  <% if !constants.empty? %>
38
34
  <%= section_header( "Constants:" ) %>
39
- <%= Bri::Renderer.wrap_list( constants.sort ) %>
40
-
35
+ <%= wrap_list( constants.sort ) %>
41
36
 
42
37
  <% end %>
43
38
  <% if !class_methods.empty? %>
44
39
  <%= section_header( "Class methods:" ) %>
45
- <%= Bri::Renderer.wrap_list( class_methods.sort ) %>
46
-
40
+ <%= wrap_list( class_methods.sort ) %>
47
41
 
48
42
  <% end %>
49
43
  <% if !instance_methods.empty? %>
50
44
  <%= section_header( "Instance methods:" ) %>
51
- <%= Bri::Renderer.wrap_list( instance_methods.sort ) %>
52
-
45
+ <%= wrap_list( instance_methods.sort ) %>
53
46
 
54
47
  <% end %>
55
48
  <% if !attributes.empty? %>
56
49
  <%= section_header( "Attributes:" ) %>
57
- <%= Bri::Renderer.wrap_list( attributes.sort ) %>
58
-
50
+ <%= wrap_list( attributes.sort ) %>
59
51
 
60
52
  <% end %>
61
53
  EOT
@@ -73,28 +65,5 @@ module Bri
73
65
  <% end %>
74
66
 
75
67
  EOT
76
-
77
- module Helpers
78
- def hrule( text = '', width = Bri.width )
79
- text.prepend( " " ) unless text.empty?
80
-
81
- rule_length = width - text.length
82
- rule_length = 1 if rule_length < 1
83
-
84
- rule = RULE_CHARACTER * rule_length
85
- "#{rule}#{Term::ANSIColor::bold( text )}\n"
86
- end
87
- module_function :hrule
88
-
89
- def print_origin( origin_text, width = Bri.width )
90
- return unless origin_text
91
- "(#{origin_text})".rjust( width )
92
- end
93
-
94
- def section_header( text )
95
- "#{Term::ANSIColor.green}#{Term::ANSIColor.underline}#{text}#{Term::ANSIColor.reset}\n"
96
- end
97
- module_function :section_header
98
- end
99
68
  end
100
69
  end
@@ -0,0 +1,92 @@
1
+ module Bri
2
+ module TextFormattingUtils
3
+ RULE_CHARACTER = '-'.freeze
4
+
5
+ def wrap_to_width( styled_text, width )
6
+ styled_text.split( "\n" ).map { |row| wrap_row( row, width ) }.join
7
+ end
8
+ module_function :wrap_to_width
9
+
10
+ def wrap_row( physical_row, width )
11
+ output_text = ''
12
+ logical_row = ''
13
+ printable_row_length = 0
14
+ tokens_in_row = 0
15
+
16
+ scanner = StringScanner.new( physical_row )
17
+
18
+ while( !scanner.eos? )
19
+ token = scanner.scan( /\S+/ ).to_s
20
+ printable_token_length = printable_length( token )
21
+
22
+ if printable_token_length + printable_row_length > width && tokens_in_row > 0
23
+ output_text << logical_row.rstrip << "\n"
24
+ logical_row.clear
25
+ printable_row_length = 0
26
+ tokens_in_row = 0
27
+ end
28
+
29
+ logical_row << token
30
+ printable_row_length += printable_token_length
31
+ tokens_in_row += 1
32
+
33
+ # TODO: Instead of using rstrip when appending the logical row,
34
+ # identify here if the whitespace token will be the last
35
+ # on the row, and if so, don't add it in the first place.
36
+ # (sr 2019-06-23)
37
+ token = scanner.scan( /\s+/ ).to_s
38
+ logical_row << token
39
+ printable_row_length += token.length
40
+ end
41
+
42
+ output_text << logical_row.rstrip << "\n"
43
+ end
44
+ module_function :wrap_row
45
+
46
+ def indent( text, indent_depth: 2, each_row: true )
47
+ indent = " " * indent_depth
48
+
49
+ if each_row
50
+ text.lines.map { |row| row.prepend( indent ) }.join
51
+ else
52
+ text.prepend( indent )
53
+ end
54
+ end
55
+ module_function :indent
56
+
57
+ def printable_length( text )
58
+ Term::ANSIColor.uncolored( text ).length
59
+ end
60
+ module_function :printable_length
61
+
62
+ def wrap_list( array, width = Bri.width )
63
+ return '' if array.empty?
64
+
65
+ indent( wrap_to_width( array.join( " " ), width - 2 ) )
66
+ end
67
+ module_function :wrap_list
68
+
69
+ def hrule( text = '', width = Bri.width )
70
+ return "#{RULE_CHARACTER * width}\n" if text.empty?
71
+
72
+ rule_length = width - text.length - 1
73
+ rule_length = 1 if rule_length < 1
74
+
75
+ rule = RULE_CHARACTER * rule_length
76
+ "#{rule} #{Term::ANSIColor::bold( text )}\n"
77
+ end
78
+ module_function :hrule
79
+
80
+ def print_origin( origin_text, width = Bri.width )
81
+ return '' if !origin_text || origin_text.empty?
82
+
83
+ "(#{origin_text})".rjust( width )
84
+ end
85
+ module_function :print_origin
86
+
87
+ def section_header( text )
88
+ "#{Term::ANSIColor.green}#{Term::ANSIColor.underline}#{text}#{Term::ANSIColor.reset}\n"
89
+ end
90
+ module_function :section_header
91
+ end
92
+ end
data/lib/bri.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'erb'
2
2
  require 'term/ansicolor'
3
3
 
4
+ require_relative 'bri/text_formatting_utils'
4
5
  require_relative 'bri/renderer'
5
6
  require_relative 'bri/mall'
6
7
  require_relative 'bri/matcher'
@@ -11,22 +12,24 @@ require_relative 'bri/match'
11
12
  module Bri
12
13
  DEFAULT_WIDTH = 72
13
14
 
14
- def self.ri( query, show_all: false )
15
+ def self.ri( query, options )
16
+ if options[:show_all]
17
+ Bri::Mall.ri_paths( system: true, site: true, home: true, gems: true )
18
+ else
19
+ Bri::Mall.ri_paths( system: true, site: true, home: true, gems: false )
20
+ end
21
+
15
22
  results = Bri::Matcher.new( query ).find
16
23
 
17
24
  if results.size == 0
18
25
  "No matching results found"
26
+
19
27
  elsif results.size == 1
20
28
  results.first.to_s
29
+
21
30
  elsif results.all? { |r| r.is_a?(Bri::Match::Class) }
22
- if show_all
23
- results.map(&:to_s)
24
- else
25
- gem_docs, core_docs = results.partition { |r| r.origin =~ %r{gem\b} }
26
-
27
- docs_to_output = core_docs.empty? ? gem_docs : core_docs
28
- docs_to_output.map(&:to_s)
29
- end
31
+ results.map(&:to_s)
32
+
30
33
  else
31
34
  qualified_methods = results.map(&:full_name).sort
32
35
  ERB.new( Bri::Templates::MULTIPLE_CHOICES, nil, '<>' ).result( binding )
@@ -47,18 +50,18 @@ module Bri
47
50
  end
48
51
 
49
52
  def self.list_classes
50
- Bri::Mall.instance.classes.join("\n" )
53
+ Bri::Mall.classes.join("\n" )
51
54
  end
52
55
 
53
56
  def self.list_methods
54
- ( Bri::Mall.instance.instance_methods +
55
- Bri::Mall.instance.class_methods ).sort.join( "\n" )
57
+ ( Bri::Mall.instance_methods +
58
+ Bri::Mall.class_methods ).sort.join( "\n" )
56
59
  end
57
60
 
58
61
  def self.list_names
59
- ( Bri::Mall.instance.classes +
60
- Bri::Mall.instance.instance_methods +
61
- Bri::Mall.instance.class_methods ).sort.join( "\n" )
62
+ ( Bri::Mall.classes +
63
+ Bri::Mall.instance_methods +
64
+ Bri::Mall.class_methods ).sort.join( "\n" )
62
65
  end
63
66
 
64
67
  end
metadata CHANGED
@@ -1,10 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bri
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 1.0.0.pre.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sven Riedel
8
+ autorequire:
8
9
  bindir: bin
9
10
  cert_chain: []
10
11
  date: 2011-05-20 00:00:00.000000000 Z
@@ -29,28 +30,28 @@ dependencies:
29
30
  requirements:
30
31
  - - "~>"
31
32
  - !ruby/object:Gem::Version
32
- version: 6.13.0
33
+ version: 6.1.1
33
34
  type: :runtime
34
35
  prerelease: false
35
36
  version_requirements: !ruby/object:Gem::Requirement
36
37
  requirements:
37
38
  - - "~>"
38
39
  - !ruby/object:Gem::Version
39
- version: 6.13.0
40
+ version: 6.1.1
40
41
  - !ruby/object:Gem::Dependency
41
42
  name: rspec
42
43
  requirement: !ruby/object:Gem::Requirement
43
44
  requirements:
44
45
  - - "~>"
45
46
  - !ruby/object:Gem::Version
46
- version: 3.13.0
47
+ version: 3.8.0
47
48
  type: :development
48
49
  prerelease: false
49
50
  version_requirements: !ruby/object:Gem::Requirement
50
51
  requirements:
51
52
  - - "~>"
52
53
  - !ruby/object:Gem::Version
53
- version: 3.13.0
54
+ version: 3.8.0
54
55
  - !ruby/object:Gem::Dependency
55
56
  name: rspec-its
56
57
  requirement: !ruby/object:Gem::Requirement
@@ -99,6 +100,23 @@ files:
99
100
  - lib/bri/match/method.rb
100
101
  - lib/bri/matcher.rb
101
102
  - lib/bri/renderer.rb
103
+ - lib/bri/renderer/blank_line.rb
104
+ - lib/bri/renderer/default.rb
105
+ - lib/bri/renderer/document.rb
106
+ - lib/bri/renderer/heading.rb
107
+ - lib/bri/renderer/list.rb
108
+ - lib/bri/renderer/list/base.rb
109
+ - lib/bri/renderer/list/bullet.rb
110
+ - lib/bri/renderer/list/labeled.rb
111
+ - lib/bri/renderer/list/lower_lettered.rb
112
+ - lib/bri/renderer/list/note.rb
113
+ - lib/bri/renderer/list/numbered.rb
114
+ - lib/bri/renderer/list/upper_lettered.rb
115
+ - lib/bri/renderer/list_item.rb
116
+ - lib/bri/renderer/paragraph.rb
117
+ - lib/bri/renderer/result.rb
118
+ - lib/bri/renderer/rule.rb
119
+ - lib/bri/renderer/verbatim.rb
102
120
  - lib/bri/search.rb
103
121
  - lib/bri/search/base.rb
104
122
  - lib/bri/search/class.rb
@@ -106,20 +124,11 @@ files:
106
124
  - lib/bri/search/instance_method.rb
107
125
  - lib/bri/search/method.rb
108
126
  - lib/bri/templates.rb
109
- - spec/bri_dummy_spec_class.rb
110
- - spec/lib/bri/mall_spec.rb
111
- - spec/lib/bri/match/class_spec.rb
112
- - spec/lib/bri/match/method_spec.rb
113
- - spec/lib/bri/matcher_spec.rb
114
- - spec/lib/bri/renderer_spec.rb
115
- - spec/lib/bri/search/class_method_spec.rb
116
- - spec/lib/bri/search/class_spec.rb
117
- - spec/lib/bri/search/instance_method_spec.rb
118
- - spec/lib/bri/search/method_spec.rb
119
- - spec/spec_helper.rb
127
+ - lib/bri/text_formatting_utils.rb
120
128
  homepage: http://github.com/sriedel/bri
121
129
  licenses: []
122
130
  metadata: {}
131
+ post_install_message:
123
132
  rdoc_options:
124
133
  - "--charset=UTF-8"
125
134
  require_paths:
@@ -135,7 +144,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
144
  - !ruby/object:Gem::Version
136
145
  version: '0'
137
146
  requirements: []
138
- rubygems_version: 3.6.5
147
+ rubygems_version: 3.0.4
148
+ signing_key:
139
149
  specification_version: 4
140
150
  summary: Beautified RI in the spirit of fastri/qri. Unlike fastri, bri builds on top
141
151
  of the rdoc 2.x/3.x backend, only output and formatting is handled by bri