orochi 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. data/README.textile +1 -0
  2. data/VERSION +1 -1
  3. data/lib/orochi.rb +16 -1
  4. data/lib/orochi/acts_as_routeable.rb +20 -23
  5. data/orochi.gemspec +28 -5
  6. data/spec/{gem → acts_as_routeable}/acts_as_routeable_spec.rb +1 -2
  7. data/spec/helpers/core.rb +27 -1
  8. data/spec/helpers/debug.log +1 -0
  9. data/spec/rake/migration_spec.rb +3 -1
  10. data/spec/spec_helper.rb +0 -4
  11. data/spec/staging/gem_test/app/controllers/application_controller.rb +3 -0
  12. data/spec/staging/gem_test/app/helpers/application_helper.rb +2 -0
  13. data/spec/staging/gem_test/app/models/leg.rb +3 -0
  14. data/spec/staging/gem_test/app/models/route.rb +11 -0
  15. data/spec/staging/gem_test/app/models/router.rb +3 -0
  16. data/spec/staging/gem_test/app/models/step.rb +2 -0
  17. data/spec/staging/gem_test/config/application.rb +42 -0
  18. data/spec/staging/gem_test/config/boot.rb +13 -0
  19. data/spec/staging/gem_test/config/environment.rb +5 -0
  20. data/spec/staging/gem_test/config/environments/development.rb +26 -0
  21. data/spec/staging/gem_test/config/environments/production.rb +49 -0
  22. data/spec/staging/gem_test/config/environments/test.rb +35 -0
  23. data/spec/staging/gem_test/config/initializers/backtrace_silencers.rb +7 -0
  24. data/spec/staging/gem_test/config/initializers/inflections.rb +10 -0
  25. data/spec/staging/gem_test/config/initializers/mime_types.rb +5 -0
  26. data/spec/staging/gem_test/config/initializers/secret_token.rb +7 -0
  27. data/spec/staging/gem_test/config/initializers/session_store.rb +8 -0
  28. data/spec/staging/gem_test/config/routes.rb +58 -0
  29. data/spec/staging/gem_test/db/migrate/20110117235527_orochi_migration.rb +33 -0
  30. data/spec/staging/gem_test/db/schema.rb +41 -0
  31. data/spec/staging/gem_test/db/seeds.rb +7 -0
  32. data/spec/staging/gem_test/test/performance/browsing_test.rb +9 -0
  33. data/spec/staging/gem_test/test/test_helper.rb +13 -0
  34. metadata +52 -6
@@ -48,3 +48,4 @@ p. Now you can do some of the following:
48
48
  pre. your_model_instance.polyline # Polyline representation for Google Maps
49
49
  your_model_instance.directions # List of directions
50
50
  your_model_instance.reverse # A creates a router with the reversed address + routes
51
+ your_model_instance.includes?(point_of_interest) # Returns if point of interest is within your route
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.6
1
+ 0.0.7
@@ -1,4 +1,8 @@
1
1
  # TODO make this more "Pragmatic Programmer"
2
+ require 'net/https'
3
+ require 'open-uri'
4
+ require 'json'
5
+
2
6
  if defined?(Rails)
3
7
  require "active_model"
4
8
  require "active_record"
@@ -13,7 +17,18 @@ end
13
17
  module Orochi
14
18
  class GoogleClient
15
19
  def self.request(options = {})
16
- # TODO create request string, make request, return JSON
20
+ request_str = "http://maps.googleapis.com/maps/api/directions/json?"
21
+
22
+ # TODO make settings for default request
23
+ request_str += "sensor=false&"
24
+ request_str += "alternatives=true&"
25
+
26
+ options.each do |k, v|
27
+ request_str += "&#{k}=#{CGI::escape(v)}"
28
+ end
29
+
30
+ response = open(request_str)
31
+ return JSON.parse(response.read)
17
32
  end
18
33
  end
19
34
  end
@@ -1,5 +1,3 @@
1
- require 'net/https'
2
- require 'open-uri'
3
1
  require 'json'
4
2
  require 'googlemaps_polyline/version'
