machiawase 0.3.1 → 0.3.2
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/bin/machiawase +1 -1
- data/lib/machiawase.rb +58 -49
- data/lib/machiawase/place.rb +1 -1
- data/lib/machiawase/version.rb +2 -2
- data/spec/machiawase_spec.rb +13 -10
- metadata +12 -12
data/bin/machiawase
CHANGED
data/lib/machiawase.rb
CHANGED
@@ -7,78 +7,87 @@ require 'open-uri'
|
|
7
7
|
require 'machiawase/place'
|
8
8
|
require 'machiawase/version'
|
9
9
|
|
10
|
-
|
11
|
-
attr_reader :place, :places, :lat, :lon, :address, :near_station
|
10
|
+
module Machiawase
|
12
11
|
|
13
|
-
def
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
def self.where(*argv)
|
13
|
+
require 'optparse'
|
14
|
+
opt = OptionParser.new do |opt|
|
15
|
+
opt.version = VERSION
|
16
|
+
end
|
17
|
+
addresses = opt.parse(argv)
|
17
18
|
|
18
|
-
def self.where?(*addresses)
|
19
19
|
places = Array.new
|
20
20
|
addresses.each do |address|
|
21
21
|
g = Place.geocode(address)
|
22
22
|
places << Place.new(g['lat'], g['lon'])
|
23
23
|
end
|
24
|
-
m =
|
24
|
+
m = Rendezvous.new(*places)
|
25
25
|
m.place
|
26
26
|
end
|
27
27
|
|
28
|
-
|
29
|
-
|
30
|
-
end
|
28
|
+
class Rendezvous
|
29
|
+
attr_reader :place, :places, :lat, :lon, :address, :near_station
|
31
30
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
31
|
+
def initialize(*places)
|
32
|
+
@place = nil
|
33
|
+
@places = places
|
34
|
+
end
|
36
35
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
end
|
36
|
+
def place
|
37
|
+
@place ||= middle_of(*@places)
|
38
|
+
end
|
41
39
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
40
|
+
def lat
|
41
|
+
@place ||= middle_of(*@places)
|
42
|
+
@place.lat
|
43
|
+
end
|
46
44
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
45
|
+
def lon
|
46
|
+
@place ||= middle_of(*@places)
|
47
|
+
@place.lon
|
48
|
+
end
|
51
49
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
h.store("place#{i}", place.to_h)
|
50
|
+
def address
|
51
|
+
@place ||= middle_of(*@places)
|
52
|
+
@place.address
|
56
53
|
end
|
57
54
|
|
58
|
-
|
59
|
-
|
60
|
-
|
55
|
+
def near_station
|
56
|
+
@place ||= middle_of(*@places)
|
57
|
+
@place.near_station
|
58
|
+
end
|
61
59
|
|
62
|
-
|
63
|
-
|
64
|
-
|
60
|
+
def to_h
|
61
|
+
h = Hash.new
|
62
|
+
@places.each_with_index do |place, i|
|
63
|
+
h.store("place#{i}", place.to_h)
|
64
|
+
end
|
65
65
|
|
66
|
-
|
66
|
+
@place ||= middle_of(*@places)
|
67
|
+
h.store("machiawase", @place.to_h)
|
68
|
+
end
|
67
69
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
end
|
70
|
+
def to_json
|
71
|
+
JSON.pretty_generate(to_h)
|
72
|
+
end
|
72
73
|
|
73
|
-
|
74
|
-
x_sum = 0
|
75
|
-
y_sum = 0
|
74
|
+
private
|
76
75
|
|
77
|
-
places
|
78
|
-
|
79
|
-
|
76
|
+
def middle_of(*places)
|
77
|
+
c = centroid(*places)
|
78
|
+
@place = Place.new(c[0], c[1])
|
80
79
|
end
|
81
80
|
|
82
|
-
|
81
|
+
def centroid(*places)
|
82
|
+
x_sum = 0
|
83
|
+
y_sum = 0
|
84
|
+
|
85
|
+
places.each do |p|
|
86
|
+
x_sum += p.lat
|
87
|
+
y_sum += p.lon
|
88
|
+
end
|
89
|
+
|
90
|
+
[x_sum/places.length.to_f, y_sum/places.length.to_f]
|
91
|
+
end
|
83
92
|
end
|
84
93
|
end
|
data/lib/machiawase/place.rb
CHANGED
data/lib/machiawase/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
|
2
|
-
VERSION = "0.3.
|
1
|
+
module Machiawase
|
2
|
+
VERSION = "0.3.2"
|
3
3
|
end
|
data/spec/machiawase_spec.rb
CHANGED
@@ -2,6 +2,17 @@
|
|
2
2
|
# -*- coding: utf-8 -*-
|
3
3
|
require 'machiawase'
|
4
4
|
|
5
|
+
describe Machiawase do
|
6
|
+
|
7
|
+
describe 'where' do
|
8
|
+
context '横浜, 東京' do
|
9
|
+
it 'should be Place' do
|
10
|
+
Machiawase.where("横浜", "東京").class.should eq(Machiawase::Place)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
5
16
|
|
6
17
|
describe Machiawase::Place do
|
7
18
|
describe ':address' do
|
@@ -29,17 +40,9 @@ describe Machiawase::Place do
|
|
29
40
|
end
|
30
41
|
end
|
31
42
|
|
32
|
-
describe Machiawase do
|
43
|
+
describe Machiawase::Rendezvous do
|
33
44
|
before do
|
34
|
-
@machiawase = Machiawase.new
|
35
|
-
end
|
36
|
-
|
37
|
-
describe 'where?' do
|
38
|
-
context '横浜, 東京' do
|
39
|
-
it 'should be Place' do
|
40
|
-
Machiawase.where?("横浜", "東京").class.should eq(Machiawase::Place)
|
41
|
-
end
|
42
|
-
end
|
45
|
+
@machiawase = Machiawase::Rendezvous.new
|
43
46
|
end
|
44
47
|
|
45
48
|
describe ":centroid" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: machiawase
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-11-
|
12
|
+
date: 2012-11-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
|
-
requirement: &
|
16
|
+
requirement: &70196166761400 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70196166761400
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &70196166760980 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70196166760980
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: ZenTest
|
38
|
-
requirement: &
|
38
|
+
requirement: &70196166760560 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70196166760560
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: autotest-fsevent
|
49
|
-
requirement: &
|
49
|
+
requirement: &70196166760140 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70196166760140
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: autotest-growl
|
60
|
-
requirement: &
|
60
|
+
requirement: &70196166759720 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70196166759720
|
69
69
|
description: provides command line usage and library to get a middle point of plural
|
70
70
|
points
|
71
71
|
email:
|