undergrounder 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +17 -0
- data/.rspec +2 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +21 -0
- data/Rakefile +1 -0
- data/assets/test_assets.yml +34 -0
- data/assets/tube_list.yml +435 -0
- data/bin/undergrounder +30 -0
- data/lib/undergrounder.rb +167 -0
- data/lib/undergrounder/tube_scraper.rb +52 -0
- data/lib/undergrounder/version.rb +3 -0
- data/spec/spec_helper.rb +10 -0
- data/spec/undergrounder_spec.rb +115 -0
- data/undergrounder.gemspec +24 -0
- data/vendor/web_finder/.components +9 -0
- data/vendor/web_finder/.gitignore +8 -0
- data/vendor/web_finder/Gemfile +37 -0
- data/vendor/web_finder/Rakefile +6 -0
- data/vendor/web_finder/app/app.rb +10 -0
- data/vendor/web_finder/app/controllers/tube_planner.rb +17 -0
- data/vendor/web_finder/app/views/tube_planner/index.haml +9 -0
- data/vendor/web_finder/config.ru +9 -0
- data/vendor/web_finder/config/apps.rb +36 -0
- data/vendor/web_finder/config/boot.rb +34 -0
- data/vendor/web_finder/config/database.rb +58 -0
- data/vendor/web_finder/public/favicon.ico +0 -0
- metadata +140 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
WebFinder::App.controllers :tube_planner do
|
2
|
+
|
3
|
+
get :index, :map => '/' do
|
4
|
+
render 'tube_planner/index'
|
5
|
+
end
|
6
|
+
|
7
|
+
post :index, :map => "/" do
|
8
|
+
@result = begin
|
9
|
+
Undergrounder.start!(params[:source], params[:destination], true)
|
10
|
+
rescue Exception => e
|
11
|
+
"Please insert a valid origin or destination ( origin was #{params[:origin]}, destination was #{params[:destination]})"
|
12
|
+
end
|
13
|
+
|
14
|
+
render 'tube_planner/index'
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
##
|
2
|
+
# This file mounts each app in the Padrino project to a specified sub-uri.
|
3
|
+
# You can mount additional applications using any of these commands below:
|
4
|
+
#
|
5
|
+
# Padrino.mount('blog').to('/blog')
|
6
|
+
# Padrino.mount('blog', :app_class => 'BlogApp').to('/blog')
|
7
|
+
# Padrino.mount('blog', :app_file => 'path/to/blog/app.rb').to('/blog')
|
8
|
+
#
|
9
|
+
# You can also map apps to a specified host:
|
10
|
+
#
|
11
|
+
# Padrino.mount('Admin').host('admin.example.org')
|
12
|
+
# Padrino.mount('WebSite').host(/.*\.?example.org/)
|
13
|
+
# Padrino.mount('Foo').to('/foo').host('bar.example.org')
|
14
|
+
#
|
15
|
+
# Note 1: Mounted apps (by default) should be placed into the project root at '/app_name'.
|
16
|
+
# Note 2: If you use the host matching remember to respect the order of the rules.
|
17
|
+
#
|
18
|
+
# By default, this file mounts the primary app which was generated with this project.
|
19
|
+
# However, the mounted app can be modified as needed:
|
20
|
+
#
|
21
|
+
# Padrino.mount('AppName', :app_file => 'path/to/file', :app_class => 'BlogApp').to('/')
|
22
|
+
#
|
23
|
+
|
24
|
+
##
|
25
|
+
# Setup global project settings for your apps. These settings are inherited by every subapp. You can
|
26
|
+
# override these settings in the subapps as needed.
|
27
|
+
#
|
28
|
+
Padrino.configure_apps do
|
29
|
+
# enable :sessions
|
30
|
+
set :session_secret, '597406e07656b3e19e9794d314b7ec214add4f3fb0328222ca9485df27e96c76'
|
31
|
+
set :protection, true
|
32
|
+
set :protect_from_csrf, true
|
33
|
+
end
|
34
|
+
|
35
|
+
# Mounts the core application for this project
|
36
|
+
Padrino.mount('WebFinder::App', :app_file => Padrino.root('app/app.rb')).to('/')
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# Defines our constants
|
2
|
+
PADRINO_ENV = ENV['PADRINO_ENV'] ||= ENV['RACK_ENV'] ||= 'development' unless defined?(PADRINO_ENV)
|
3
|
+
PADRINO_ROOT = File.expand_path('../..', __FILE__) unless defined?(PADRINO_ROOT)
|
4
|
+
|
5
|
+
# Load our dependencies
|
6
|
+
require 'rubygems' unless defined?(Gem)
|
7
|
+
require 'bundler/setup'
|
8
|
+
Bundler.require(:default, PADRINO_ENV)
|
9
|
+
|
10
|
+
##
|
11
|
+
# ## Enable devel logging
|
12
|
+
#
|
13
|
+
# Padrino::Logger::Config[:development][:log_level] = :devel
|
14
|
+
# Padrino::Logger::Config[:development][:log_static] = true
|
15
|
+
#
|
16
|
+
# ## Configure your I18n
|
17
|
+
#
|
18
|
+
# I18n.default_locale = :en
|
19
|
+
#
|
20
|
+
# ## Configure your HTML5 data helpers
|
21
|
+
#
|
22
|
+
# Padrino::Helpers::TagHelpers::DATA_ATTRIBUTES.push(:dialog)
|
23
|
+
# text_field :foo, :dialog => true
|
24
|
+
# Generates: <input type="text" data-dialog="true" name="foo" />
|
25
|
+
#
|
26
|
+
# ## Add helpers to mailer
|
27
|
+
#
|
28
|
+
# Mail::Message.class_eval do
|
29
|
+
# include Padrino::Helpers::NumberHelpers
|
30
|
+
# include Padrino::Helpers::TranslationHelpers
|
31
|
+
# end
|
32
|
+
|
33
|
+
|
34
|
+
Padrino.load!
|
@@ -0,0 +1,58 @@
|
|
1
|
+
##
|
2
|
+
# You can use other adapters like:
|
3
|
+
#
|
4
|
+
# ActiveRecord::Base.configurations[:development] = {
|
5
|
+
# :adapter => 'mysql2',
|
6
|
+
# :encoding => 'utf8',
|
7
|
+
# :reconnect => true,
|
8
|
+
# :database => 'your_database',
|
9
|
+
# :pool => 5,
|
10
|
+
# :username => 'root',
|
11
|
+
# :password => '',
|
12
|
+
# :host => 'localhost',
|
13
|
+
# :socket => '/tmp/mysql.sock'
|
14
|
+
# }
|
15
|
+
#
|
16
|
+
ActiveRecord::Base.configurations[:development] = {
|
17
|
+
:adapter => 'sqlite3',
|
18
|
+
:database => Padrino.root('db', 'web_finder_development.db')
|
19
|
+
|
20
|
+
}
|
21
|
+
|
22
|
+
ActiveRecord::Base.configurations[:production] = {
|
23
|
+
:adapter => 'sqlite3',
|
24
|
+
:database => Padrino.root('db', 'web_finder_production.db')
|
25
|
+
|
26
|
+
}
|
27
|
+
|
28
|
+
ActiveRecord::Base.configurations[:test] = {
|
29
|
+
:adapter => 'sqlite3',
|
30
|
+
:database => Padrino.root('db', 'web_finder_test.db')
|
31
|
+
|
32
|
+
}
|
33
|
+
|
34
|
+
# Setup our logger
|
35
|
+
ActiveRecord::Base.logger = logger
|
36
|
+
|
37
|
+
# Raise exception on mass assignment protection for Active Record models.
|
38
|
+
ActiveRecord::Base.mass_assignment_sanitizer = :strict
|
39
|
+
|
40
|
+
# Log the query plan for queries taking more than this (works
|
41
|
+
# with SQLite, MySQL, and PostgreSQL).
|
42
|
+
ActiveRecord::Base.auto_explain_threshold_in_seconds = 0.5
|
43
|
+
|
44
|
+
# Include Active Record class name as root for JSON serialized output.
|
45
|
+
ActiveRecord::Base.include_root_in_json = false
|
46
|
+
|
47
|
+
# Store the full class name (including module namespace) in STI type column.
|
48
|
+
ActiveRecord::Base.store_full_sti_class = true
|
49
|
+
|
50
|
+
# Use ISO 8601 format for JSON serialized times and dates.
|
51
|
+
ActiveSupport.use_standard_json_time_format = true
|
52
|
+
|
53
|
+
# Don't escape HTML entities in JSON, leave that for the #json_escape helper
|
54
|
+
# if you're including raw JSON in an HTML page.
|
55
|
+
ActiveSupport.escape_html_entities_in_json = false
|
56
|
+
|
57
|
+
# Now we can establish connection with our db.
|
58
|
+
ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations[Padrino.env])
|
Binary file
|
metadata
ADDED
@@ -0,0 +1,140 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: undergrounder
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Enzo Rivello
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-10-13 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: sinatra
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: padrino
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rspec
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: ruby-debug19
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
description: Simple Implementation of a short path finder for the London Tube
|
79
|
+
email:
|
80
|
+
- vincenzo.rivello@gmail.com
|
81
|
+
executables:
|
82
|
+
- undergrounder
|
83
|
+
extensions: []
|
84
|
+
extra_rdoc_files: []
|
85
|
+
files:
|
86
|
+
- .gitignore
|
87
|
+
- .rspec
|
88
|
+
- Gemfile
|
89
|
+
- LICENSE.txt
|
90
|
+
- README.md
|
91
|
+
- Rakefile
|
92
|
+
- assets/test_assets.yml
|
93
|
+
- assets/tube_list.yml
|
94
|
+
- bin/undergrounder
|
95
|
+
- lib/undergrounder.rb
|
96
|
+
- lib/undergrounder/tube_scraper.rb
|
97
|
+
- lib/undergrounder/version.rb
|
98
|
+
- spec/spec_helper.rb
|
99
|
+
- spec/undergrounder_spec.rb
|
100
|
+
- undergrounder.gemspec
|
101
|
+
- vendor/web_finder/.components
|
102
|
+
- vendor/web_finder/.gitignore
|
103
|
+
- vendor/web_finder/Gemfile
|
104
|
+
- vendor/web_finder/Rakefile
|
105
|
+
- vendor/web_finder/app/app.rb
|
106
|
+
- vendor/web_finder/app/controllers/tube_planner.rb
|
107
|
+
- vendor/web_finder/app/views/tube_planner/index.haml
|
108
|
+
- vendor/web_finder/config.ru
|
109
|
+
- vendor/web_finder/config/apps.rb
|
110
|
+
- vendor/web_finder/config/boot.rb
|
111
|
+
- vendor/web_finder/config/database.rb
|
112
|
+
- vendor/web_finder/public/favicon.ico
|
113
|
+
homepage: https://github.com/enzor/undergrounder
|
114
|
+
licenses: []
|
115
|
+
post_install_message:
|
116
|
+
rdoc_options: []
|
117
|
+
require_paths:
|
118
|
+
- lib
|
119
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
120
|
+
none: false
|
121
|
+
requirements:
|
122
|
+
- - ! '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
126
|
+
none: false
|
127
|
+
requirements:
|
128
|
+
- - ! '>='
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
131
|
+
requirements: []
|
132
|
+
rubyforge_project:
|
133
|
+
rubygems_version: 1.8.24
|
134
|
+
signing_key:
|
135
|
+
specification_version: 3
|
136
|
+
summary: ''
|
137
|
+
test_files:
|
138
|
+
- spec/spec_helper.rb
|
139
|
+
- spec/undergrounder_spec.rb
|
140
|
+
has_rdoc:
|