prawn 0.13.0 → 0.13.1
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.
- checksums.yaml +4 -4
- data/Gemfile +0 -1
- data/README.md +1 -0
- data/data/images/16bit.alpha +0 -0
- data/data/images/16bit.color +0 -0
- data/data/images/dice.alpha +0 -0
- data/data/images/dice.color +0 -0
- data/data/images/page_white_text.alpha +0 -0
- data/data/images/page_white_text.color +0 -0
- data/lib/pdf/core/object_store.rb +3 -15
- data/lib/pdf/core/pdf_object.rb +8 -33
- data/lib/prawn.rb +1 -2
- data/lib/prawn/document.rb +2 -3
- data/lib/prawn/encoding.rb +1 -2
- data/lib/prawn/font/afm.rb +70 -29
- data/lib/prawn/font/ttf.rb +10 -2
- data/lib/prawn/images/jpg.rb +9 -10
- data/lib/prawn/images/png.rb +46 -118
- data/lib/prawn/text/formatted/arranger.rb +1 -5
- data/lib/prawn/text/formatted/box.rb +1 -1
- data/lib/prawn/text/formatted/fragment.rb +5 -11
- data/lib/prawn/text/formatted/line_wrap.rb +4 -25
- data/lib/prawn/text/formatted/wrap.rb +1 -4
- data/manual/example_file.rb +2 -7
- data/manual/manual/manual.rb +1 -1
- data/prawn.gemspec +0 -1
- data/spec/document_spec.rb +5 -7
- data/spec/extensions/encoding_helpers.rb +2 -3
- data/spec/filters_spec.rb +1 -1
- data/spec/font_spec.rb +3 -2
- data/spec/formatted_text_box_spec.rb +14 -25
- data/spec/images_spec.rb +2 -6
- data/spec/line_wrap_spec.rb +2 -2
- data/spec/outline_spec.rb +10 -10
- data/spec/png_spec.rb +9 -12
- data/spec/text_at_spec.rb +11 -26
- data/spec/text_box_spec.rb +6 -2
- data/spec/text_spec.rb +13 -27
- metadata +5 -20
- data/data/images/16bit.dat +0 -0
- data/data/images/dice.dat +0 -0
- data/data/images/page_white_text.dat +0 -0
- data/lib/prawn/compatibility.rb +0 -91
    
        data/spec/text_box_spec.rb
    CHANGED
    
    | @@ -992,7 +992,7 @@ describe "Text::Box wrapping" do | |
| 992 992 |  | 
| 993 993 | 
             
                expected = "©" * 25 + "\n" + "©" * 5
         | 
| 994 994 | 
             
                @pdf.font.normalize_encoding!(expected)
         | 
| 995 | 
            -
                expected = expected.force_encoding( | 
| 995 | 
            +
                expected = expected.force_encoding(Encoding::UTF_8)
         | 
| 996 996 | 
             
                text_box.text.should == expected
         | 
| 997 997 | 
             
              end
         | 
| 998 998 |  | 
| @@ -1009,7 +1009,7 @@ describe "Text::Box wrapping" do | |
| 1009 1009 | 
             
                text_box.render
         | 
| 1010 1010 | 
             
                results_without_accent = text_box.text
         | 
| 1011 1011 |  | 
| 1012 | 
            -
                results_with_accent. | 
| 1012 | 
            +
                first_line(results_with_accent).length.should == first_line(results_without_accent).length
         | 
| 1013 1013 | 
             
              end
         | 
| 1014 1014 | 
             
            end
         | 
| 1015 1015 |  | 
| @@ -1028,3 +1028,7 @@ end | |
| 1028 1028 | 
             
            def reduce_precision(float)
         | 
| 1029 1029 | 
             
              ("%.5f" % float).to_f
         | 
| 1030 1030 | 
             
            end
         | 
| 1031 | 
            +
             | 
| 1032 | 
            +
            def first_line(str)
         | 
| 1033 | 
            +
              str.each_line { |line| return line }
         | 
| 1034 | 
            +
            end
         | 
    
        data/spec/text_spec.rb
    CHANGED
    
    | @@ -313,34 +313,20 @@ describe "#text" do | |
| 313 313 | 
             
                pages[1][:strings].should == [str]
         | 
| 314 314 | 
             
              end
         | 
| 315 315 |  | 
| 316 | 
            -
               | 
| 317 | 
            -
                 | 
| 318 | 
            -
                 | 
| 319 | 
            -
             | 
| 320 | 
            -
                   | 
| 321 | 
            -
             | 
| 322 | 
            -
                    Prawn::Errors::IncompatibleStringEncoding)
         | 
