You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by cu...@apache.org on 2017/04/22 21:46:49 UTC

[whimsy] branch master updated: Transform csv docket to json

This is an automated email from the ASF dual-hosted git repository.

curcuru pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git

The following commit(s) were added to refs/heads/master by this push:
       new  bfeb231   Transform csv docket to json
bfeb231 is described below

commit bfeb23138b62ab9cbcd060d2881817fdb4bd9866
Author: Shane Curcuru <as...@shanecurcuru.org>
AuthorDate: Sat Apr 22 17:46:44 2017 -0400

    Transform csv docket to json
    
    Transform docket.csv, which changes rarely, into a JSON file for use in
    other scripts/websites
---
 www/test/test.cgi | 46 +++++++++++++++++++++-------------------------
 1 file changed, 21 insertions(+), 25 deletions(-)

diff --git a/www/test/test.cgi b/www/test/test.cgi
index 529ca51..471f213 100755
--- a/www/test/test.cgi
+++ b/www/test/test.cgi
@@ -1,5 +1,5 @@
 #!/usr/bin/env ruby
-# Test file for various experiments
+# Transform docket.csv into JSON structure for other uses
 $LOAD_PATH.unshift File.realpath(File.expand_path('../../../lib', __FILE__))
 require 'csv'
 require 'json'
@@ -9,32 +9,28 @@ require 'wunderbar/bootstrap'
 require 'net/http'
 require 'whimsy/asf/themes'
 
-PAGETITLE = 'Listing of Apache Registered Trademarks'
+MNAM = 'TrademarkName'
 brand_dir = ASF::SVN['private/foundation/Brand']
-
-_json do
-  docket = CSV.read("#{brand_dir}/docket.csv", headers:true)
-  docketcols = %w[ TrademarkName TrademarkStatus CountryName Class RegNumber ]
-  dockethash = {}
-  # Create hash based on pmc with aggregated data
-  docket.each do |r|
-    r << ['pmc', r['TrademarkName'].downcase.sub('.org','').sub(' & design','')]
-    key = r['pmc'].to_sym
-    if dockethash.key?(key)
-      # Aggregate specific values
-      docketcols.each do |col|
-        dockethash[key][col] |= [r[col]]
-      end
-
+csv = CSV.read("#{brand_dir}/docket.csv", headers:true)
+docket = {}
+csv.each do |r|
+  r << ['pmc', r[MNAM].downcase.sub('.org','').sub(' & design','')]
+  key = r['pmc'].to_sym
+  mrk = {}
+  %w[ TrademarkStatus CountryName Class AppNumber RegNumber ClassGoods ].each do |col|
+    mrk[col] = r[col]
+  end  
+  if not docket.key?(key)
+    docket[key] = { r[MNAM] => [mrk] }
+  else
+    if not (docket[key]).key?(r[MNAM])
+      docket[key][r[MNAM]] = [mrk]
     else
-      # Create first copy of the pmc
-      dockethash[key] = {}
-      docketcols.each do |col|
-        dockethash[key][col] = [r[col]]
-      end
-      # Hack: only use first Goods
-      dockethash[key]['ClassGoods'] = r['ClassGoods']
+      docket[key][r[MNAM]] << mrk      
     end
   end
-  dockethash
+end
+
+_json do
+  docket
 end

-- 
To stop receiving notification emails like this one, please contact
['"commits@whimsical.apache.org" <co...@whimsical.apache.org>'].