orochi 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -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