infod 0.0.3.2 → 0.0.3.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.
- checksums.yaml +7 -0
- data/bin/infod +1 -1
- data/infod.rb +14 -9
- data/infod/404.rb +19 -6
- data/infod/500.rb +2 -2
- data/infod/GET.rb +18 -16
- data/infod/HTTP.rb +5 -7
- data/infod/POST.rb +27 -20
- data/infod/audio.rb +1 -1
- data/infod/blog.rb +23 -6
- data/infod/cal.rb +2 -2
- data/infod/code.rb +2 -2
- data/infod/constants.rb +5 -3
- data/infod/csv.rb +5 -5
- data/infod/edit.rb +24 -28
- data/infod/facets.rb +4 -4
- data/infod/feed.rb +12 -12
- data/infod/forum.rb +1 -1
- data/infod/fs.rb +57 -109
- data/infod/graph.rb +37 -17
- data/infod/grep.rb +4 -4
- data/infod/groonga.rb +14 -14
- data/infod/histogram.rb +5 -5
- data/infod/html.rb +41 -38
- data/infod/image.rb +7 -9
- data/infod/index.rb +13 -43
- data/infod/infod.rb +14 -9
- data/infod/lambda.rb +32 -20
- data/infod/ls.rb +32 -9
- data/infod/mail.rb +104 -94
- data/infod/man.rb +6 -6
- data/infod/microblog.rb +12 -12
- data/infod/mime.rb +8 -15
- data/infod/names.rb +89 -235
- data/infod/rdf.rb +9 -15
- data/infod/schema.rb +17 -17
- data/infod/text.rb +58 -15
- data/infod/threads.rb +12 -9
- data/infod/time.rb +5 -6
- metadata +41 -59
- data/infod/HEAD.rb +0 -23
- data/infod/find.rb +0 -19
- data/infod/glob.rb +0 -25
- data/infod/kv.rb +0 -56
- data/infod/page.rb +0 -19
- data/infod/postscript.rb +0 -26
- data/infod/ruby.rb +0 -57
- data/infod/sh.rb +0 -19
- data/infod/webid.rb +0 -0
- data/infod/wiki.rb +0 -18
    
        data/infod/rdf.rb
    CHANGED
    
    | @@ -1,35 +1,29 @@ | |
| 1 1 | 
             
            #watch __FILE__
         | 
| 2 | 
            -
            class  | 
| 2 | 
            +
            class R
         | 
| 3 3 |  | 
| 4 | 
            -
              def  | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
                   rescue LoadError => e
         | 
| 8 | 
            -
                     puts "linkeddata library not found"
         | 
| 9 | 
            -
                   end)
         | 
| 10 | 
            -
              end
         | 
| 4 | 
            +
              def nt;  @nt ||= docBase.a('.nt') end
         | 
| 5 | 
            +
              def n3;  @n3 ||= docBase.a('.n3') end
         | 
| 6 | 
            +
              def ttl; @ttl||= docBase.a('.ttl') end
         | 
| 11 7 |  | 
| 12 8 | 
             
              def self.renderRDF d,f,e
         | 
