whimsy-asf 0.0.45 → 0.0.46
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/asf.version +1 -1
- data/lib/whimsy/asf/icla.rb +88 -0
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 1bc6997362bf3158089292cac392c1739f19518a
         | 
| 4 | 
            +
              data.tar.gz: cb4e2622ea38148c6621d3f37cf6b9bac45d3457
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: e8cf182dc4f990db6aec7a24612f6ad73a6062e6d985cf7689459d99a36710b4b168bc6e02ff27eb757eea17492cf4f9c0efa49fe56d5fc4fc896edbe5694e70
         | 
| 7 | 
            +
              data.tar.gz: f6d32065c6acd7e25b02abddf5ff3650071c67a0f55852870f89935973cf843dbdaafaef1f30432f165a02deb4aae145e0aa908e774eee8d3d669364e59eac95
         | 
    
        data/asf.version
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            0.0. | 
| 1 | 
            +
            0.0.46
         | 
    
        data/lib/whimsy/asf/icla.rb
    CHANGED
    
    | @@ -49,6 +49,94 @@ module ASF | |
| 49 49 | 
             
                    iclas.scan(/^([-\w]+):(.*?):(.*?):(.*?):/).each(&block)
         | 
| 50 50 | 
             
                  end
         | 
| 51 51 | 
             
                end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                # sort support
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                def self.asciize(name)
         | 
| 56 | 
            +
                  if name.match /[^\x00-\x7F]/
         | 
| 57 | 
            +
                    # digraphs.  May be culturally sensitive
         | 
| 58 | 
            +
                    name.gsub! /\u00df/, 'ss'
         | 
| 59 | 
            +
                    name.gsub! /\u00e4|a\u0308/, 'ae'
         | 
| 60 | 
            +
                    name.gsub! /\u00e5|a\u030a/, 'aa'
         | 
| 61 | 
            +
                    name.gsub! /\u00e6/, 'ae'
         | 
| 62 | 
            +
                    name.gsub! /\u00f1|n\u0303/, 'ny'
         | 
| 63 | 
            +
                    name.gsub! /\u00f6|o\u0308/, 'oe'
         | 
| 64 | 
            +
                    name.gsub! /\u00fc|u\u0308/, 'ue'
         | 
| 65 | 
            +
             | 
| 66 | 
            +
                    # latin 1
         | 
| 67 | 
            +
                    name.gsub! /[\u00e0-\u00e5]/, 'a'
         | 
| 68 | 
            +
                    name.gsub! /\u00e7/, 'c'
         | 
| 69 | 
            +
                    name.gsub! /[\u00e8-\u00eb]/, 'e'
         | 
| 70 | 
            +
                    name.gsub! /[\u00ec-\u00ef]/, 'i'
         | 
| 71 | 
            +
                    name.gsub! /[\u00f2-\u00f6]|\u00f8/, 'o'
         | 
| 72 | 
            +
                    name.gsub! /[\u00f9-\u00fc]/, 'u'
         | 
| 73 | 
            +
                    name.gsub! /[\u00fd\u00ff]/, 'y'
         | 
| 74 | 
            +
             | 
| 75 | 
            +
                    # Latin Extended-A
         | 
| 76 | 
            +
                    name.gsub! /[\u0100-\u0105]/, 'a'
         | 
| 77 | 
            +
                    name.gsub! /[\u0106-\u010d]/, 'c'
         | 
| 78 | 
            +
                    name.gsub! /[\u010e-\u0111]/, 'd'
         | 
| 79 | 
            +
                    name.gsub! /[\u0112-\u011b]/, 'e'
         | 
| 80 | 
            +
                    name.gsub! /[\u011c-\u0123]/, 'g'
         | 
| 81 | 
            +
                    name.gsub! /[\u0124-\u0127]/, 'h'
         | 
| 82 | 
            +
                    name.gsub! /[\u0128-\u0131]/, 'i'
         | 
| 83 | 
            +
                    name.gsub! /[\u0132-\u0133]/, 'ij'
         | 
| 84 | 
            +
                    name.gsub! /[\u0134-\u0135]/, 'j'
         | 
| 85 | 
            +
                    name.gsub! /[\u0136-\u0138]/, 'k'
         | 
| 86 | 
            +
                    name.gsub! /[\u0139-\u0142]/, 'l'
         | 
| 87 | 
            +
                    name.gsub! /[\u0143-\u014b]/, 'n'
         | 