5
3
  require 'googlemaps_polyline/core'
@@ -21,27 +19,13 @@ module Orochi
21
19
  end
22
20
 
23
21
  module InstanceMethods
24
- def request_routes
25
- request_str = "http://maps.googleapis.com/maps/api/directions/json?sensor=false&"
26
-
27
- alternatives = true
28
- # TODO accept hash of options, build request string
29
- alt = "alternatives=#{(alternatives)? true : false}&"
30
- request_str += alt
31
-
32
- start = self.router.start
33
- request_str += "origin=#{CGI::escape(start)}&"
34
-
35
- stop = self.router.stop
36
- request_str += "destination=#{CGI::escape(stop)}"
37
-
38
- response = open(request_str)
39
- return JSON.parse(response.read)
22
+ def request_routes(options)
23
+ Orochi::GoogleClient.request(options)
40
24
  end
41
25
 
42
26
 
43
27
  def route!
44
- json = self.request_routes
28
+ json = self.request_routes({:origin => self.router.start, :destination => self.router.stop})
45
29
  json_routes = json["routes"]
46
30
  json_routes.each do |route|
47
31
  r = self.router.routes.create!
@@ -56,10 +40,8 @@ module Orochi
56
40
  leg_levels = leg_step["polyline"]["levels"]
57
41
  polyline_data = GoogleMapsPolyline.decode_polyline(leg_points, leg_levels)
58
42
 
59
- # TODO use inject
60
- polyline = []
61
- polyline_data.collect do |point|
62
- polyline.push([point[0], point[1]])
43
+ polyline = polyline_data.inject([]) do |acc, point|
44
+ acc << ([point[0], point[1]])
63
45
  end
64
46
 
65
47
  s.polyline_json = polyline.inspect
@@ -75,12 +57,17 @@ module Orochi
75
57
  end
76
58
 
77
59
  def set_endpoints!(start, stop)
60
+ # TODO find_or_create_by
61
+ if self.router.nil?
62
+ self.router = Router.create!
63
+ end
78
64
  self.router.start = start
79
65
  self.router.stop = stop
80
66
  self.router.save!
81
67
  end
82
68
 
83
69
  def polyline
70
+ # TODO abstract into helper
84
71
  polyline = []
85
72
  routes.first.each_step do |step|
86
73
  polyline.push(step.polyline_json.to_a)
@@ -89,6 +76,7 @@ module Orochi
89
76
  end
90
77
 
91
78
  def directions
79
+ # TODO abstract into helper
92
80
  directions = []
93
81
  routes.first.each_step do |step|
94
82
  directions.push(step.directions_json.to_s)
@@ -106,6 +94,15 @@ module Orochi
106
94
  reversed_router
107
95
  end
108
96
 
97
+ # PRE point needs to be a tuple [lat, lng] (for now)
98
+ # TODO point of inclusion
99
+ def includes?(point)
100
+ self.polyline.any? do |step_json|
101
+ polyline_array = eval step_json
102
+ polyline_array.include?(point)
103
+ end
104
+ end
105
+
109
106
  end
110
107
  end
111
108
  end
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{orochi}
8
- s.version = "0.0.6"
8
+ s.version = "0.0.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["kellydunn"]
@@ -37,10 +37,10 @@ Gem::Specification.new do |s|
37
37
  "lib/orochi/acts_as_routeable.rb",
38
38
  "lib/orochi/railtie.rb",
39
39
  "lib/rails_templates/default_template.rb",
40
- "orochi-0.0.6.gem",
41
40
  "orochi.gemspec",
42
- "spec/gem/acts_as_routeable_spec.rb",
41
+ "spec/acts_as_routeable/acts_as_routeable_spec.rb",
43
42
  "spec/helpers/core.rb",
43
+ "spec/helpers/debug.log",
44
44
  "spec/rake/migration_spec.rb",
45
45
  "spec/rake/rake_spec.rb",
46
46
  "spec/spec_helper.rb"
@@ -51,11 +51,34 @@ Gem::Specification.new do |s|
51
51
  s.rubygems_version = %q{1.3.7}