| 323 | 
            -
                end
         | 
| 324 | 
            -
                it "should_not raise_error an exception when a shift-jis string is rendered" do
         | 
| 325 | 
            -
                  datafile = "#{Prawn::DATADIR}/shift_jis_text.txt"
         | 
| 326 | 
            -
                  sjis_str = File.open(datafile, "r:shift_jis") { |f| f.gets }
         | 
| 327 | 
            -
                  @pdf.font("#{Prawn::DATADIR}/fonts/gkai00mp.ttf")
         | 
| 316 | 
            +
              it "should raise_error an exception when a utf-8 incompatible string is rendered" do
         | 
| 317 | 
            +
                str = "Blah \xDD"
         | 
| 318 | 
            +
                str.force_encoding(Encoding::ASCII_8BIT)
         | 
| 319 | 
            +
                lambda { @pdf.text str }.should raise_error(
         | 
| 320 | 
            +
                  Prawn::Errors::IncompatibleStringEncoding)
         | 
| 321 | 
            +
              end
         | 
| 328 322 |  | 
| 329 | 
            -
             | 
| 330 | 
            -
             | 
| 331 | 
            -
                 | 
| 332 | 
            -
             | 
| 333 | 
            -
             | 
| 334 | 
            -
                 | 
| 335 | 
            -
             | 
| 336 | 
            -
                  lambda { @pdf.text str }.should raise_error(
         | 
| 337 | 
            -
                    Prawn::Errors::IncompatibleStringEncoding)
         | 
| 338 | 
            -
                end
         | 
| 339 | 
            -
                it "should raise_error an exception when a shift-jis string is rendered" do
         | 
| 340 | 
            -
                  sjis_str = File.read("#{Prawn::DATADIR}/shift_jis_text.txt")
         | 
| 341 | 
            -
                  lambda { @pdf.text sjis_str }.should raise_error(
         | 
| 342 | 
            -
                    Prawn::Errors::IncompatibleStringEncoding)
         | 
| 343 | 
            -
                end
         | 
| 323 | 
            +
              it "should_not raise_error an exception when a shift-jis string is rendered" do
         | 
| 324 | 
            +
                datafile = "#{Prawn::DATADIR}/shift_jis_text.txt"
         | 
| 325 | 
            +
                sjis_str = File.open(datafile, "r:shift_jis") { |f| f.gets }
         | 
| 326 | 
            +
                @pdf.font("#{Prawn::DATADIR}/fonts/gkai00mp.ttf")
         | 
| 327 | 
            +
             | 
| 328 | 
            +
                # Expect that the call to text will not raise an encoding error
         | 
| 329 | 
            +
                @pdf.text(sjis_str)
         | 
| 344 330 | 
             
              end
         | 
| 345 331 |  | 
| 346 332 | 
             
              it "should call move_past_bottom when printing more text than can fit" +
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: prawn
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.13. | 
| 4 | 
            +
              version: 0.13.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Gregory Brown
         | 
| @@ -12,7 +12,7 @@ authors: | |
| 12 12 | 
             
            autorequire: 
         | 
| 13 13 | 
             
            bindir: bin
         | 
| 14 14 | 
             
            cert_chain: []
         | 
| 15 | 
            -
            date: 2013-12- | 
| 15 | 
            +
            date: 2013-12-23 00:00:00.000000000 Z
         | 
| 16 16 | 
             
            dependencies:
         | 
| 17 17 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 18 18 | 
             
              name: pdf-reader
         | 
| @@ -56,20 +56,6 @@ dependencies: | |
| 56 56 | 
             
                - - '>='
         | 
| 57 57 | 
             
                  - !ruby/object:Gem::Version
         | 
| 58 58 | 
             
                    version: '0'
         | 
| 59 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 60 | 
            -
              name: afm
         | 
| 61 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 62 | 
            -
                requirements:
         | 
