├── Gemfile ├── .gitignore ├── maps ├── new_york │ ├── bower_components │ │ └── mustache.js │ │ │ ├── spec │ │ │ └── _files │ │ │ │ ├── bom_as_whitespace.mustache │ │ │ │ ├── bom_as_whitespace.txt │ │ │ │ └── bom_as_whitespace.js │ │ │ ├── wrappers │ │ │ ├── mootools │ │ │ │ ├── mustache.js.pre │ │ │ │ └── mustache.js.post │ │ │ ├── yui3 │ │ │ │ ├── mustache.js.pre │ │ │ │ └── mustache.js.post │ │ │ ├── dojo │ │ │ │ ├── mustache.js.post │ │ │ │ └── mustache.js.pre │ │ │ ├── jquery │ │ │ │ ├── mustache.js.pre │ │ │ │ └── mustache.js.post │ │ │ └── qooxdoo │ │ │ │ ├── mustache.js.post │ │ │ │ └── mustache.js.pre │ │ │ ├── bower.json │ │ │ ├── mustache.js.nuspec │ │ │ ├── .bower.json │ │ │ ├── hooks │ │ │ ├── install-hooks.sh │ │ │ └── pre-commit │ │ │ ├── LICENSE │ │ │ ├── MIGRATING.md │ │ │ ├── package.json │ │ │ ├── Rakefile │ │ │ ├── bin │ │ │ └── mustache │ │ │ ├── mustache.min.js │ │ │ ├── CHANGELOG.md │ │ │ ├── README.md │ │ │ └── mustache.js │ ├── bower.json │ ├── run.rb │ └── index.html ├── denver │ ├── output │ │ └── output_2016-05-13_07-30-00_08-00-00_bus.geojson │ └── run_denver.rb ├── new_york_cartodb │ └── index.html └── new_york_mapbox_js │ ├── run.rb │ └── index.html ├── Gemfile.lock ├── LICENSE └── README.md /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | ruby "2.3.0" 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | transitland.log 3 | transitland.db 4 | -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/spec/_files/bom_as_whitespace.mustache: -------------------------------------------------------------------------------- 1 | {{tag}} -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/spec/_files/bom_as_whitespace.txt: -------------------------------------------------------------------------------- 1 | Tag name w/o BOM -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/wrappers/mootools/mustache.js.pre: -------------------------------------------------------------------------------- 1 | (function(){ 2 | 3 | -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/wrappers/yui3/mustache.js.pre: -------------------------------------------------------------------------------- 1 | YUI.add("mustache", function(Y) { 2 | -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/wrappers/yui3/mustache.js.post: -------------------------------------------------------------------------------- 1 | 2 | Y.mustache = Mustache.render; 3 | 4 | }, "0"); 5 | -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/wrappers/dojo/mustache.js.post: -------------------------------------------------------------------------------- 1 | 2 | dojox.mustache = dojo.hitch(Mustache, "render"); 3 | 4 | })(); -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/spec/_files/bom_as_whitespace.js: -------------------------------------------------------------------------------- 1 | var bom_as_whitespace = {'tag': 'Tag name w/o BOM', '\uFEFFtag': 'Tag name with BOM'}; -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | 5 | PLATFORMS 6 | ruby 7 | 8 | DEPENDENCIES 9 | 10 | BUNDLED WITH 11 | 1.11.2 12 | -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/wrappers/mootools/mustache.js.post: -------------------------------------------------------------------------------- 1 | 2 | Object.implement('mustache', function(view, partials){ 3 | return Mustache.render(view, this, partials); 4 | }); 5 | })(); 6 | -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/wrappers/jquery/mustache.js.pre: -------------------------------------------------------------------------------- 1 | /* 2 | Shameless port of a shameless port 3 | @defunkt => @janl => @aq 4 | 5 | See http://github.com/defunkt/mustache for more info. 6 | */ 7 | 8 | ;(function($) { 9 | 10 | -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/wrappers/qooxdoo/mustache.js.post: -------------------------------------------------------------------------------- 1 | /** 2 | * Above is the original mustache code. 3 | */ 4 | 5 | // EXPOSE qooxdoo variant 6 | qx.bom.Template.version = this.Mustache.version; 7 | qx.bom.Template.render = this.Mustache.render; 8 | 9 | }).call({}); -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/wrappers/dojo/mustache.js.pre: -------------------------------------------------------------------------------- 1 | /* 2 | Shameless port of a shameless port 3 | @defunkt => @janl => @aq => @voodootikigod 4 | 5 | See http://github.com/defunkt/mustache for more info. 6 | */ 7 | 8 | dojo.provide("dojox.mustache._base"); 9 | (function(){ 10 | -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/wrappers/jquery/mustache.js.post: -------------------------------------------------------------------------------- 1 | $.mustache = function (template, view, partials) { 2 | return Mustache.render(template, view, partials); 3 | }; 4 | 5 | $.fn.mustache = function (view, partials) { 6 | return $(this).map(function (i, elm) { 7 | var template = $.trim($(elm).html()); 8 | var output = $.mustache(template, view, partials); 9 | return $(output).get(); 10 | }); 11 | }; 12 | 13 | })(jQuery); 14 | -------------------------------------------------------------------------------- /maps/new_york/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "new_york", 3 | "version": "0.0.0", 4 | "homepage": "https://github.com/tyleragreen/frequency-visualization", 5 | "authors": [ 6 | "tyleragreen " 7 | ], 8 | "description": "", 9 | "main": "", 10 | "moduleType": [], 11 | "license": "MIT", 12 | "ignore": [ 13 | "**/.*", 14 | "node_modules", 15 | "bower_components", 16 | "test", 17 | "tests" 18 | ], 19 | "dependencies": { 20 | "mustache.js": "mustache#~2.2.1" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mustache.js", 3 | "main": "mustache.js", 4 | "homepage": "https://github.com/janl/mustache.js", 5 | "authors": [ 6 | "mustache.js Authors " 7 | ], 8 | "description": "Logic-less {{mustache}} templates with JavaScript", 9 | "keywords": ["mustache", "template", "templates", "ejs"], 10 | "moduleType": [ 11 | "amd", 12 | "globals", 13 | "node" 14 | ], 15 | "license": "MIT", 16 | "ignore": [ 17 | "**/.*", 18 | "test" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/mustache.js.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | mustache.js 5 | 2.2.1 6 | mustache.js Authors 7 | https://github.com/janl/mustache.js/blob/master/LICENSE 8 | http://mustache.github.com/ 9 | false 10 | Logic-less templates in JavaScript. 11 | 12 | mustache template templates javascript 13 | 14 | -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mustache.js", 3 | "main": "mustache.js", 4 | "homepage": "https://github.com/janl/mustache.js", 5 | "authors": [ 6 | "mustache.js Authors " 7 | ], 8 | "description": "Logic-less {{mustache}} templates with JavaScript", 9 | "keywords": [ 10 | "mustache", 11 | "template", 12 | "templates", 13 | "ejs" 14 | ], 15 | "moduleType": [ 16 | "amd", 17 | "globals", 18 | "node" 19 | ], 20 | "license": "MIT", 21 | "ignore": [ 22 | "**/.*", 23 | "test" 24 | ], 25 | "version": "2.2.1", 26 | "_release": "2.2.1", 27 | "_resolution": { 28 | "type": "version", 29 | "tag": "v2.2.1", 30 | "commit": "cd06b22dabdaeffe3e4c74ee02bd492a11bbb740" 31 | }, 32 | "_source": "https://github.com/janl/mustache.js.git", 33 | "_target": "~2.2.1", 34 | "_originalSource": "mustache", 35 | "_direct": true 36 | } -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/hooks/install-hooks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | HOOK_NAMES="pre-commit" 4 | HOOK_DIR=$(git rev-parse --show-toplevel)/.git/hooks 5 | INSTALL_DIR=$(git rev-parse --show-toplevel)/hooks 6 | COLOR_GREEN=`tput setaf 2` 7 | COLOR_RESET=`tput sgr0` 8 | 9 | for hook in $HOOK_NAMES; do 10 | echo -n "Installing $hook hook..." 11 | # If the hook already exists, is executable, and is not a symlink 12 | if [ ! -h $HOOK_DIR/$hook -a -x $HOOK_DIR/$hook ]; then 13 | echo -n " Hook already exists, saving old hook backup at $HOOK_DIR/$hook.local..." 14 | mv $HOOK_DIR/$hook $HOOK_DIR/$hook.local 15 | fi 16 | # create the symlink, overwriting the file if it exists 17 | # probably the only way this would happen is if you're using an old version of git 18 | # -- back when the sample hooks were not executable, instead of being named ____.sample 19 | echo -n " Creating symlink..." 20 | ln -s -f $INSTALL_DIR/$hook $HOOK_DIR 21 | echo "${COLOR_GREEN} Done! ✓${COLOR_RESET}" 22 | done -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016 Tyler A. Green 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | 9 | -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2009 Chris Wanstrath (Ruby) 4 | Copyright (c) 2010-2014 Jan Lehnardt (JavaScript) 5 | Copyright (c) 2010-2015 The mustache.js community 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 8 | 9 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 12 | -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/MIGRATING.md: -------------------------------------------------------------------------------- 1 | # Migrating Guide 2 | 3 | ## Moving to mustache.js v2 4 | 5 | ### Overview 6 | 7 | mustache.js v2 introduces a bug fix that breaks compatibility with older versions: fixing null and undefined lookup. 8 | 9 | When mustache.js tries to render a variable `{{name}}`, it executes a `lookup` function to figure out which value it should render. This function looks up the value for the key `name` in the current context, and if there is no such key in the current context it looks up the parent contexts recursively. 10 | 11 | Value lookup should stop whenever the key exists in the context. However, due to a bug, this was not happening when the value was `null` or `undefined` even though the key existed in the context. 12 | 13 | Here's a simple example of the same template rendered with both mustache.js v1 and v2: 14 | 15 | Template: 16 | ```mustache 17 | {{#friends}} 18 | {{name}}'s twitter is: {{twitter}} 19 | {{/friends}} 20 | ``` 21 | 22 | View: 23 | ```json 24 | { 25 | "name": "David", 26 | "twitter": "@dasilvacontin", 27 | "friends": [ 28 | { 29 | "name": "Phillip", 30 | "twitter": "@phillipjohnsen" 31 | }, 32 | { 33 | "name": "Jan", 34 | "twitter": null 35 | } 36 | ] 37 | } 38 | ``` 39 | 40 | Rendered using mustache.js v1: 41 | ```text 42 | Phillip's twitter is: @phillipjohnsen 43 | Jan's twitter is: @dasilvacontin 44 | ``` 45 | 46 | Rendered using mustache.js v2: 47 | ```text 48 | Phillip's twitter is: @phillipjohnsen 49 | Jan's twitter is: 50 | ``` -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mustache", 3 | "version": "2.2.1", 4 | "description": "Logic-less {{mustache}} templates with JavaScript", 5 | "author": "mustache.js Authors ", 6 | "homepage": "https://github.com/janl/mustache.js", 7 | "repository": { 8 | "type": "git", 9 | "url": "https://github.com/janl/mustache.js.git" 10 | }, 11 | "keywords": [ 12 | "mustache", 13 | "template", 14 | "templates", 15 | "ejs" 16 | ], 17 | "main": "./mustache.js", 18 | "bin": { 19 | "mustache": "./bin/mustache" 20 | }, 21 | "files": [ 22 | "mustache.js", 23 | "mustache.min.js", 24 | "bin", 25 | "wrappers", 26 | "LICENSE" 27 | ], 28 | "volo": { 29 | "url": "https://raw.github.com/janl/mustache.js/{version}/mustache.js" 30 | }, 31 | "engines": { 32 | "npm": ">=1.4.0" 33 | }, 34 | "scripts": { 35 | "pretest": "eslint mustache.js bin/mustache", 36 | "test": "mocha --reporter spec test/*-test.js", 37 | "test-render": "mocha --reporter spec test/render-test", 38 | "pre-test-browser": "node test/create-browser-suite.js", 39 | "test-browser": "npm run pre-test-browser && zuul -- test/context-test.js test/parse-test.js test/scanner-test.js test/render-test-browser.js", 40 | "test-browser-local": "npm run pre-test-browser && zuul --local 8080 -- test/context-test.js test/scanner-test.js test/parse-test.js test/render-test-browser.js" 41 | }, 42 | "devDependencies": { 43 | "chai": "^3.4.0", 44 | "eslint": "^1.7.3", 45 | "mocha": "^2.1.0", 46 | "zuul": "^3.7.0" 47 | }, 48 | "spm": { 49 | "main": "mustache.js", 50 | "ignore": [ 51 | "test", 52 | "wrappers" 53 | ] 54 | }, 55 | "license": "MIT" 56 | } 57 | -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/Rakefile: -------------------------------------------------------------------------------- 1 | require 'rake' 2 | require 'rake/clean' 3 | 4 | task :default => :test 5 | 6 | def minified_file 7 | ENV['FILE'] || 'mustache.min.js' 8 | end 9 | 10 | task :install_mocha do 11 | sh "npm install -g mocha" if `which mocha`.empty? 12 | end 13 | 14 | task :install_uglify do 15 | sh "npm install -g uglify-js" if `which uglifyjs`.empty? 16 | end 17 | 18 | task :install_jshint do 19 | sh "npm install -g jshint" if `which jshint`.empty? 20 | end 21 | 22 | desc "Run all tests" 23 | task :test => :install_mocha do 24 | sh "mocha test" 25 | end 26 | 27 | desc "Make a compressed build in #{minified_file}" 28 | task :minify => :install_uglify do 29 | sh "uglifyjs mustache.js > #{minified_file}" 30 | end 31 | 32 | desc "Run JSHint" 33 | task :hint => :install_jshint do 34 | sh "jshint mustache.js" 35 | end 36 | 37 | # Creates a task that uses the various template wrappers to make a wrapped 38 | # output file. There is some extra complexity because Dojo and YUI use 39 | # different final locations. 40 | def templated_build(name, final_location=nil) 41 | short = name.downcase 42 | source = File.join("wrappers", short) 43 | dependencies = ["mustache.js"] + Dir.glob("#{source}/*.tpl.*") 44 | target_js = final_location.nil? ? "#{short}.mustache.js" : "mustache.js" 45 | 46 | desc "Package for #{name}" 47 | task short.to_sym => dependencies do 48 | puts "Packaging for #{name}" 49 | 50 | mkdir_p final_location unless final_location.nil? 51 | 52 | sources = [ "#{source}/mustache.js.pre", 'mustache.js', "#{source}/mustache.js.post" ] 53 | relative_name = "#{final_location || '.'}/#{target_js}" 54 | 55 | open(relative_name, 'w') do |f| 56 | sources.each {|source| f << File.read(source) } 57 | end 58 | 59 | puts "Done, see #{relative_name}" 60 | end 61 | 62 | CLEAN.include(final_location.nil? ? target_js : final_location) 63 | end 64 | 65 | templated_build "jQuery" 66 | templated_build "MooTools" 67 | templated_build "Dojo", "dojox/string" 68 | templated_build "YUI3", "yui3/mustache" 69 | templated_build "qooxdoo" 70 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | *WARNING*: This branch depends on changes to the [Transitland Ruby client](https://github.com/transitland/transitland-ruby-client) gem that have not yet been pushed to RubyGems.org. A Gemfile will be provided once the library changes have been published. For now, the client can be cloned and installed locally. 2 | 3 | # New York City Transit Frequency Visualization 4 | 5 | This script and library uses the [Transitland Datastore](https://github.com/transitland/transitland-datastore) to create a transit frequency visualization for the five boroughs of New York City. The results are visible in `index.html` using [Mapbox](https://github.com/mapbox). 6 | 7 | ## Run Instructions 8 | No gems are required, so simply run `ruby run.rb`. 9 | 10 | ## Output 11 | Two GeoJSON files are produced for each run, one for subway routes and one for bus (and a few ferry) routes for the date, time, and location specified in `run.rb`. The output follows the [Mapbox simplestyle-spec](https://github.com/mapbox/simplestyle-spec/tree/master/1.1.0) for ease of display. 12 | 13 | The four GeoJSON files that are called by `new_york.html` are in the `output` directory. GitHub uses Mapbox, so the intended styling can be seen when previewing these files in GitHub. 14 | 15 | ## Notes 16 | The TransitlandAPIReader uses a local caching mechanism to store the JSON results of queries to the [Transitland Datastore](https://github.com/transitland/transitland-datastore). A JSON file is created on your local system for each API 'endpoint' and is reused when queried on future runs, given that endpoint's requested options are the same. 17 | 18 | ## Potential Improvements 19 | - The TransitlandAPIReader class could be generalized into a gem with a decent test suite, similar to one [Transitland used to maintain](https://github.com/transitland/transitland-ruby-client). 20 | - The run.rb script could take a job spec input to produce GeoJSON files for multiple days and cities in a single run. 21 | - The Mapbox front-end could be used to visualize any arbitrary transit system’s GTFS shape data. This would likely be done using a live Ruby on Rails back-end, rather than the offline Ruby script I am currently using. 22 | -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/hooks/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require 'json' 4 | 5 | def puts_c(color, str) 6 | puts "\x1b[#{color}m#{str}\x1b[0m" 7 | end 8 | 9 | class Source 10 | attr_accessor :path, :v_regex 11 | 12 | def initialize(path, v_regex) 13 | @path = path 14 | @v_regex = v_regex 15 | end 16 | end 17 | 18 | class Bumper 19 | attr_accessor :sources, :bumped, :target_v 20 | 21 | def initialize(sources) 22 | @sources = sources 23 | end 24 | 25 | def start 26 | 27 | # get package.json version 28 | package = JSON.parse File.read 'package.json' 29 | @target_v = package['version'] 30 | 31 | @bumped = false 32 | @sources.each {|source| bump_source(source)} 33 | 34 | # if bumped, do extra stuff and notify the user 35 | if @bumped 36 | 37 | # minify `mustache.js` using the Rakefile task 38 | puts "> minifying `mustache.js`..." 39 | `rake minify` 40 | 41 | # stage files for commit 42 | `git add package.json` 43 | @sources.each {|source| `git add #{source.path}`} 44 | `git add mustache.min.js` 45 | `git commit -m ":ship: bump to version #{@target_v}"` 46 | 47 | # notify codemonkey 48 | puts "staged bumped files and created commit" 49 | puts_c 32, "successfully bumped version to #{@target_v}!" 50 | puts_c 33, "don't forget to `npm publish` and `spm publish`!" 51 | end 52 | 53 | exit 0 54 | end 55 | 56 | def bump_source(source) 57 | file_buffer = File.read source.path 58 | if match = file_buffer.match(source.v_regex) 59 | file_v = match.captures[0] 60 | if @target_v != file_v 61 | did_bump 62 | puts "> bumping version in file '#{source.path}': #{file_v} -> #{@target_v}..." 63 | file_buffer[source.v_regex, 1] = @target_v 64 | File.open(source.path, 'w') { |f| f.write file_buffer } 65 | end 66 | else 67 | puts_c 31, "ERROR: Can't find version in '#{source.path}'" 68 | exit 1 69 | end 70 | end 71 | 72 | def did_bump 73 | if !@bumped 74 | puts 'bump detected!' 75 | if `which uglifyjs`.empty? 76 | puts_c 31, 'you need uglifyjs installed' 77 | puts 'run `sudo npm install -g uglify-js`' 78 | exit 1 79 | end 80 | end 81 | @bumped = true 82 | end 83 | end 84 | 85 | bumper = Bumper.new([ 86 | Source.new('mustache.js', /mustache.version = '([\d\.]*)'/), 87 | Source.new('mustache.js.nuspec', /([\d\.]*)<\/version>/), 88 | ]) 89 | bumper.start 90 | -------------------------------------------------------------------------------- /maps/denver/output/output_2016-05-13_07-30-00_08-00-00_bus.geojson: -------------------------------------------------------------------------------- 1 | {"type":"FeatureCollection","features":[{"type":"Feature","properties":{"origin_onestop_id":"s-9xj64fx880-civiccenter~colfaxandlincoln","destination_onestop_id":"s-9xj64gu6jc-18thandcalifornia","frequency":0.08163265306122448,"trips":2,"stroke-width":2,"stroke":"#fdcc8a","description":"Frequency: 0 trips / hour","title":"Civic Center - Colfax and Lincoln to 18th and California"},"geometry":{"type":"LineString","coordinates":[[-104.986029620867,39.7403826265565],[-104.990246729243,39.7475106005968]]}},{"type":"Feature","properties":{"origin_onestop_id":"s-9xj64gu6jc-18thandcalifornia","destination_onestop_id":"s-9xj64th1bj-denverunionstation","frequency":0.04081632653061224,"trips":1,"stroke-width":2,"stroke":"#fdcc8a","description":"Frequency: 0 trips / hour","title":"18th and California to Denver Union Station"},"geometry":{"type":"LineString","coordinates":[[-104.990246729243,39.7475106005968],[-105.001828978188,39.7543558705845]]}},{"type":"Feature","properties":{"origin_onestop_id":"s-9xj64th1bj-denverunionstation","destination_onestop_id":"s-9xj64u7e68-denverbuscenter~greyhound","frequency":0.08163265306122448,"trips":2,"stroke-width":2,"stroke":"#fdcc8a","description":"Frequency: 0 trips / hour","title":"Denver Union Station to Denver Bus Center - Greyhound"},"geometry":{"type":"LineString","coordinates":[[-105.001828978188,39.7543558705845],[-104.991418,39.750467]]}},{"type":"Feature","properties":{"origin_onestop_id":"s-9xj64u7e68-denverbuscenter~greyhound","destination_onestop_id":"s-9xj64th1bj-denverunionstation","frequency":0.04081632653061224,"trips":1,"stroke-width":2,"stroke":"#fdcc8a","description":"Frequency: 0 trips / hour","title":"Denver Bus Center - Greyhound to Denver Union Station"},"geometry":{"type":"LineString","coordinates":[[-104.991418,39.750467],[-105.001828978188,39.7543558705845]]}},{"type":"Feature","properties":{"origin_onestop_id":"s-9xj64th1bj-denverunionstation","destination_onestop_id":"s-9xj3spd8dn-rtd~colorado~i~25stationgatee","frequency":0.04081632653061224,"trips":1,"stroke-width":2,"stroke":"#fdcc8a","description":"Frequency: 0 trips / hour","title":"Denver Union Station to RTD - Colorado & I-25 Station Gate E"},"geometry":{"type":"LineString","coordinates":[[-105.001828978188,39.7543558705845],[-104.937883063824,39.6799907496565]]}},{"type":"Feature","properties":{"origin_onestop_id":"s-9xj64th1bj-denverunionstation","destination_onestop_id":"s-9xjmfu0dd3-loveland~greeleypark~ride","frequency":0.04081632653061224,"trips":1,"stroke-width":2,"stroke":"#fdcc8a","description":"Frequency: 0 trips / hour","title":"Denver Union Station to Loveland/Greeley Park & Ride"},"geometry":{"type":"LineString","coordinates":[[-105.001828978188,39.7543558705845],[-104.995545680165,40.4081511533595]]}}]} -------------------------------------------------------------------------------- /maps/new_york/bower_components/mustache.js/bin/mustache: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var fs = require('fs'), 4 | path = require('path'); 5 | 6 | var Mustache = require('..'); 7 | var pkg = require('../package'); 8 | var partials = {}; 9 | 10 | var partialsPaths = []; 11 | var partialArgIndex = -1; 12 | 13 | while ((partialArgIndex = process.argv.indexOf('-p')) > -1) { 14 | partialsPaths.push(process.argv.splice(partialArgIndex, 2)[1]); 15 | } 16 | 17 | var viewArg = process.argv[2]; 18 | var templateArg = process.argv[3]; 19 | 20 | if (hasVersionArg()) { 21 | return console.log(pkg.version); 22 | } 23 | 24 | if (!templateArg || !viewArg) { 25 | console.error('Syntax: mustache