52
52
  s.summary = %q{An easy way to ActiveRecord-ize directions and route data}
53
53
  s.test_files = [
54
- "spec/gem/acts_as_routeable_spec.rb",
54
+ "spec/acts_as_routeable/acts_as_routeable_spec.rb",
55
55
  "spec/helpers/core.rb",
56
56
  "spec/rake/migration_spec.rb",
57
57
  "spec/rake/rake_spec.rb",
58
- "spec/spec_helper.rb"
58
+ "spec/spec_helper.rb",
59
+ "spec/staging/gem_test/app/controllers/application_controller.rb",
60
+ "spec/staging/gem_test/app/helpers/application_helper.rb",
61
+ "spec/staging/gem_test/app/models/leg.rb",
62
+ "spec/staging/gem_test/app/models/route.rb",
63
+ "spec/staging/gem_test/app/models/router.rb",
64
+ "spec/staging/gem_test/app/models/step.rb",
65
+ "spec/staging/gem_test/config/application.rb",
66
+ "spec/staging/gem_test/config/boot.rb",
67
+ "spec/staging/gem_test/config/environment.rb",
68
+ "spec/staging/gem_test/config/environments/development.rb",
69
+ "spec/staging/gem_test/config/environments/production.rb",
70
+ "spec/staging/gem_test/config/environments/test.rb",
71
+ "spec/staging/gem_test/config/initializers/backtrace_silencers.rb",
72
+ "spec/staging/gem_test/config/initializers/inflections.rb",
73
+ "spec/staging/gem_test/config/initializers/mime_types.rb",
74
+ "spec/staging/gem_test/config/initializers/secret_token.rb",
75
+ "spec/staging/gem_test/config/initializers/session_store.rb",
76
+ "spec/staging/gem_test/config/routes.rb",
77
+ "spec/staging/gem_test/db/migrate/20110117235527_orochi_migration.rb",
78
+ "spec/staging/gem_test/db/schema.rb",
79
+ "spec/staging/gem_test/db/seeds.rb",
80
+ "spec/staging/gem_test/test/performance/browsing_test.rb",
81
+ "spec/staging/gem_test/test/test_helper.rb"
59
82
  ]
60
83
 
61
84
  if s.respond_to? :specification_version then
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "A model acting as routeable" do
4
- create_rails_app
4
+ include CoreHelper
5
5
 
6
6
  context "setting endpoints" do
7
7
  it "should be able to set its stopping and starting endpoints"
@@ -14,5 +14,4 @@ describe "A model acting as routeable" do
14
14
  it "should be able to grab a polyline after being routed"
15
15
  end
16
16
 
17
- destroy_rails_app
18
17
  end
@@ -2,9 +2,12 @@ require "spec_helper"
2
2
 
3
3
  module CoreHelper
4
4
  def create_rails_app
5
- Dir.chdir("spec/staging")
5
+ Dir.chdir(File.join(File.dirname(__FILE__), "../staging"))
6
6
  system("rails new gem_test -d mysql -m ../../lib/rails_templates/default_template.rb >> /dev/null")
7
7
  puts "== Created rails application ====="
8
+ system("pwd")
9
+ require "gem_test/config/environment.rb"
10
+ mock_rails_env
8
11
  end
9
12
 
10
13
  def destroy_rails_app
@@ -16,5 +19,28 @@ module CoreHelper
16
19
  puts "Was not able to delete rails application"
17
20
  end
18
21
  end
22
+
23
+ def mock_rails_env
24
+ database_yml = File.join(File.dirname(__FILE__), '../staging/gem_test/config/database.yml')
25
+ system("echo #{database_yml}")
26
+ if File.exists?(database_yml)
27
+ active_record_configuration = YAML.load_file(database_yml)["mysql"]
28
+
29
+ ActiveRecord::Base.establish_connection(active_record_configuration)
30
+ ActiveRecord::Base.logger = Logger.new(File.join(File.dirname(__FILE__), "debug.log"))
31
+
32
+ ActiveRecord::Base.silence do
33
+ ActiveRecord::Migration.verbose = false
34
+
35
+ load(File.dirname(__FILE__) + '/../staging/gem_test/db/schema.rb')
36
+ system("pwd")
37
+ Dir.new(File.join(File.dirname(__FILE__), "/../../lib/generators/orochi/templates/models")).each do |file|
38
+ load(file) if !File.directory?(file)
39
+ end
40
+ end
41
+ else
42
+ system("echo ':('")
43
+ end
44
+ end
19
45
  end
