ydocx 1.2.2 → 1.2.3
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/History.txt +4 -0
- data/lib/ydocx/parser.rb +8 -4
- data/lib/ydocx/templates/fachinfo.rb +6 -5
- data/lib/ydocx.rb +1 -1
- metadata +5 -5
    
        data/History.txt
    CHANGED
    
    
    
        data/lib/ydocx/parser.rb
    CHANGED
    
    | @@ -55,7 +55,7 @@ module YDocx | |
| 55 55 | 
             
                  if symbol
         | 
| 56 56 | 
             
                    _text = ''
         | 
| 57 57 | 
             
                    text.unpack('U*').each do |char|
         | 
| 58 | 
            -
                      _text <<  | 
| 58 | 
            +
                      _text << character_replace(char.to_s(16))
         | 
| 59 59 | 
             
                    end
         | 
| 60 60 | 
             
                    text = _text
         | 
| 61 61 | 
             
                  end
         | 
| @@ -76,14 +76,14 @@ module YDocx | |
| 76 76 | 
             
                  end
         | 
| 77 77 | 
             
                  text
         | 
| 78 78 | 
             
                end
         | 
| 79 | 
            -
                def  | 
| 79 | 
            +
                def character_encode(text)
         | 
| 80 80 | 
             
                  text.force_encoding('utf-8')
         | 
| 81 81 | 
             
                  # NOTE
         | 
| 82 82 | 
             
                  # :named only for escape at Builder
         | 
| 83 83 | 
             
                  text = @coder.encode(text, :named)
         | 
| 84 84 | 
             
                  text
         | 
| 85 85 | 
             
                end
         | 
| 86 | 
            -
                def  | 
| 86 | 
            +
                def character_replace(code)
         | 
| 87 87 | 
             
                  code = '0x' + code
         | 
| 88 88 | 
             
                  # NOTE
         | 
| 89 89 | 
             
                  # replace with rsemble html character ref
         | 
| @@ -143,6 +143,9 @@ module YDocx | |
| 143 143 | 
             
                    #p "char : " + @coder.decode("&#%s;" % code.hex.to_s)
         | 
| 144 144 | 
             
                  end
         | 
| 145 145 | 
             
                end
         | 
| 146 | 
            +
                def optional_escape(text)
         | 
| 147 | 
            +
                  text
         | 
| 148 | 
            +
                end
         | 
| 146 149 | 
             
                def parse_block(node)
         | 
| 147 150 | 
             
                  nil # default no block element
         | 
| 148 151 | 
             
                end
         | 
| @@ -230,7 +233,7 @@ module YDocx | |
| 230 233 | 
             
                        end
         | 
| 231 234 | 
             
                        unless r.xpath('w:sym').empty?
         | 
| 232 235 | 
             
                          code = r.xpath('w:sym').first['char'].downcase # w:char
         | 
| 233 | 
            -
                          content <<  | 
| 236 | 
            +
                          content << character_replace(code)
         | 
| 234 237 | 
             
                          pos += 1
         | 
| 235 238 | 
             
                        end
         | 
| 236 239 | 
             
                        if !r.xpath('w:pict').empty? or !r.xpath('w:drawing').empty?
         | 
| @@ -276,6 +279,7 @@ module YDocx | |
| 276 279 | 
             
                end
         | 
| 277 280 | 
             
                def parse_text(r, lstrip=false)
         | 
| 278 281 | 
             
                  text = r.xpath('w:t').map(&:text).join('')
         | 
| 282 | 
            +
                  text = character_encode(text)
         | 
| 279 283 | 
             
                  text = optional_escape(text)
         | 
| 280 284 | 
             
                  text = text.lstrip if lstrip
         | 
| 281 285 | 
             
                  if rpr = r.xpath('w:rPr')
         | 
| @@ -6,6 +6,7 @@ require 'cgi' | |
| 6 6 | 
             
            module YDocx
         | 
| 7 7 | 
             
              class Parser
         | 
| 8 8 | 
             
                attr_accessor :code, :lang
         | 
| 9 | 
            +
                @@figure_pattern = /‘|’|'|´/
         | 
| 9 10 | 
             
                def init
         | 
| 10 11 | 
             
                  @image_path = 'image'
         | 
| 11 12 | 
             
                  @code = nil
         | 
| @@ -93,7 +94,7 @@ module YDocx | |
| 93 94 | 
             
                             gsub(/\s*\/\s*|\s+|\/|\-/, '_').gsub(/\./, '').downcase)
         | 