| 63 | 
            -
                - - '>='
         | 
| 64 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 65 | 
            -
                    version: '0'
         | 
| 66 | 
            -
              type: :runtime
         | 
| 67 | 
            -
              prerelease: false
         | 
| 68 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 69 | 
            -
                requirements:
         | 
| 70 | 
            -
                - - '>='
         | 
| 71 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 72 | 
            -
                    version: '0'
         | 
| 73 59 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 74 60 | 
             
              name: pdf-inspector
         | 
| 75 61 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -147,7 +133,6 @@ files: | |
| 147 133 | 
             
            - lib/pdf/core/stream.rb
         | 
| 148 134 | 
             
            - lib/pdf/core/text.rb
         | 
| 149 135 | 
             
            - lib/pdf/core.rb
         | 
| 150 | 
            -
            - lib/prawn/compatibility.rb
         | 
| 151 136 | 
             
            - lib/prawn/document/bounding_box.rb
         | 
| 152 137 | 
             
            - lib/prawn/document/column_box.rb
         | 
| 153 138 | 
             
            - lib/prawn/document/graphics_state.rb
         | 
| @@ -375,13 +360,13 @@ files: | |
| 375 360 | 
             
            - manual/text/win_ansi_charset.rb
         | 
| 376 361 | 
             
            - data/encodings/win_ansi.txt
         | 
| 377 362 | 
             
            - data/images/16bit.alpha
         | 
| 378 | 
            -
            - data/images/16bit. | 
| 363 | 
            +
            - data/images/16bit.color
         | 
| 379 364 | 
             
            - data/images/16bit.png
         | 
| 380 365 | 
             
            - data/images/arrow.png
         | 
| 381 366 | 
             
            - data/images/arrow2.png
         | 
| 382 367 | 
             
            - data/images/barcode_issue.png
         | 
| 383 368 | 
             
            - data/images/dice.alpha
         | 
| 384 | 
            -
            - data/images/dice. | 
| 369 | 
            +
            - data/images/dice.color
         | 
| 385 370 | 
             
            - data/images/dice.png
         | 
| 386 371 | 
             
            - data/images/dice_interlaced.png
         | 
| 387 372 | 
             
            - data/images/fractal.jpg
         | 
| @@ -389,7 +374,7 @@ files: | |
| 389 374 | 
             
            - data/images/indexed_color.png
         | 
| 390 375 | 
             
            - data/images/letterhead.jpg
         | 
| 391 376 | 
             
            - data/images/page_white_text.alpha
         | 
| 392 | 
            -
            - data/images/page_white_text. | 
| 377 | 
            +
            - data/images/page_white_text.color
         | 
| 393 378 | 
             
            - data/images/page_white_text.png
         | 
| 394 379 | 
             
            - data/images/pigs.jpg
         | 
| 395 380 | 
             
            - data/images/prawn.png
         | 
    
        data/data/images/16bit.dat
    DELETED
    
    | Binary file | 
    
        data/data/images/dice.dat
    DELETED
    
    | Binary file | 
| Binary file | 
    
        data/lib/prawn/compatibility.rb
    DELETED
    
    | @@ -1,91 +0,0 @@ | |
| 1 | 
            -
            # coding: utf-8
         | 
| 2 | 
            -
            #
         | 
| 3 | 
            -
            # Compatibility layer to smooth over differences between Ruby implementations
         | 
| 4 | 
            -
            # The oldest version of Ruby which is supported is MRI 1.8.7
         | 
| 5 | 
            -
            # Ideally, all version-specific or implementation-specific code should be
         | 
| 6 | 
            -
            #   kept in this file (but that ideal has not been attained yet)
         | 
| 7 | 
            -
             | 
| 8 | 
            -
            class String  #:nodoc:
         | 
| 9 | 
            -
              def first_line
         | 
| 10 | 
            -
                self.each_line { |line| return line }
         | 
| 11 | 
            -
              end
         | 
| 12 | 
            -
             | 
| 13 | 
            -
              unless "".respond_to?(:codepoints)
         | 
| 14 | 
            -
                def codepoints(&block)
         | 
| 15 | 
            -
                  if block_given?
         | 
| 16 | 
            -
                    unpack("U*").each(&block)
         | 
| 17 | 
            -
                  else
         | 