20
46
 
@@ -0,0 +1 @@
1
+ # Logfile created on Mon Jan 17 15:51:43 -0800 2011 by logger.rb/22285
@@ -18,5 +18,7 @@ describe "Migration rake" do
18
18
  success.should_not be_nil
19
19
  end
20
20
 
21
- it "should automatically apply the necessary migrations"
21
+ it "should automatically apply the necessary migrations" do
22
+ r = Route.new
23
+ end
22
24
  end
@@ -1,12 +1,8 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- $LOAD_PATH.unshift(File.dirname(__FILE__))
3
1
  require 'rspec'
4
2
  require 'orochi'
5
3
 
6
4
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
7
5
  Dir["#{File.dirname(__FILE__)}/helpers/**/*.rb"].each {|f| require f}
8
6
 
9
- File.join(File.dirname(__FILE__))
10
-
11
7
  RSpec.configure do |config|
12
8
  end
@@ -0,0 +1,3 @@
1
+ class ApplicationController < ActionController::Base
2
+ protect_from_forgery
3
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
@@ -0,0 +1,3 @@
1
+ class Leg < ActiveRecord::Base
2
+ has_many :steps
3
+ end
@@ -0,0 +1,11 @@
1
+ class Route < ActiveRecord::Base
2
+ has_many :legs
3
+
4
+ def each_step(&block)
5
+ self.legs.each do |leg|
6
+ leg.steps.each do |step|
7
+ yield step
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ class Router < ActiveRecord::Base
2
+ has_many :routes
3
+ end
@@ -0,0 +1,2 @@
1
+ class Step < ActiveRecord::Base
2
+ end
@@ -0,0 +1,42 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ require 'rails/all'
4
+
5
+ # If you have a Gemfile, require the gems listed there, including any gems
6
+ # you've limited to :test, :development, or :production.
7
+ Bundler.require(:default, Rails.env) if defined?(Bundler)
8
+
9
+ module GemTest
10
+ class Application < Rails::Application
11
+ # Settings in config/environments/* take precedence over those specified here.
12
+ # Application configuration should go into files in config/initializers
13
+ # -- all .rb files in that directory are automatically loaded.
14
+
15
+ # Custom directories with classes and modules you want to be autoloadable.
16
+ # config.autoload_paths += %W(#{config.root}/extras)
17
+
18
+ # Only load the plugins named here, in the order given (default is alphabetical).
19
+ # :all can be used as a placeholder for all plugins not explicitly named.
20
+ # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
21
+
22
+ # Activate observers that should always be running.
23
+ # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
24
+
25
+ # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
26
+ # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
27
+ # config.time_zone = 'Central Time (US & Canada)'
28
+
29
+ # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
30
+ # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
31
+ # config.i18n.default_locale = :de
32
+
33
+ # JavaScript files you want as :defaults (application.js is always included).
34
+ # config.action_view.javascript_expansions[:defaults] = %w(jquery rails)
35
+
36
+ # Configure the default encoding used in templates for Ruby 1.9.
37
+ config.encoding = "utf-8"
38
+
39
+ # Configure sensitive parameters which will be filtered from the log file.
40
+ config.filter_parameters += [:password]
41
+ end
42
+ end
@@ -0,0 +1,13 @@
1
+ require 'rubygems'
2
+
3
+ # Set up gems listed in the Gemfile.
4
+ gemfile = File.expand_path('../../Gemfile', __FILE__)
5
+ begin
6
+ ENV['BUNDLE_GEMFILE'] = gemfile
7
+ require 'bundler'
8
+ Bundler.setup
9
+ rescue Bundler::GemNotFound => e
10
+ STDERR.puts e.message
11
+ STDERR.puts "Try running `bundle install`."
12
+ exit!
13
+ end if File.exist?(gemfile)
@@ -0,0 +1,5 @@
1
+ # Load the rails application
2
+ require File.expand_path('../application', __FILE__)
3
+
4
+ # Initialize the rails application
5
+ GemTest::Application.initialize!
@@ -0,0 +1,26 @@
1
+ GemTest::Application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb
3
+
4
+ # In the development environment your application's code is reloaded on
5
+ # every request. This slows down response time but is perfect for development
6
+ # since you don't have to restart the webserver when you make code changes.
7
+ config.cache_classes = false
8
+
9
+ # Log error messages when you accidentally call methods on nil.
10
+ config.whiny_nils = true
11
+
12
+ # Show full error reports and disable caching
13
+ config.consider_all_requests_local = true
14
+ config.action_view.debug_rjs = true
15
+ config.action_controller.perform_caching = false
16
+
17
+ # Don't care if the mailer can't send
18
+ config.action_mailer.raise_delivery_errors = false
19
+
20
+ # Print deprecation notices to the Rails logger
21
+ config.active_support.deprecation = :log
22
+
23
+ # Only use best-standards-support built into browsers
24
+ config.action_dispatch.best_standards_support = :builtin
25
+ end
26
+
@@ -0,0 +1,49 @@
1
+ GemTest::Application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb
3
+
4
+ # The production environment is meant for finished, "live" apps.
5
+ # Code is not reloaded between requests
6
+ config.cache_classes = true
7
+
8
+ # Full error reports are disabled and caching is turned on
9
+ config.consider_all_requests_local = false
10
+ config.action_controller.perform_caching = true
11
+
12
+ # Specifies the header that your server uses for sending files
13
+ config.action_dispatch.x_sendfile_header = "X-Sendfile"
14
+
15
+ # For nginx:
16
+ # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'
17
+
18
+ # If you have no front-end server that supports something like X-Sendfile,
19
+ # just comment this out and Rails will serve the files
20
+
21
+ # See everything in the log (default is :info)
22
+ # config.log_level = :debug
23
+
24
+ # Use a different logger for distributed setups
25
+ # config.logger = SyslogLogger.new
26
+
27
+ # Use a different cache store in production
28
+ # config.cache_store = :mem_cache_store
29
+
30
+ # Disable Rails's static asset server
31
+ # In production, Apache or nginx will already do this
32
+ config.serve_static_assets = false
33
+
34
+ # Enable serving of images, stylesheets, and javascripts from an asset server
35
+ # config.action_controller.asset_host = "http://assets.example.com"
36
+
37
+ # Disable delivery errors, bad email addresses will be ignored
38
+ # config.action_mailer.raise_delivery_errors = false
39
+
40
+ # Enable threaded mode
41
+ # config.threadsafe!
42
+
43
+ # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
44
+ # the I18n.default_locale when a translation can not be found)
45
+ config.i18n.fallbacks = true
46
+
47
+ # Send deprecation notices to registered listeners
48
+ config.active_support.deprecation = :notify
49
+ end
@@ -0,0 +1,35 @@
1
+ GemTest::Application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb
3
+
4
+ # The test environment is used exclusively to run your application's
5
+ # test suite. You never need to work with it otherwise. Remember that
6
+ # your test database is "scratch space" for the test suite and is wiped
7
+ # and recreated between test runs. Don't rely on the data there!
8
+ config.cache_classes = true
9
+
10
+ # Log error messages when you accidentally call methods on nil.
11
+ config.whiny_nils = true
12
+
13
+ # Show full error reports and disable caching
14
+ config.consider_all_requests_local = true
15
+ config.action_controller.perform_caching = false
16
+
17
+ # Raise exceptions instead of rendering exception templates
18
+ config.action_dispatch.show_exceptions = false
19
+
20
+ # Disable request forgery protection in test environment
21
+ config.action_controller.allow_forgery_protection = false
22
+
23
+ # Tell Action Mailer not to deliver emails to the real world.
24
+ # The :test delivery method accumulates sent emails in the
25
+ # ActionMailer::Base.deliveries array.
26
+ config.action_mailer.delivery_method = :test
27
+
28
+ # Use SQL instead of Active Record's schema dumper when creating the test database.
29
+ # This is necessary if your schema can't be completely dumped by the schema dumper,
30
+ # like if you have constraints or database-specific column types
31
+ # config.active_record.schema_format = :sql
32
+
33
+ # Print deprecation notices to the stderr
34
+ config.active_support.deprecation = :stderr
35
+ end
@@ -0,0 +1,7 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4
+ # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5
+
6
+ # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7
+ # Rails.backtrace_cleaner.remove_silencers!
@@ -0,0 +1,10 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new inflection rules using the following format
4
+ # (all these examples are active by default):
5
+ # ActiveSupport::Inflector.inflections do |inflect|
6
+ # inflect.plural /^(ox)$/i, '\1en'
7
+ # inflect.singular /^(ox)en/i, '\1'
8
+ # inflect.irregular 'person', 'people'
9
+ # inflect.uncountable %w( fish sheep )
10
+ # end
@@ -0,0 +1,5 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new mime types for use in respond_to blocks:
4
+ # Mime::Type.register "text/richtext", :rtf
5
+ # Mime::Type.register_alias "text/html", :iphone
@@ -0,0 +1,7 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+ # Make sure the secret is at least 30 characters and all random,
6
+ # no regular words or you'll be exposed to dictionary attacks.
7
+ GemTest::Application.config.secret_token = '2a656402aa1bd7aa26f17c6a5b72ed9476b8dc06a3045c7b5a5dd18d8349ad56d2077660c572220af92450c8752a21a0c094e4d37e1f934acb11d2f09f35f083'
@@ -0,0 +1,8 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ GemTest::Application.config.session_store :cookie_store, :key => '_gem_test_session'
4
+
5
+ # Use the database for sessions instead of the cookie-based default,
6
+ # which shouldn't be used to store highly confidential information
7
+ # (create the session table with "rails generate session_migration")
8
+ # GemTest::Application.config.session_store :active_record_store
@@ -0,0 +1,58 @@
1
+ GemTest::Application.routes.draw do
2
+ # The priority is based upon order of creation:
3
+ # first created -> highest priority.
4
+
5
+ # Sample of regular route:
6
+ # match 'products/:id' => 'catalog#view'
7
+ # Keep in mind you can assign values other than :controller and :action
8
+
9
+ # Sample of named route:
10
+ # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
11
+ # This route can be invoked with purchase_url(:id => product.id)
12
+
13
+ # Sample resource route (maps HTTP verbs to controller actions automatically):
14
+ # resources :products
15
+
16
+ # Sample resource route with options:
17
+ # resources :products do
18
+ # member do
19
+ # get 'short'
20
+ # post 'toggle'
21
+ # end
22
+ #
23
+ # collection do
24
+ # get 'sold'
25
+ # end
26
+ # end
27
+
28
+ # Sample resource route with sub-resources:
29
+ # resources :products do
30
+ # resources :comments, :sales
31
+ # resource :seller
32
+ # end
33
+
34
+ # Sample resource route with more complex sub-resources
35
+ # resources :products do
36
+ # resources :comments
37
+ # resources :sales do
38
+ # get 'recent', :on => :collection
39
+ # end
40
+ # end
41
+
42
+ # Sample resource route within a namespace:
43
+ # namespace :admin do
44
+ # # Directs /admin/products/* to Admin::ProductsController
45
+ # # (app/controllers/admin/products_controller.rb)
46
+ # resources :products
47
+ # end
48
+
49
+ # You can have the root of your site routed with "root"
50
+ # just remember to delete public/index.html.
51
+ # root :to => "welcome#index"
52
+
53
+ # See how all your routes lay out with "rake routes"
54
+
55
+ # This is a legacy wild controller route that's not recommended for RESTful applications.
56
+ # Note: This route will make all actions in every controller accessible via GET requests.
57
+ # match ':controller(/:action(/:id(.:format)))'
58
+ end
@@ -0,0 +1,33 @@
1
+ class OrochiMigration < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :routers do |t|
4
+ t.string :start
5
+ t.string :stop
6
+ t.timestamps
7
+ end
8
+
9
+ create_table :routes do |t|
10
+ t.integer :router_id, :references => :routers
11
+ t.timestamps
12
+ end
13
+
14
+ create_table :legs do |t|
15
+ t.integer :route_id, :references => :routes
16
+ t.timestamps
17
+ end
18
+
19
+ create_table :steps do |t|
20
+ t.integer :leg_id, :references => :legs
21
+ t.text :polyline_json
22
+ t.text :directions_json
23
+ t.timestamps
24
+ end
25
+ end
26
+
27
+ def self.down
28
+ drop_table :routers
29
+ drop_table :routes
30
+ drop_table :legs
31
+ drop_table :steps
32
+ end
33
+ end
@@ -0,0 +1,41 @@
1
+ # This file is auto-generated from the current state of the database. Instead
2
+ # of editing this file, please use the migrations feature of Active Record to
3
+ # incrementally modify your database, and then regenerate this schema definition.
4
+ #
5
+ # Note that this schema.rb definition is the authoritative source for your
6
+ # database schema. If you need to create the application database on another
7
+ # system, you should be using db:schema:load, not running all the migrations
8
+ # from scratch. The latter is a flawed and unsustainable approach (the more migrations
9
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
10
+ #
11
+ # It's strongly recommended to check this file into your version control system.
12
+
13
+ ActiveRecord::Schema.define(:version => 20110114193812) do
14
+
15
+ create_table "legs", :force => true do |t|
16
+ t.integer "route_id"
17
+ t.datetime "created_at"
18
+ t.datetime "updated_at"
19
+ end
20
+
21
+ create_table "routers", :force => true do |t|
22
+ t.string "start"
23
+ t.string "stop"
24
+ t.datetime "created_at"
25
+ t.datetime "updated_at"
26
+ end
27
+
28
+ create_table "routes", :force => true do |t|
29
+ t.datetime "created_at"
30
+ t.datetime "updated_at"
31
+ end
32
+
33
+ create_table "steps", :force => true do |t|
34
+ t.integer "leg_id"
35
+ t.text "polyline_json"
36
+ t.text "directions_json"
37
+ t.datetime "created_at"
38
+ t.datetime "updated_at"
39
+ end
40
+
41
+ end
@@ -0,0 +1,7 @@
1
+ # This file should contain all the record creation needed to seed the database with its default values.
2
+ # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
3
+ #
4
+ # Examples:
5
+ #
6
+ # cities = City.create([{ :name => 'Chicago' }, { :name => 'Copenhagen' }])
7
+ # Mayor.create(:name => 'Daley', :city => cities.first)
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+ require 'rails/performance_test_help'
3
+
4
+ # Profiling results for each test method are written to tmp/performance.
5
+ class BrowsingTest < ActionDispatch::PerformanceTest
6
+ def test_homepage
7
+ get '/'
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ ENV["RAILS_ENV"] = "test"
2
+ require File.expand_path('../../config/environment', __FILE__)
3
+ require 'rails/test_help'
4
+
5
+ class ActiveSupport::TestCase
6
+ # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
7
+ #
8
+ # Note: You'll currently still have to declare fixtures explicitly in integration tests
9
+ # -- they do not yet inherit this setting
10
+ fixtures :all
11
+
12
+ # Add more helper methods to be used by all tests here...
13
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: orochi
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 6
10
- version: 0.0.6
9
+ - 7
10
+ version: 0.0.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - kellydunn
@@ -166,13 +166,36 @@ files:
166
166
  - lib/orochi/acts_as_routeable.rb