| 13 | 
            -
                E.linkeddata.do{|ld|
         | 
| 14 9 | 
             
                (RDF::Writer.for f).buffer{|w|
         | 
| 15 10 | 
             
                  d.triples{|s,p,o|
         | 
| 16 11 | 
             
                  if s && p && o
         | 
| 17 | 
            -
                    s = RDF::URI s=='#' ? '' : (s. | 
| 12 | 
            +
                    s = RDF::URI s=='#' ? e['REQUEST_URI'] : (s.R.hostURL e)
         | 
| 18 13 | 
             
                    p = RDF::URI p
         | 
| 19 | 
            -
                    o = ([ | 
| 14 | 
            +
                    o = ([R,Hash].member?(o.class) ? (RDF::URI o.R.hostURL(e)) :
         | 
| 20 15 | 
             
                         (l = RDF::Literal o
         | 
| 21 16 | 
             
                          l.datatype=RDF.XMLLiteral if p == Content
         | 
| 22 17 | 
             
                          l)) rescue nil
         | 
| 23 18 | 
             
                    (w << (RDF::Statement.new s,p,o) if o ) rescue nil
         | 
| 24 | 
            -
                  end}} | 
| 19 | 
            +
                  end}}
         | 
| 25 20 | 
             
              end
         | 
| 26 21 |  | 
| 27 22 | 
             
              def triplrRDF format=nil, local=true
         | 
| 28 | 
            -
                E.linkeddata.do{|ld|
         | 
| 29 23 | 
             
                uri = (local && f) ? d : uri
         | 
| 30 24 | 
             
                RDF::Reader.open(uri, :format => format){|r|
         | 
| 31 25 | 
             
                  r.each_triple{|s,p,o|
         | 
| 32 | 
            -
                    yield s.to_s, p.to_s, [RDF::Node, RDF::URI].member?(o.class) ?  | 
| 26 | 
            +
                    yield s.to_s, p.to_s, [RDF::Node, RDF::URI].member?(o.class) ? R(o) : o.value.do{|v|v.class == String ? v.to_utf8 : v}}}
         | 
| 33 27 | 
             
              end
         | 
| 34 28 |  | 
| 35 29 | 
             
              [['application/ld+json',:jsonld],
         | 
| @@ -37,7 +31,7 @@ class E | |
| 37 31 | 
             
               ['text/turtle',:turtle],
         | 
| 38 32 | 
             
               ['text/n3',:n3]
         | 
| 39 33 | 
             
              ].map{|mime|
         | 
| 40 | 
            -
                F[Render+mime[0]] = ->d,e{ | 
| 34 | 
            +
                F[Render+mime[0]] = ->d,e{R.renderRDF d, mime[1], e}}
         | 
| 41 35 |  | 
| 42 36 | 
             
              F['view/data'] = ->d,e {
         | 
| 43 37 | 
             
                local = true
         | 
    
        data/infod/schema.rb
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            #watch __FILE__
         | 
| 2 | 
            -
            class  | 
| 2 | 
            +
            class R
         | 
| 3 3 | 
             
            =begin
         | 
| 4 4 | 
             
             www)  http://data.whats-your.name
         | 
| 5 5 |  | 
| @@ -14,8 +14,8 @@ class E | |
| 14 14 | 
             
             ) RDF usage data
         | 
| 15 15 | 
             
               curl http://data.whats-your.name/schema/gromgull.gz | zcat > properties.txt  
         | 
| 16 16 | 
             
             2) massage
         | 
| 17 | 
            -
             irb>  | 
| 18 | 
            -
              ..   | 
| 17 | 
            +
             irb> R.cacheSchemas
         | 
| 18 | 
            +
              ..  R.indexSchemas
         | 
| 19 19 |  | 
| 20 20 | 
             
             schema missing? publish and add to prefix.cc,
         | 
| 21 21 | 
             
             see also ideas at http://www.w3.org/2013/04/vocabs/
         | 
| @@ -23,20 +23,20 @@ class E | |
| 23 23 | 
             
            =end
         | 
| 24 24 |  | 
| 25 25 | 
             
              UsageWeight = 'http://schema.whats-your.name/usageFrequency'
         | 
| 26 | 
            -
              SchemasRDFa = %w{http://schema.org/docs/schema_org_rdfa.html}.map &: | 
| 26 | 
            +
              SchemasRDFa = %w{http://schema.org/docs/schema_org_rdfa.html}.map &:R
         | 
| 27 27 |  | 
| 28 | 
            -
              def  | 
| 29 | 
            -
                 | 
| 28 | 
            +
              def R.cacheSchemas
         | 
| 29 | 
            +
                R.schemaDocs.map &:cacheSchema
         | 
| 30 30 | 
             
                # rapper2 is failing at RDFa autodiscovery, import them again
         | 
| 31 31 | 
             
                SchemasRDFa.map{|s|
         | 
| 32 32 | 
             
                  s.ttl.w `rapper -i rdfa -o turtle #{s.uri}`
         | 
| 33 33 | 
             
                  s.ef.w s.ttl.graphFromFile,true}
         | 
| 34 34 | 
             
              end
         | 
| 35 35 |  | 
| 36 | 
            -
              def  | 
| 36 | 
            +
              def R.indexSchemas
         | 
| 37 37 | 
             
                g = {}
         | 
| 38 | 
            -
                 | 
| 39 | 
            -
                '/schema/schema.txt'. | 
| 38 | 
            +
                R.schemaDocs.map(&:ef).flatten.map{|d|d.graphFromFile g}
         | 
| 39 | 
            +
                '/schema/schema.txt'.R.w g.sort_by{|u,r|r[UsageWeight]}.map{|u,r|
         | 
| 40 40 | 
             
                  [(r[UsageWeight]||0),
         | 
| 41 41 | 
             
                   u,
         | 
| 42 42 | 
             
                   r[Label],
         | 
| @@ -55,15 +55,15 @@ class E | |
| 55 55 | 
             
                unless ef.e || ttl.do{|t| t.e && t.size > 256e3}
         | 
| 56 56 | 
             
                  g = ttl.graphFromFile # parse
         | 
| 57 57 | 
             
                  g.map{|u,r|           # each resource
         | 
| 58 | 
            -
                     | 
| 58 | 
            +
                    R.schemaWeights[u].do{|w| # grab stats
         | 
| 59 59 | 
             
                      r[UsageWeight] = w }}
         | 
| 60 60 | 
             
                  ef.w g,true # write annotated graph
         | 
| 61 61 | 
             
                end
         | 
| 62 62 | 
             
              end
         | 
| 63 63 |  | 
| 64 | 
            -
              def  | 
| 64 | 
            +
              def R.schemaWeights
         | 
| 65 65 | 
             
                @schemaWeights ||=
         | 
| 66 | 
            -
                  (data = '/properties.txt'. | 
| 66 | 
            +
                  (data = '/properties.txt'.R
         | 
| 67 67 | 
             
                   (puts "download\ncurl http://data.whats-your.name/schema/gromgull.gz | zcat > predicates.txt"; exit) unless data.e
         | 
| 68 68 | 
             
                   w = {}
         | 
| 69 69 | 
             
                   data.read.each_line{|e|
         | 
| @@ -72,13 +72,13 @@ class E | |
| 72 72 | 
             
                   w)
         | 
| 73 73 | 
             
              end
         | 
| 74 74 |  | 
| 75 | 
            -
              def  | 
| 75 | 
            +
              def R.schemaDocs
         | 
| 76 76 | 
             
                @schemaDocs ||=
         | 
| 77 | 
            -
                  (source =  | 
| 78 | 
            -
                   mirror =  | 
| 77 | 
            +
                  (source = R['http://prefix.cc/popular/all.file.txt']
         | 
| 78 | 
            +
                   mirror = R['/prefix.txt']
         | 
| 79 79 | 
             
                   (mirror.e ? mirror : source).   # select schema-pointers doc
         | 
| 80 80 | 
             
                   read.split(/\n/).grep(/^[^#]/). # each uncommented line
         | 
| 81 | 
            -
                   map{|t| t.split(/\t/)[1]. | 
| 81 | 
            +
                   map{|t| t.split(/\t/)[1].R }.   # into a Resource
         | 
| 82 82 | 
             
                   concat SchemasRDFa)             # schema list
         | 
| 83 83 | 
             
              end
         | 
| 84 84 |  | 
| @@ -86,7 +86,7 @@ class E | |
| 86 86 | 
             
                r.q['view']='table'
         | 
| 87 87 | 
             
                g = {}
         | 
| 88 88 | 
             
                if (q = r.q['q']) && !q.empty?
         | 
| 89 | 
            -
                  search = "grep -i #{q.sh} #{'/schema/schema.txt'. | 
| 89 | 
            +
                  search = "grep -i #{q.sh} #{'/schema/schema.txt'.R.d} | head -n 255"
         | 
| 90 90 | 
             
                  found = `#{search}`.to_utf8.lines.to_a.map{|i|
         | 
| 91 91 | 
             
                    c,u,t = i.split ' ',3
         | 
| 92 92 | 
             
                    c = c.to_i
         | 
    
        data/infod/text.rb
    CHANGED
    
    | @@ -3,7 +3,8 @@ | |
| 3 3 |  | 
| 4 4 | 
             
            class String
         | 
| 5 5 |  | 
| 6 | 
            -
               | 
| 6 | 
            +
              def h; Digest::SHA1.hexdigest self end
         | 
| 7 | 
            +
             | 
| 7 8 | 
             
              def hrefs i=false
         | 
| 8 9 | 
             
                #  ) only matches with an opener
         | 
| 9 10 | 
             
                # ,. only match mid-URI
         | 
| @@ -19,18 +20,24 @@ class String | |
| 19 20 | 
             
              rescue
         | 
| 20 21 | 
             
                self
         | 
| 21 22 | 
             
              end
         | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 23 | 
            +
             | 
| 24 | 
            +
              def tail; self[1..-1] end
         | 
| 25 | 
            +
              def to_utf8
         | 
| 26 | 
            +
                encode('UTF-8', undef: :replace)
         | 
| 27 | 
            +
              rescue Encoding::InvalidByteSequenceError
         | 
| 28 | 
            +
                ""
         | 
| 24 29 | 
             
              end
         | 
| 30 | 
            +
              def t; match(/\/$/) ? self : self+'/' end
         | 
| 31 | 
            +
             | 
| 25 32 | 
             
            end
         | 
| 26 33 |  | 
| 27 | 
            -
            class  | 
| 34 | 
            +
            class R
         | 
| 28 35 |  | 
| 29 36 | 
             
              fn 'view/monospace',->d,e{
         | 
| 30 37 | 
             
                [(H.once e,'text',(H.css '/css/text')),
         | 
| 31 38 | 
             
                 d.values.map{|v|
         | 
| 32 39 | 
             
                  v[Content].do{|c|
         | 
| 33 | 
            -
                     b =  | 
| 40 | 
            +
                     b = R.cs
         | 
| 34 41 | 
             
                    {class: :text,
         | 
| 35 42 | 
             
                       c: [{_: :a, href: v.url+'?view', c: v.label, style: "background-color:" + b},
         | 
| 36 43 | 
             
                           {_: :pre,  c: c, style: "border-color:" + b}]}}}]}
         | 
| @@ -53,44 +60,80 @@ class E | |
| 53 60 | 
             
                 (H.once e,'title',(H.css '/css/title'))]}
         | 
| 54 61 |  | 
| 55 62 | 
             
              fn 'itemview/title',->r,e{
         | 
| 56 | 
            -
                {_: :a, class: :title, href: r. | 
| 57 | 
            -
                  c: r[Title] || r.uri.abbrURI} if (r.class ==  | 
| 63 | 
            +
                {_: :a, class: :title, href: r.R.url,
         | 
| 64 | 
            +
                  c: r[Title] || r.uri.abbrURI} if (r.class == R || r.class == Hash) && r.uri}
         | 
| 58 65 |  | 
| 59 66 | 
             
              # a list of URIs
         | 
| 60 67 | 
             
              def triplrUriList
         | 
| 61 | 
            -
                yield uri, COGS+'View',  | 
| 68 | 
            +
                yield uri, COGS+'View', R[uri+'?view=csv']
         | 
| 62 69 | 
             
                open(d).readlines.grep(/^[^#]/).map{|l|
         | 
| 63 70 | 
             
                  l = l.chomp
         | 
| 64 | 
            -
                  yield uri, '/rel', l. | 
| 71 | 
            +
                  yield uri, '/rel', l.R
         | 
| 65 72 | 
             
                  yield l, '/rev', self
         | 
| 66 | 
            -
                  yield l, Type,  | 
| 73 | 
            +
                  yield l, Type, R[CSV+'Row']
         | 
| 67 74 | 
             
                }
         | 
| 68 75 | 
             
              end
         | 
| 69 76 |  | 
| 70 77 | 
             
              def uris
         | 
| 71 | 
            -
                graph.keys.select{|u|u.match /^http/}.map &: | 
| 78 | 
            +
                graph.keys.select{|u|u.match /^http/}.map &:R
         | 
| 72 79 | 
             
              end
         | 
| 73 80 |  | 
| 74 81 | 
             
              def triplrANSI
         | 
| 75 82 | 
             
                yield uri, Content, `cat #{sh} | aha`
         | 
| 76 83 | 
             
              end
         | 
| 77 84 |  | 
| 85 | 
            +
              def triplrMarkdown
         | 
| 86 | 
            +
                require 'markdown'
         | 
| 87 | 
            +
                yield uri,Content,Markdown.new(r).to_html
         | 
| 88 | 
            +
              end
         | 
| 89 | 
            +
             | 
| 90 | 
            +
              def triplrOrg
         | 
| 91 | 
            +
                require 'org-ruby'
         | 
| 92 | 
            +
                r.do{|r|
         | 
| 93 | 
            +
                  yield uri,Content,Orgmode::Parser.new(r).to_html}
         | 
| 94 | 
            +
              end
         | 
| 95 | 
            +
             | 
| 78 96 | 
             
              def triplrPDF &f
         | 
| 79 97 | 
             
                triplrStdOut 'pdfinfo', &f
         | 
| 80 98 | 
             
              end
         | 
| 81 99 |  | 
| 82 | 
            -
              def  | 
| 83 | 
            -
                 | 
| 100 | 
            +
              def triplrPS
         | 
| 101 | 
            +
                p = R[dirname + '/.' + File.basename(path) + '/']
         | 
| 102 | 
            +
                unless p.e
         | 
| 103 | 
            +
                  p.mk
         | 
| 104 | 
            +
                  `gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -r300 -sOutputFile='#{p.sh}%03d.png' -dTextAlphaBits=4 #{sh}`
         | 
| 105 | 
            +
                end
         | 
| 106 | 
            +
                yield uri, Content, `ps2txt #{sh}`.hrefs
         | 
| 107 | 
            +
                p.a('*.png').glob.map{|i|yield uri, DC+'Image', i}
         | 
| 84 108 | 
             
              end
         | 
| 85 109 |  | 
| 86 | 
            -
               | 
| 87 | 
            -
                 | 
| 110 | 
            +
              F['view/'+MIMEtype+'application/postscript']=->r,e{
         | 
| 111 | 
            +
                [(H.once e, :mu,   (H.js '/js/mu')),(H.once e, :book, (H.js '/js/book')),
         | 
| 112 | 
            +
                 {_: :style, c: 'div[type="book"] a {background-color:#ccc;color:#fff;float:left;margin:.16em}'},
         | 
| 113 | 
            +
                 r.values.map{|d|
         | 
| 114 | 
            +
                  d[DC+'Image'].do{|is|
         | 
| 115 | 
            +
                    is = is.sort_by(&:uri)
         | 
| 116 | 
            +
                    {type: :book,
         | 
| 117 | 
            +
                      c: [{_: :img, style:'float:left;max-width:100%', src: is[0].url},
         | 
| 118 | 
            +
                          {name: :pages,
         | 
| 119 | 
            +
                            c: is.map{|i|{_: :a,href: i.url, c: i.R.bare}}}]}}}]}
         | 
| 120 | 
            +
             | 
| 121 | 
            +
              def triplrRTF
         | 
| 122 | 
            +
                yield uri, Content, `which catdoc && catdoc #{sh}`.hrefs
         | 
| 88 123 | 
             
              end
         | 
| 89 124 |  | 
| 90 125 | 
             
              def triplrTeX
         | 
| 91 126 | 
             
                yield uri, Content, `cat #{sh} | tth -r`
         | 
| 92 127 | 
             
              end
         | 
| 93 128 |  | 
| 129 | 
            +
              def triplrTextile; require 'redcloth'
         | 
| 130 | 
            +
                yield uri,Content,RedCloth.new(r).to_html
         | 
| 131 | 
            +
              end
         | 
| 132 | 
            +
             | 
| 133 | 
            +
              def triplrWord
         | 
| 134 | 
            +
                yield uri, Content, `which antiword && antiword #{sh}`.hrefs
         | 
| 135 | 
            +
              end
         | 
| 136 | 
            +
             | 
| 94 137 | 
             
              fn Render+'text/plain',->d,_=nil{
         | 
| 95 138 | 
             
                d.values.map{|r|
         | 
| 96 139 | 
             
                  [(r.map{|k,v|
         | 
    
        data/infod/threads.rb
    CHANGED
    
    | @@ -1,20 +1,23 @@ | |
| 1 1 | 
             
            # -*- coding: utf-8 -*-
         | 
| 2 2 | 
             
            #watch __FILE__
         | 
| 3 | 
            -
            class  | 
| 3 | 
            +
            class R
         | 
| 4 4 |  | 
| 5 5 | 
             
              fn 'protograph/thread',->d,e,g{
         | 
| 6 | 
            -
                #  | 
| 6 | 
            +
                # walk reply_of arcs
         | 
| 7 7 | 
             
                d.pathSegment.do{|p|p.walk SIOC+'reply_of',g }
         | 
| 8 | 
            -
                g | 
| 9 | 
            -
                   | 
| 10 | 
            -
                   | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 8 | 
            +
                unless g.empty?
         | 
| 9 | 
            +
                  thread = '#discussion'
         | 
| 10 | 
            +
                  g[thread] = {
         | 
| 11 | 
            +
                    'uri' => thread,
         | 
| 12 | 
            +
                    Type => R[SIOC+'Thread'],
         | 
| 13 | 
            +
                    RDFs + 'member' => g.keys.map(&:R)}
         | 
| 14 | 
            +
                  g['#'] = {'uri' => '#', Type => [R[HTTP+'Response']]}
         | 
| 15 | 
            +
                end
         | 
| 13 16 | 
             
                F['docsID'][g,e]}
         | 
| 14 17 |  | 
| 15 18 | 
             
              fn 'view/threads',->d,env{
         | 
| 16 19 | 
             
                posts = d.values.select{|r| # we want SIOC posts
         | 
| 17 | 
            -
                  r[Type].do{|t| [*t].map | 
| 20 | 
            +
                  r[Type].do{|t| [*t].map(&:maybeURI).member? SIOC+'Post'}}
         | 
| 18 21 | 
             
                threads = posts.group_by{|r| # group by Title
         | 
| 19 22 | 
             
                   [*r[Title]][0].do{|t|t.sub(/^[rR][eE][^A-Za-z]./,'')}}
         | 
| 20 23 |  | 
| @@ -23,7 +26,7 @@ class E | |
| 23 26 | 
             
                 '<table>',
         | 
| 24 27 | 
             
                 threads.group_by{|r,k| # group by recipient
         | 
| 25 28 | 
             
                   k[0].do{|k| k[To].do{|o|o.head.uri}}}.
         | 
| 26 | 
            -
                 map{|group,threads| c =  | 
| 29 | 
            +
                 map{|group,threads| c = R.cs
         | 
| 27 30 | 
             
                   ['<tr><td class=subject>',
         | 
| 28 31 | 
             
                    threads.map{|title,msgs| # thread
         | 
| 29 32 | 
             
                      [{_: :a, property: Title, :class => 'thread', style: "border-color:#{c}", href: msgs[0].url+'?graph=thread&view=timegraph',
         | 
    
        data/infod/time.rb
    CHANGED
    
    | @@ -15,19 +15,18 @@ class Object | |
| 15 15 | 
             
              end
         | 
| 16 16 | 
             
            end
         | 
| 17 17 |  | 
| 18 | 
            -
            class  | 
| 18 | 
            +
            class R
         | 
| 19 19 |  | 
| 20 20 | 
             
              fn 'view/timegraph',->g,e{
         | 
| 21 21 | 
             
                i = F['itemview/timegraph']
         | 
| 22 | 
            -
                 | 
| 23 | 
            -
                  g.map{|u,r|i.(r,e)}}}
         | 
| 22 | 
            +
                F['baseview/timegraph'][g,e,->{g.map{|u,r|i.(r,e)}}]}
         | 
| 24 23 |  | 
| 25 24 | 
             
              fn 'baseview/timegraph',->d,e,c{
         | 
| 26 25 | 
             
                e[:graph] = d
         | 
| 27 26 | 
             
                e[:group] = {}
         | 
| 28 27 | 
             
                [F['view'][d,e],H.css('/css/timegraph'),
         | 
| 29 28 | 
             
                 {class: :timegraph,
         | 
| 30 | 
            -
                   c: ( | 
| 29 | 
            +
                   c: (F['filter/timegraph'][ e.q, d, nil]
         | 
| 31 30 | 
             
                       c.())}]}
         | 
| 32 31 |  | 
| 33 32 | 
             
              # timegraph entry
         | 
| @@ -38,8 +37,8 @@ class E | |
| 38 37 |  | 
| 39 38 | 
             
                  labelP = x.q['label'].do{|l|l.expand} || Creator
         | 
| 40 39 | 
             
                  label = ([*r[labelP]][0]).do{|l|
         | 
| 41 | 
            -
                           l.respond_to?(:uri) ? l. | 
| 42 | 
            -
                  lc = x[:group][label] ||=  | 
| 40 | 
            +
                           l.respond_to?(:uri) ? l.R.label : l.to_s}
         | 
| 41 | 
            +
                  lc = x[:group][label] ||= R.c
         | 
| 43 42 | 
             
                  arc = x.q['arc'].do{|a| a.expand } || (SIOC+'has_parent')
         | 
| 44 43 |  | 
| 45 44 | 
             
                  [{style: "top: #{r['x']}%; left: #{r['y']}%",
         | 
    
        metadata
    CHANGED
    
    | @@ -1,62 +1,55 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: infod
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0.3. | 
| 5 | 
            -
              prerelease: 
         | 
| 4 | 
            +
              version: 0.0.3.3
         | 
| 6 5 | 
             
            platform: ruby
         | 
| 7 6 | 
             
            authors:
         | 
| 8 | 
            -
            - <carmen@whats-your.name>
         | 
| 7 | 
            +
            - "<carmen@whats-your.name>"
         | 
| 9 8 | 
             
            autorequire: 
         | 
| 10 9 | 
             
            bindir: bin
         | 
| 11 10 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2014- | 
| 11 | 
            +
            date: 2014-02-14 00:00:00.000000000 Z
         | 
| 13 12 | 
             
            dependencies:
         | 
| 14 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 14 | 
             
              name: rack
         | 
| 16 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 17 | 
            -
                none: false
         | 
| 18 16 | 
             
                requirements:
         | 
| 19 | 
            -
                - -  | 
| 17 | 
            +
                - - ">="
         | 
| 20 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 21 19 | 
             
                    version: '0'
         | 
| 22 20 | 
             
              type: :runtime
         | 
| 23 21 | 
             
              prerelease: false
         | 
| 24 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 25 | 
            -
                none: false
         | 
| 26 23 | 
             
                requirements:
         | 
| 27 | 
            -
                - -  | 
| 24 | 
            +
                - - ">="
         | 
| 28 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 29 26 | 
             
                    version: '0'
         | 
| 30 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 31 28 | 
             
              name: thin
         | 
| 32 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 33 | 
            -
                none: false
         | 
| 34 30 | 
             
                requirements:
         | 
| 35 | 
            -
                - -  | 
| 31 | 
            +
                - - ">="
         | 
| 36 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 37 33 | 
             
                    version: '0'
         | 
| 38 34 | 
             
              type: :runtime
         | 
| 39 35 | 
             
              prerelease: false
         | 
| 40 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 41 | 
            -
                none: false
         | 
| 42 37 | 
             
                requirements:
         | 
| 43 | 
            -
                - -  | 
| 38 | 
            +
                - - ">="
         | 
| 44 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 45 40 | 
             
                    version: '0'
         | 
| 46 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 47 42 | 
             
              name: nokogiri
         | 
| 48 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 49 | 
            -
                none: false
         | 
| 50 44 | 
             
                requirements:
         | 
| 51 | 
            -
                - -  | 
| 45 | 
            +
                - - ">="
         | 
| 52 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 53 47 | 
             
                    version: '0'
         | 
| 54 48 | 
             
              type: :runtime
         | 
| 55 49 | 
             
              prerelease: false
         | 
| 56 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 57 | 
            -
                none: false
         | 
| 58 51 | 
             
                requirements:
         | 
| 59 | 
            -
                - -  | 
| 52 | 
            +
                - - ">="
         | 
| 60 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 54 | 
             
                    version: '0'
         | 
| 62 55 | 
             
            description: www-server
         | 
| @@ -68,75 +61,64 @@ extra_rdoc_files: [] | |
| 68 61 | 
             
            files:
         | 
| 69 62 | 
             
            - bin/infod
         | 
| 70 63 | 
             
            - infod.rb
         | 
| 71 | 
            -
            - infod/audio.rb
         | 
| 72 | 
            -
            - infod/fs.rb
         | 
| 73 | 
            -
            - infod/csv.rb
         | 
| 74 | 
            -
            - infod/grep.rb
         | 
| 75 | 
            -
            - infod/microblog.rb
         | 
| 76 | 
            -
            - infod/forum.rb
         | 
| 77 | 
            -
            - infod/graph.rb
         | 
| 78 | 
            -
            - infod/sh.rb
         | 
| 79 | 
            -
            - infod/POST.rb
         | 
| 80 | 
            -
            - infod/webid.rb
         | 
| 81 64 | 
             
            - infod/404.rb
         | 
| 82 | 
            -
            - infod/ | 
| 65 | 
            +
            - infod/500.rb
         | 
| 83 66 | 
             
            - infod/GET.rb
         | 
| 84 | 
            -
            - infod/constants.rb
         | 
| 85 | 
            -
            - infod/infod.rb
         | 
| 86 67 | 
             
            - infod/HTTP.rb
         | 
| 87 | 
            -
            - infod/ | 
| 88 | 
            -
            - infod/ | 
| 89 | 
            -
            - infod/ | 
| 90 | 
            -
            - infod/ | 
| 91 | 
            -
            - infod/html.rb
         | 
| 92 | 
            -
            - infod/threads.rb
         | 
| 93 | 
            -
            - infod/500.rb
         | 
| 68 | 
            +
            - infod/POST.rb
         | 
| 69 | 
            +
            - infod/audio.rb
         | 
| 70 | 
            +
            - infod/blog.rb
         | 
| 71 | 
            +
            - infod/cal.rb
         | 
| 94 72 | 
             
            - infod/code.rb
         | 
| 95 | 
            -
            - infod/ | 
| 96 | 
            -
            - infod/ | 
| 73 | 
            +
            - infod/constants.rb
         | 
| 74 | 
            +
            - infod/csv.rb
         | 
| 75 | 
            +
            - infod/edit.rb
         | 
| 76 | 
            +
            - infod/facets.rb
         | 
| 97 77 | 
             
            - infod/feed.rb
         | 
| 98 | 
            -
            - infod/ | 
| 78 | 
            +
            - infod/forum.rb
         | 
| 79 | 
            +
            - infod/fs.rb
         | 
| 80 | 
            +
            - infod/graph.rb
         | 
| 81 | 
            +
            - infod/grep.rb
         | 
| 99 82 | 
             
            - infod/groonga.rb
         | 
| 100 | 
            -
            - infod/ | 
| 101 | 
            -
            - infod/ | 
| 83 | 
            +
            - infod/histogram.rb
         | 
| 84 | 
            +
            - infod/html.rb
         | 
| 102 85 | 
             
            - infod/image.rb
         | 
| 103 | 
            -
            - infod/ | 
| 104 | 
            -
            - infod/ | 
| 105 | 
            -
            - infod/ | 
| 106 | 
            -
            - infod/ | 
| 107 | 
            -
            - infod/ | 
| 108 | 
            -
            - infod/ | 
| 109 | 
            -
            - infod/ | 
| 86 | 
            +
            - infod/index.rb
         | 
| 87 | 
            +
            - infod/infod.rb
         | 
| 88 | 
            +
            - infod/lambda.rb
         | 
| 89 | 
            +
            - infod/ls.rb
         | 
| 90 | 
            +
            - infod/mail.rb
         | 
| 91 | 
            +
            - infod/man.rb
         | 
| 92 | 
            +
            - infod/microblog.rb
         | 
| 110 93 | 
             
            - infod/mime.rb
         | 
| 111 94 | 
             
            - infod/names.rb
         | 
| 112 | 
            -
            - infod/ | 
| 113 | 
            -
            - infod/ | 
| 114 | 
            -
            - infod/ | 
| 95 | 
            +
            - infod/rdf.rb
         | 
| 96 | 
            +
            - infod/schema.rb
         | 
| 97 | 
            +
            - infod/text.rb
         | 
| 98 | 
            +
            - infod/threads.rb
         | 
| 115 99 | 
             
            - infod/time.rb
         | 
| 116 | 
            -
            - infod/lambda.rb
         | 
| 117 100 | 
             
            homepage: http://whats-your.name/www/
         | 
| 118 101 | 
             
            licenses:
         | 
| 119 102 | 
             
            - Unlicense
         | 
| 103 | 
            +
            metadata: {}
         | 
| 120 104 | 
             
            post_install_message: 
         | 
| 121 105 | 
             
            rdoc_options: []
         | 
| 122 106 | 
             
            require_paths:
         | 
| 123 | 
            -
            - .
         | 
| 107 | 
            +
            - "."
         | 
| 124 108 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 125 | 
            -
              none: false
         | 
| 126 109 | 
             
              requirements:
         | 
| 127 | 
            -
              - -  | 
| 110 | 
            +
              - - ">="
         | 
| 128 111 | 
             
                - !ruby/object:Gem::Version
         | 
| 129 112 | 
             
                  version: '0'
         | 
| 130 113 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 131 | 
            -
              none: false
         | 
| 132 114 | 
             
              requirements:
         | 
| 133 | 
            -
              - -  | 
| 115 | 
            +
              - - ">="
         | 
| 134 116 | 
             
                - !ruby/object:Gem::Version
         | 
| 135 117 | 
             
                  version: '0'
         | 
| 136 118 | 
             
            requirements: []
         | 
| 137 119 | 
             
            rubyforge_project: 
         | 
| 138 | 
            -
            rubygems_version:  | 
| 120 | 
            +
            rubygems_version: 2.2.0
         | 
| 139 121 | 
             
            signing_key: 
         | 
| 140 | 
            -
            specification_version:  | 
| 122 | 
            +
            specification_version: 4
         | 
| 141 123 | 
             
            summary: www-server
         | 
| 142 124 | 
             
            test_files: []
         |