| 94 95 | 
             
                end
         | 
| 95 96 | 
             
                def parse_code(text) # swissmedic number
         | 
| 96 | 
            -
                  if text.gsub( | 
| 97 | 
            +
                  if text.gsub(@@figure_pattern, '') =~
         | 
| 97 98 | 
             
                     /^\s*(\d{5})(.*|\s*)\s*\(\s*Swiss\s*medic\s*\)(\s*|.)$/iu
         | 
| 98 99 | 
             
                    @code = "%5d" % $1
         | 
| 99 100 | 
             
                  else
         | 
| @@ -116,7 +117,7 @@ module YDocx | |
| 116 117 | 
             
                end
         | 
| 117 118 | 
             
                def parse_block(node)
         | 
| 118 119 | 
             
                  text = node.inner_text.strip
         | 
| 119 | 
            -
                  text =  | 
| 120 | 
            +
                  text = character_encode(text)
         | 
| 120 121 | 
             
                  chapters.each_pair do |chapter, regexp|
         | 
| 121 122 | 
             
                    if text =~ regexp
         | 
| 122 123 | 
             
                      # allow without line break
         | 
| @@ -124,13 +125,12 @@ module YDocx | |
| 124 125 | 
             
                      id = escape_id(chapter)
         | 
| 125 126 | 
             
                      @indecies << {:text => chapter, :id => id}
         | 
| 126 127 | 
             
                      return parse_heading(text, id)
         | 
| 127 | 
            -
                    elsif parse_code(text)
         | 
| 128 | 
            -
                      return nil
         | 
| 129 128 | 
             
                    end
         | 
| 130 129 | 
             
                  end
         | 
| 131 130 | 
             
                  if title = parse_title(node, text)
         | 
| 132 131 | 
             
                    return title
         | 
| 133 132 | 
             
                  end
         | 
| 133 | 
            +
                  parse_code(text)
         | 
| 134 134 | 
             
                  return nil
         | 
| 135 135 | 
             
                end
         | 
| 136 136 | 
             
              end
         | 
| @@ -256,9 +256,10 @@ div#container { | |
| 256 256 | 
             
                  @files
         | 
| 257 257 | 
             
                end
         | 
| 258 258 | 
             
                def output_file(ext) # html
         | 
| 259 | 
            +
                  lang = (@parser.lang.downcase == 'fr' ? 'fr' : 'de')
         | 
| 259 260 | 
             
                  if @parser.code
         | 
| 260 261 | 
             
                    filename = @parser.code
         | 
| 261 | 
            -
                    output_directory.join "#{filename}.#{ext.to_s}"
         | 
| 262 | 
            +
                    output_directory.join "#{lang}_#{filename}.#{ext.to_s}"
         | 
| 262 263 | 
             
                  else # default
         | 
| 263 264 | 
             
                    @path.sub_ext(".#{ext.to_s}")
         | 
| 264 265 | 
             
                  end
         | 
    
        data/lib/ydocx.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: ydocx
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.2. | 
| 4 | 
            +
              version: 1.2.3
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -13,7 +13,7 @@ date: 2012-07-12 00:00:00.000000000 Z | |
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: rdoc
         | 
| 16 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &21383980 !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ~>
         | 
| @@ -21,10 +21,10 @@ dependencies: | |
| 21 21 | 
             
                    version: '3.10'
         | 
| 22 22 | 
             
              type: :development
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *21383980
         | 
| 25 25 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 26 26 | 
             
              name: hoe
         | 
| 27 | 
            -
              requirement: & | 
| 27 | 
            +
              requirement: &21383540 !ruby/object:Gem::Requirement
         | 
| 28 28 | 
             
                none: false
         | 
| 29 29 | 
             
                requirements:
         | 
| 30 30 | 
             
                - - ~>
         | 
| @@ -32,7 +32,7 @@ dependencies: | |
| 32 32 | 
             
                    version: '2.13'
         | 
| 33 33 | 
             
              type: :development
         | 
| 34 34 | 
             
              prerelease: false
         | 
| 35 | 
            -
              version_requirements: * | 
| 35 | 
            +
              version_requirements: *21383540
         | 
| 36 36 | 
             
            description: ''
         | 
| 37 37 | 
             
            email:
         | 
| 38 38 | 
             
            - yasaka@ywesee.com,  zdavatz@ywesee.com
         |