| 18 | 
            -
                    unpack("U*")
         | 
| 19 | 
            -
                  end
         | 
| 20 | 
            -
                end
         | 
| 21 | 
            -
             | 
| 22 | 
            -
                def each_codepoint(&block)
         | 
| 23 | 
            -
                  unpack("U*").each(&block)
         | 
| 24 | 
            -
                end
         | 
| 25 | 
            -
              end
         | 
| 26 | 
            -
             | 
| 27 | 
            -
              if "".respond_to?(:encode)
         | 
| 28 | 
            -
                def normalize_to_utf8
         | 
| 29 | 
            -
                  begin
         | 
| 30 | 
            -
                    encode(Encoding::UTF_8)
         | 
| 31 | 
            -
                  rescue
         | 
| 32 | 
            -
                    raise Prawn::Errors::IncompatibleStringEncoding, "Encoding " +
         | 
| 33 | 
            -
                    "#{text.encoding} can not be transparently converted to UTF-8. " +
         | 
| 34 | 
            -
                    "Please ensure the encoding of the string you are attempting " +
         | 
| 35 | 
            -
                    "to use is set correctly"
         | 
| 36 | 
            -
                  end
         | 
| 37 | 
            -
                end
         | 
| 38 | 
            -
                alias :unicode_characters :each_char
         | 
| 39 | 
            -
                alias :unicode_length     :length
         | 
| 40 | 
            -
             | 
| 41 | 
            -
              else
         | 
| 42 | 
            -
                def normalize_to_utf8
         | 
| 43 | 
            -
                  begin
         | 
| 44 | 
            -
                    # use unpack as a hackish way to verify the string is valid utf-8
         | 
| 45 | 
            -
                    unpack("U*")
         | 
| 46 | 
            -
                    return dup
         | 
| 47 | 
            -
                  rescue
         | 
| 48 | 
            -
                    raise Prawn::Errors::IncompatibleStringEncoding, "The string you " +
         | 
| 49 | 
            -
                    "are attempting to render is not encoded in valid UTF-8."
         | 
| 50 | 
            -
                  end
         | 
| 51 | 
            -
                end
         | 
| 52 | 
            -
                def unicode_characters
         | 
| 53 | 
            -
                  if block_given?
         | 
| 54 | 
            -
                    unpack("U*").each { |c| yield [c].pack("U") }
         | 
| 55 | 
            -
                  else
         | 
| 56 | 
            -
                    unpack("U*").map { |c| [c].pack("U") }
         | 
| 57 | 
            -
                  end
         | 
| 58 | 
            -
                end
         | 
| 59 | 
            -
                def unicode_length
         | 
| 60 | 
            -
                  unpack("U*").length
         | 
| 61 | 
            -
                end
         | 
| 62 | 
            -
              end
         | 
| 63 | 
            -
            end
         | 
| 64 | 
            -
             | 
| 65 | 
            -
            unless File.respond_to?(:binread)
         | 
| 66 | 
            -
              def File.binread(file) #:nodoc:
         | 
| 67 | 
            -
                File.open(file,"rb") { |f| f.read }
         | 
| 68 | 
            -
              end
         | 
| 69 | 
            -
            end
         | 
| 70 | 
            -
             | 
| 71 | 
            -
            if RUBY_VERSION < "1.9"
         | 
| 72 | 
            -
             | 
| 73 | 
            -
              def ruby_18  #:nodoc:
         | 
| 74 | 
            -
                yield
         | 
| 75 | 
            -
              end
         | 
| 76 | 
            -
             | 
| 77 | 
            -
              def ruby_19  #:nodoc:
         | 
| 78 | 
            -
                false
         | 
| 79 | 
            -
              end
         | 
| 80 | 
            -
             | 
| 81 | 
            -
            else
         | 
| 82 | 
            -
             | 
| 83 | 
            -
              def ruby_18  #:nodoc:
         | 
| 84 | 
            -
                false
         | 
| 85 | 
            -
              end
         | 
| 86 | 
            -
             | 
| 87 | 
            -
              def ruby_19  #:nodoc:
         | 
| 88 | 
            -
                yield
         | 
| 89 | 
            -
              end
         | 
| 90 | 
            -
             | 
| 91 | 
            -
            end
         |