orochi 0.0.5 → 0.0.6

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.
@@ -9,7 +9,7 @@ h2. setup
9
9
  pre. sudo gem install orochi
10
10
  rake orochi:awaken
11
11
 
12
- h2. usage
12
+ h2. quick start
13
13
 
14
14
  p. Orochi needs to know which models you intend to make routeable. So any model that has a start and stop destination can be represented as:
15
15
 
@@ -38,12 +38,13 @@ pre. db:migrate
38
38
 
39
39
  p. Now you're set up and ready to go!
40
40
 
41
- h2. ghetto usage
41
+ h2. usage
42
42
 
43
43
  pre. your_model_instance.set_endpoints!("start_address", "stop_address")
44
44
  your_model_instance.route!
45
45
 
46
46
  p. Now you can do some of the following:
47
47
 
48
- pre.# Get the polyline of your route
49
- your_model_instance.polyline
48
+ pre. your_model_instance.polyline # Polyline representation for Google Maps
49
+ your_model_instance.directions # List of directions
50
+ your_model_instance.reverse # A creates a router with the reversed address + routes
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.5
1
+ 0.0.6
@@ -1,10 +1,19 @@
1
- require "active_model"
2
- require "active_record"
3
-
4
- require "orochi/acts_as_routeable"
5
-
6
- require "orochi/railtie.rb" if defined?(Rails)
1
+ # TODO make this more "Pragmatic Programmer"
2
+ if defined?(Rails)
3
+ require "active_model"
4
+ require "active_record"
5
+ require "orochi/acts_as_routeable"
6
+ require "orochi/railtie.rb" if defined?(Rails)
7
+
8
+ if defined?(ActiveRecord::Base)
9
+ Orochi::ActsAsRouteable.include ActiveRecord::Base
10
+ end
11
+ end
7
12
 
8
- if defined?(ActiveRecord::Base)
9
- Orochi::ActsAsRouteable.include ActiveRecord::Base
13
+ module Orochi
14
+ class GoogleClient
15
+ def self.request(options = {})
16
+ # TODO create request string, make request, return JSON
17
+ end
18
+ end
10
19
  end
@@ -22,7 +22,12 @@ module Orochi
22
22
 
23
23
  module InstanceMethods
24
24
  def request_routes
25
- request_str = "http://maps.googleapis.com/maps/api/directions/json?sensor=false&alternatives=true&"
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
26
31
 
27
32
  start = self.router.start
28
33
  request_str += "origin=#{CGI::escape(start)}&"
@@ -83,11 +88,24 @@ module Orochi
83
88
  polyline.flatten
84
89
  end
85
90
 
86
- def directions_to
91
+ def directions
92
+ directions = []
93
+ routes.first.each_step do |step|
94
+ directions.push(step.directions_json.to_s)
95
+ end
96
+ directions
87
97
  end
88
98
 
89
- def directions_from
99
+ def reverse
100
+ # TODO find_or_create_by
101
+ reversed_router = Router.where({:start => self.router.stop, :stop => self.router.start})
102
+ if reversed_router.nil? || reversed_router.empty?
103
+ reversed_router = Router.create({:start => self.router.stop, :stop => self.router.start})
104
+ reversed_router.route!
105
+ end
106
+ reversed_router
90
107
  end
108
+
91
109
  end
92
110
  end
93
111
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{orochi}
8
- s.version = "0.0.5"
8
+ s.version = "0.0.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["kellydunn"]
12
- s.date = %q{2011-01-15}
12
+ s.date = %q{2011-01-17}
13
13
  s.description = %q{A ruby gem that helps ActiveRecord-ize directions and route data}
