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.
- data/README.textile +5 -4
- data/VERSION +1 -1
- data/lib/orochi.rb +17 -8
- data/lib/orochi/acts_as_routeable.rb +21 -3
- data/orochi.gemspec +3 -2
- metadata +13 -12
data/README.textile
CHANGED
@@ -9,7 +9,7 @@ h2. setup
|
|
9
9
|
pre. sudo gem install orochi
|
10
10
|
rake orochi:awaken
|
11
11
|
|
12
|
-
h2.
|
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.
|
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
|
49
|
-
your_model_instance.
|
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.
|
1
|
+
0.0.6
|
data/lib/orochi.rb
CHANGED
@@ -1,10 +1,19 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
require "
|
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
|
-
|
9
|
-
|
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&
|
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
|
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
|
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
|
data/orochi.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{orochi}
|
8
|
-
s.version = "0.0.
|
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-
|
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:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
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-
|
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
|