monospace_text_formatter 0.0.1 → 0.0.2
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/Changelog
    CHANGED
    
    
| 
         @@ -85,6 +85,10 @@ module MonospaceTextFormatter 
     | 
|
| 
       85 
85 
     | 
    
         
             
                  @to_s ||= lines.join("\n")
         
     | 
| 
       86 
86 
     | 
    
         
             
                end
         
     | 
| 
       87 
87 
     | 
    
         | 
| 
      
 88 
     | 
    
         
            +
                def inspect
         
     | 
| 
      
 89 
     | 
    
         
            +
                  %Q(#<#{self.class} #{to_s.inspect}>)
         
     | 
| 
      
 90 
     | 
    
         
            +
                end
         
     | 
| 
      
 91 
     | 
    
         
            +
             
     | 
| 
       88 
92 
     | 
    
         
             
                private
         
     | 
| 
       89 
93 
     | 
    
         | 
| 
       90 
94 
     | 
    
         
             
                def to_chunk_if_string(string)
         
     | 
| 
         @@ -95,6 +99,10 @@ module MonospaceTextFormatter 
     | 
|
| 
       95 
99 
     | 
    
         
             
                  Chunk.new(string)
         
     | 
| 
       96 
100 
     | 
    
         
             
                end
         
     | 
| 
       97 
101 
     | 
    
         | 
| 
      
 102 
     | 
    
         
            +
                def new_line(string, attrs={})
         
     | 
| 
      
 103 
     | 
    
         
            +
                  Line.new(string, attrs)
         
     | 
| 
      
 104 
     | 
    
         
            +
                end
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
       98 
106 
     | 
    
         
             
                def aligned_all_lines
         
     | 
| 
       99 
107 
     | 
    
         
             
                  @aligned_all_lines ||= all_lines.each do |line|
         
     | 
| 
       100 
108 
     | 
    
         
             
                    line.attributes(:align => align, :fill => fill, :width => width)
         
     | 
| 
         @@ -111,9 +119,9 @@ module MonospaceTextFormatter 
     | 
|
| 
       111 
119 
     | 
    
         
             
                                         when :top
         
     | 
| 
       112 
120 
     | 
    
         
             
                                           []
         
     | 
| 
       113 
121 
     | 
    
         
             
                                         when :middle
         
     | 
| 
       114 
     | 
    
         
            -
                                           Array.new(((@fixed_height - content_lines.size) / 2.0).floor,  
     | 
| 
      
 122 
     | 
    
         
            +
                                           Array.new(((@fixed_height - content_lines.size) / 2.0).floor, new_line(""))
         
     | 
| 
       115 
123 
     | 
    
         
             
                                         when :bottom
         
     | 
| 
       116 
     | 
    
         
            -
                                           Array.new(@fixed_height - content_lines.size,  
     | 
| 
      
 124 
     | 
    
         
            +
                                           Array.new(@fixed_height - content_lines.size, new_line(""))
         
     | 
| 
       117 
125 
     | 
    
         
             
                                         end
         
     | 
| 
       118 
126 
     | 
    
         
             
                                       else
         
     | 
| 
       119 
127 
     | 
    
         
             
                                         []
         
     | 
| 
         @@ -124,9 +132,9 @@ module MonospaceTextFormatter 
     | 
|
| 
       124 
132 
     | 
    
         
             
                  @empty_bottom_lines ||= if @fixed_height && fill && !fill.empty?
         
     | 
| 
       125 
133 
     | 
    
         
             
                                            case valign
         
     | 
| 
       126 
134 
     | 
    
         
             
                                            when :top
         
     | 
| 
       127 
     | 
    
         
            -
                                              Array.new(@fixed_height - content_lines.size,  
     | 
| 
      
 135 
     | 
    
         
            +
                                              Array.new(@fixed_height - content_lines.size, new_line(""))
         
     | 
| 
       128 
136 
     | 
    
         
             
                                            when :middle
         
     | 
| 
       129 
     | 
    
         
            -
                                              Array.new(((@fixed_height - content_lines.size) / 2.0).ceil,  
     | 
| 
      
 137 
     | 
    
         
            +
                                              Array.new(((@fixed_height - content_lines.size) / 2.0).ceil, new_line(""))
         
     | 
| 
       130 
138 
     | 
    
         
             
                                            when :bottom
         
     | 
| 
       131 
139 
     | 
    
         
             
                                              []
         
     | 
| 
       132 
140 
     | 
    
         
             
                                            end
         
     | 
| 
         @@ -138,7 +146,7 @@ module MonospaceTextFormatter 
     | 
|
| 
       138 
146 
     | 
    
         
             
                def content_lines
         
     | 
| 
       139 
147 
     | 
    
         
             
                  return @content_lines unless @content_lines.nil?
         
     | 
| 
       140 
148 
     | 
    
         
             
                  return @content_lines = [] if @fixed_width == 0 && @fixed_height.nil?
         
     | 
| 
       141 
     | 
    
         
            -
                  return @content_lines = [ 
     | 
| 
      
 149 
     | 
    
         
            +
                  return @content_lines = [new_line("")] if @original_chunk.empty?
         
     | 
| 
       142 
150 
     | 
    
         | 
| 
       143 
151 
     | 
    
         
             
                  @remaining_chunk = @original_chunk.duplicate
         
     | 
| 
       144 
152 
     | 
    
         
             
                  @line_chunks = []
         
     | 
| 
         @@ -152,7 +160,7 @@ module MonospaceTextFormatter 
     | 
|
| 
       152 
160 
     | 
    
         
             
                  end
         
     | 
| 
       153 
161 
     | 
    
         | 
| 
       154 
162 
     | 
    
         
             
                  common_width = @fixed_width || @line_chunks.map { |chunk| chunk.display_length }.max
         
     | 
| 
       155 
     | 
    
         
            -
                  @content_lines = @line_chunks.map { |chunk|  
     | 
| 
      
 163 
     | 
    
         
            +
                  @content_lines = @line_chunks.map { |chunk| new_line(chunk, :width => common_width, :omission => omission) }
         
     | 
| 
       156 
164 
     | 
    
         
             
                end
         
     | 
| 
       157 
165 
     | 
    
         
             
              end
         
     | 
| 
       158 
166 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: monospace_text_formatter
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.2
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,11 +9,11 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2012-02- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-02-18 00:00:00.000000000Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: rspec
         
     | 
| 
       16 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: &75602160 !ruby/object:Gem::Requirement
         
     | 
| 
       17 
17 
     | 
    
         
             
                none: false
         
     | 
| 
       18 
18 
     | 
    
         
             
                requirements:
         
     | 
| 
       19 
19 
     | 
    
         
             
                - - ~>
         
     | 
| 
         @@ -21,7 +21,7 @@ dependencies: 
     | 
|
| 
       21 
21 
     | 
    
         
             
                    version: '2.0'
         
     | 
| 
       22 
22 
     | 
    
         
             
              type: :development
         
     | 
| 
       23 
23 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       24 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 24 
     | 
    
         
            +
              version_requirements: *75602160
         
     | 
| 
       25 
25 
     | 
    
         
             
            description: Formats monospaced text into a line or visual box of defined 'width'
         
     | 
| 
       26 
26 
     | 
    
         
             
              and 'height' boundaries (expressed in number of characters).
         
     | 
| 
       27 
27 
     | 
    
         
             
            email: jacekmikrut.software@gmail.com
         
     |