14
14
  s.email = %q{defaultstring@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -37,6 +37,7 @@ 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",
40
41
  "orochi.gemspec",
41
42
  "spec/gem/acts_as_routeable_spec.rb",
42
43
  "spec/helpers/core.rb",
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: 21
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 5
10
- version: 0.0.5
9
+ - 6
10
+ version: 0.0.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - kellydunn
@@ -15,13 +15,12 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-15 00:00:00 -08:00
18
+ date: 2011-01-17 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  prerelease: false
23
23
  name: geokit
24
- type: :runtime
25
24
  version_requirements: &id001 !ruby/object:Gem::Requirement
26
25
  none: false
27
26
  requirements:
@@ -32,10 +31,10 @@ dependencies:
32
31
  - 0
33
32
  version: "0"
34
33
  requirement: *id001
34
+ type: :runtime
35
35
  - !ruby/object:Gem::Dependency
36
36
  prerelease: false
37
37
  name: geokit-rails
38
- type: :runtime
39
38
  version_requirements: &id002 !ruby/object:Gem::Requirement
40
39
  none: false
41
40
  requirements:
@@ -46,10 +45,10 @@ dependencies:
46
45
  - 0
47
46
  version: "0"
48
47
  requirement: *id002
48
+ type: :runtime
49
49
  - !ruby/object:Gem::Dependency
50
50
  prerelease: false
51
51
  name: nayutaya-googlemaps-polyline
52
- type: :runtime
53
52
  version_requirements: &id003 !ruby/object:Gem::Requirement
54
53
  none: false
55
54
  requirements:
@@ -60,10 +59,10 @@ dependencies:
60
59
  - 0
61
60
  version: "0"
62
61
  requirement: *id003
62
+ type: :runtime
63
63
  - !ruby/object:Gem::Dependency
64
64
  prerelease: false
65
65
  name: json
66
- type: :runtime
67
66
  version_requirements: &id004 !ruby/object:Gem::Requirement
68
67
  none: false
69
68
  requirements:
@@ -74,10 +73,10 @@ dependencies:
74
73
  - 0
75
74
  version: "0"
76
75
  requirement: *id004
76
+ type: :runtime
77
77
  - !ruby/object:Gem::Dependency
78
78
  prerelease: false
79
79
  name: rspec
80
- type: :development
81
80
  version_requirements: &id005 !ruby/object:Gem::Requirement
82
81
  none: false
83
82
  requirements:
@@ -90,10 +89,10 @@ dependencies:
90
89
  - 0
91
90
  version: 2.3.0
92
91
  requirement: *id005
92
+ type: :development
93
93
  - !ruby/object:Gem::Dependency
94
94
  prerelease: false
95
95
  name: bundler
96
- type: :development
97
96
  version_requirements: &id006 !ruby/object:Gem::Requirement
98
97
  none: false
99
98
  requirements:
@@ -106,10 +105,10 @@ dependencies:
106
105
  - 0
107
106
  version: 1.0.0
108
107
  requirement: *id006
108
+ type: :development
109
109
  - !ruby/object:Gem::Dependency
110
110
  prerelease: false
111
111
  name: jeweler
112
- type: :development
113
112
  version_requirements: &id007 !ruby/object:Gem::Requirement
114
113
  none: false
115
114
  requirements:
@@ -122,10 +121,10 @@ dependencies:
122
121
  - 2
123
122
  version: 1.5.2
124
123
  requirement: *id007
124
+ type: :development
125
125
  - !ruby/object:Gem::Dependency
126
126
  prerelease: false
127
127
  name: rcov
128
- type: :development
129
128
  version_requirements: &id008 !ruby/object:Gem::Requirement
130
129
  none: false
131
130
  requirements:
@@ -136,6 +135,7 @@ dependencies:
136
135
  - 0
137
136
  version: "0"
138
137
  requirement: *id008
138
+ type: :development
139
139
  description: A ruby gem that helps ActiveRecord-ize directions and route data
140
140
  email: defaultstring@gmail.com
141
141
  executables: []
@@ -166,6 +166,7 @@ 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
169
170
  - orochi.gemspec
170
171
  - spec/gem/acts_as_routeable_spec.rb
171
172
  - spec/helpers/core.rb