167
167
  - lib/orochi/railtie.rb
168
168
  - lib/rails_templates/default_template.rb
169
- - orochi-0.0.6.gem
170
169
  - orochi.gemspec
171
- - spec/gem/acts_as_routeable_spec.rb
170
+ - spec/acts_as_routeable/acts_as_routeable_spec.rb
172
171
  - spec/helpers/core.rb
172
+ - spec/helpers/debug.log
173
173
  - spec/rake/migration_spec.rb
174
174
  - spec/rake/rake_spec.rb
175
175
  - spec/spec_helper.rb
176
+ - spec/staging/gem_test/app/controllers/application_controller.rb
177
+ - spec/staging/gem_test/app/helpers/application_helper.rb
178
+ - spec/staging/gem_test/app/models/leg.rb
179
+ - spec/staging/gem_test/app/models/route.rb
180
+ - spec/staging/gem_test/app/models/router.rb
181
+ - spec/staging/gem_test/app/models/step.rb
182
+ - spec/staging/gem_test/config/application.rb
183
+ - spec/staging/gem_test/config/boot.rb
184
+ - spec/staging/gem_test/config/environment.rb
185
+ - spec/staging/gem_test/config/environments/development.rb
186
+ - spec/staging/gem_test/config/environments/production.rb
187
+ - spec/staging/gem_test/config/environments/test.rb
188
+ - spec/staging/gem_test/config/initializers/backtrace_silencers.rb
189
+ - spec/staging/gem_test/config/initializers/inflections.rb
190
+ - spec/staging/gem_test/config/initializers/mime_types.rb
191
+ - spec/staging/gem_test/config/initializers/secret_token.rb
192
+ - spec/staging/gem_test/config/initializers/session_store.rb
193
+ - spec/staging/gem_test/config/routes.rb
194
+ - spec/staging/gem_test/db/migrate/20110117235527_orochi_migration.rb
195
+ - spec/staging/gem_test/db/schema.rb
196
+ - spec/staging/gem_test/db/seeds.rb
197
+ - spec/staging/gem_test/test/performance/browsing_test.rb
198
+ - spec/staging/gem_test/test/test_helper.rb
176
199
  has_rdoc: true