| 88 | 
            +
                    name.gsub! /[\u014C-\u0151]/, 'o'
         | 
| 89 | 
            +
                    name.gsub! /[\u0152-\u0153]/, 'oe'
         | 
| 90 | 
            +
                    name.gsub! /[\u0154-\u0159]/, 'r'
         | 
| 91 | 
            +
                    name.gsub! /[\u015a-\u0162]/, 's'
         | 
| 92 | 
            +
                    name.gsub! /[\u0162-\u0167]/, 't'
         | 
| 93 | 
            +
                    name.gsub! /[\u0168-\u0173]/, 'u'
         | 
| 94 | 
            +
                    name.gsub! /[\u0174-\u0175]/, 'w'
         | 
| 95 | 
            +
                    name.gsub! /[\u0176-\u0178]/, 'y'
         | 
| 96 | 
            +
                    name.gsub! /[\u0179-\u017e]/, 'z'
         | 
| 97 | 
            +
             | 
| 98 | 
            +
                    # denormalized diacritics
         | 
| 99 | 
            +
                    name.gsub! /[\u0300-\u036f]/, ''
         | 
| 100 | 
            +
                  end
         | 
| 101 | 
            +
             | 
| 102 | 
            +
                  name.gsub /[^\w]+/, '-'
         | 
| 103 | 
            +
                end
         | 
| 104 | 
            +
             | 
| 105 | 
            +
                SUFFIXES = /^([Jj][Rr]\.?|I{2,3}|I?V|VI{1,3}|[A-Z]\.)$/
         | 
| 106 | 
            +
             | 
| 107 | 
            +
                # rearrange line in an order suitable for sorting
         | 
| 108 | 
            +
                def self.lname(line)
         | 
| 109 | 
            +
                  return '' unless line =~ /^\w.*?:(.*?)(:(.*?):(.*?)(:(.*))?)\n?/
         | 
| 110 | 
            +
                  name, rest = $1, $2
         | 
| 111 | 
            +
             | 
| 112 | 
            +
                  # Drop trailing (comment string) or /* comment */
         | 
| 113 | 
            +
                  name.sub! /\(.+\)$/,''
         | 
| 114 | 
            +
                  name.sub! /\/\*.+\*\/$/,''
         | 
| 115 | 
            +
             | 
| 116 | 
            +
                  name = name.split.reverse
         | 
| 117 | 
            +
                  suffix = (name.shift if name.first =~ SUFFIXES)
         | 
| 118 | 
            +
                  suffix += ' ' + name.shift if name.first =~ SUFFIXES
         | 
| 119 | 
            +
                  name << name.shift
         | 
| 120 | 
            +
                  name << name.shift if name.first=='Lewis' and name.last=='Ship'
         | 
| 121 | 
            +
                  name << name.shift if name.first=='Gallardo' and name.last=='Rivera'
         | 
| 122 | 
            +
                  name << name.shift if name.first=="S\u00e1nchez" and name.last=='Vega'
         | 
| 123 | 
            +
                  # name << name.shift if name.first=='van'
         | 
| 124 | 
            +
                  name.last.sub! /^IJ/, 'Ij'
         | 
| 125 | 
            +
                  name.unshift(suffix) if suffix
         | 
| 126 | 
            +
                  name.map! {|word| asciize(word)}
         | 
| 127 | 
            +
                  name = name.reverse.join(' ')
         | 
| 128 | 
            +
             | 
| 129 | 
            +
                  name + rest
         | 
| 130 | 
            +
                end
         | 
| 131 | 
            +
             | 
| 132 | 
            +
                # sort an entire iclas.txt file
         | 
| 133 | 
            +
                def self.sort(source)
         | 
| 134 | 
            +
                  headers = source.scan(/^#.*/)
         | 
| 135 | 
            +
                  lines = source.scan(/^\w.*/)
         | 
| 136 | 
            +
             | 
| 137 | 
            +
                  headers.join("\n") + "\n" + 
         | 
| 138 | 
            +
                    lines.sort_by {|line| lname(line + "\n")}.join("\n") + "\n"
         | 
| 139 | 
            +
                end
         | 
| 52 140 | 
             
              end
         | 
| 53 141 |  | 
| 54 142 | 
             
              class Person
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: whimsy-asf
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.46
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Sam Ruby
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2015-09- | 
| 11 | 
            +
            date: 2015-09-04 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: nokogiri
         |