177
200
  homepage: http://github.com/kellydunn/orochi
178
201
  licenses:
@@ -208,8 +231,31 @@ signing_key:
208
231
  specification_version: 3
209
232
  summary: An easy way to ActiveRecord-ize directions and route data
210
233
  test_files:
211
- - spec/gem/acts_as_routeable_spec.rb
234
+ - spec/acts_as_routeable/acts_as_routeable_spec.rb
212
235
  - spec/helpers/core.rb
213
236
  - spec/rake/migration_spec.rb
214
237
  - spec/rake/rake_spec.rb
215
238
  - spec/spec_helper.rb
239
+ - spec/staging/gem_test/app/controllers/application_controller.rb
240
+ - spec/staging/gem_test/app/helpers/application_helper.rb
241
+ - spec/staging/gem_test/app/models/leg.rb
242
+ - spec/staging/gem_test/app/models/route.rb
243
+ - spec/staging/gem_test/app/models/router.rb
244
+ - spec/staging/gem_test/app/models/step.rb
245
+ - spec/staging/gem_test/config/application.rb
246
+ - spec/staging/gem_test/config/boot.rb
247
+ - spec/staging/gem_test/config/environment.rb
248
+ - spec/staging/gem_test/config/environments/development.rb
249
+ - spec/staging/gem_test/config/environments/production.rb
250
+ - spec/staging/gem_test/config/environments/test.rb
251
+ - spec/staging/gem_test/config/initializers/backtrace_silencers.rb
252
+ - spec/staging/gem_test/config/initializers/inflections.rb
253
+ - spec/staging/gem_test/config/initializers/mime_types.rb
254
+ - spec/staging/gem_test/config/initializers/secret_token.rb
255
+ - spec/staging/gem_test/config/initializers/session_store.rb
256
+ - spec/staging/gem_test/config/routes.rb
257
+ - spec/staging/gem_test/db/migrate/20110117235527_orochi_migration.rb
258
+ - spec/staging/gem_test/db/schema.rb
259
+ - spec/staging/gem_test/db/seeds.rb
260
+ - spec/staging/gem_test/test/performance/browsing_test.rb
261
+ - spec/staging/gem_test/test/test_helper.rb