multicity 1.1.3 → 1.2.0

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.md ADDED
@@ -0,0 +1,29 @@
1
+ Installation
2
+ =
3
+ gem install 'multicity'
4
+
5
+ Example
6
+ =
7
+ require 'multicity'
8
+
9
+ # Get all cars
10
+ agent = Multicity::Agent.new
11
+ cars = agent.get_cars
12
+ cars.each do |car|
13
+ puts car.id # => "1234"
14
+ puts car.license_plate # => "B-MC 1694"
15
+ puts car.model # => "Citroën C-Zero"
16
+ puts car.position # => {:lat => '52.5359483', :lon => '13.4432250'}
17
+ end
18
+
19
+ # get the price
20
+ Multicity::Agent.price 25 # => {:unit => 'EUR', :price => 7.50, :rate => :starter}
21
+ Multicity::Agent.price 25, :vielnutzer # => {:unit => 'EUR', :price => 6.00, :rate => :vielnutzer}
22
+
23
+ # get operation area
24
+ agent.get_operation_area # => array of lat/lon coordinates "[[52.464874, 13.405852], [52.466625, 13.425508], [52.467854, 13.435678],...]"
25
+
26
+
27
+ Contribute
28
+ =
29
+ Fork, implement, create tests and a pullrequest :)
@@ -20,7 +20,7 @@ module Multicity
20
20
  # Returns an array of Multicity:Car
21
21
  def get_cars
22
22
  data = @agent.get(@@options[:url_list], headers).body
23
- marker = data.scan(/"marker":\[(.*?)\],"/).first
23
+ marker = data.scan(/"marker":\[(.*?)\],"/).first.join
24
24
  marker = marker.to_s.gsub(' ', ' ')
25
25
  marker = JSON.parse("[#{marker}]")
26
26
  marker.map! { |item| Car.new(item) }
@@ -37,12 +37,25 @@ module Multicity
37
37
  coords = []
38
38
  coordinates.strip.split("\n").each do |coordinate|
39
39
  coordinate = coordinate.split ","
40
- coords << [ coordinate[0].to_f, coordinate[1].to_f ]
40
+ coords << [ coordinate[1].to_f, coordinate[0].to_f ]
41
41
  end
42
42
 
43
43
  coords
44
44
  end
45
45
 
46
+ def self.price duration, rate = :starter
47
+ duration = duration.to_f
48
+ rate = rate == :vielnutzer ? 2.0 : 2.5
49
+ if duration > 1440.0
50
+ price = (duration / 1440.0).floor * 39.00
51
+ price += (duration % 1440.0) / 10 * rate
52
+ else
53
+ price = (duration / 10.0).ceil * rate
54
+ end
55
+
56
+ {:price => price.round(2), :unit => 'EUR', :rate => rate }
57
+ end
58
+
46
59
  private
47
60
 
48
61
  def headers
@@ -1,3 +1,3 @@
1
1
  module Multicity
2
- VERSION = "1.1.3"
2
+ VERSION = "1.2.0"
3
3
  end
data/lib/multicity.rb CHANGED
@@ -4,8 +4,4 @@ require 'json'
4
4
  require 'xmlsimple'
5
5
 
6
6
  require 'multicity/multicity_car'
7
- require 'multicity/multicity_agent'
8
-
9
- module Multicity
10
- $KCODE = "U"
11
- end
7
+ require 'multicity/multicity_agent'
metadata CHANGED
@@ -1,129 +1,99 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: multicity
3
- version: !ruby/object:Gem::Version
4
- hash: 21
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.0
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 1
9
- - 3
10
- version: 1.1.3
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Simon Woker
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2013-02-13 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- version_requirements: &id001 !ruby/object:Gem::Requirement
12
+ date: 2013-02-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: json
16
+ requirement: &12702200 !ruby/object:Gem::Requirement
22
17
  none: false
23
- requirements:
18
+ requirements:
24
19
  - - ~>
25
- - !ruby/object:Gem::Version
26
- hash: 3
27
- segments:
28
- - 1
29
- - 6
30
- version: "1.6"
31
- requirement: *id001
32
- prerelease: false
20
+ - !ruby/object:Gem::Version
21
+ version: '1.6'
33
22
  type: :runtime
34
- name: json
35
- - !ruby/object:Gem::Dependency
36
- version_requirements: &id002 !ruby/object:Gem::Requirement
37
- none: false
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- hash: 3
42
- segments:
43
- - 0
44
- version: "0"
45
- requirement: *id002
46
23
  prerelease: false
47
- type: :runtime
24
+ version_requirements: *12702200
25
+ - !ruby/object:Gem::Dependency
48
26
  name: mechanize
49
- - !ruby/object:Gem::Dependency
50
- version_requirements: &id003 !ruby/object:Gem::Requirement
27
+ requirement: &12701580 !ruby/object:Gem::Requirement
51
28
  none: false
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- hash: 3
56
- segments:
57
- - 0
58
- version: "0"
59
- requirement: *id003
60
- prerelease: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
61
33
  type: :runtime
34
+ prerelease: false
35
+ version_requirements: *12701580
36
+ - !ruby/object:Gem::Dependency
62
37
  name: xml-simple
63
- - !ruby/object:Gem::Dependency
64
- version_requirements: &id004 !ruby/object:Gem::Requirement
38
+ requirement: &12700960 !ruby/object:Gem::Requirement
65
39
  none: false
66
- requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- hash: 3
70
- segments:
71
- - 0
72
- version: "0"
73
- requirement: *id004
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
74
45
  prerelease: false
75
- type: :development
46
+ version_requirements: *12700960
47
+ - !ruby/object:Gem::Dependency
76
48
  name: rake
77
- description: Wraps the Multicity JSON to use it nicely in your own environment. You can use this Gem to read all cars that are available.
49
+ requirement: &12700260 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *12700260
58
+ description: Wraps the Multicity JSON to use it nicely in your own environment. You
59
+ can use this Gem to read all cars that are available.
78
60
  email: github@simonwoker.de
79
61
  executables: []
80
-
81
62
  extensions: []
82
-
83
63
  extra_rdoc_files: []
84
-
85
- files:
86
- - lib/multicity/agent_multicity.rb
64
+ files:
87
65
  - lib/multicity/multicity_agent.rb
88
66
  - lib/multicity/multicity_car.rb
89
67
  - lib/multicity/version.rb
90
68
  - lib/multicity.rb
91
69
  - LICENSE
92
70
  - CHANGELOG.md
71
+ - README.md
93
72
  homepage: https://github.com/swoker/multicity-ruby
94
73
  licenses: []
95
-
96
74
  post_install_message:
97
75
  rdoc_options: []
98
-
99
- require_paths:
76
+ require_paths:
100
77
  - lib
101
- required_ruby_version: !ruby/object:Gem::Requirement
78
+ required_ruby_version: !ruby/object:Gem::Requirement
102
79
  none: false
103
- requirements:
104
- - - ">="
105
- - !ruby/object:Gem::Version
106
- hash: 3
107
- segments:
80
+ requirements:
81
+ - - ! '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ segments:
108
85
  - 0
109
- version: "0"
110
- required_rubygems_version: !ruby/object:Gem::Requirement
86
+ hash: 442724271180259983
87
+ required_rubygems_version: !ruby/object:Gem::Requirement
111
88
  none: false
112
- requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- hash: 23
116
- segments:
117
- - 1
118
- - 3
119
- - 6
89
+ requirements:
90
+ - - ! '>='
91
+ - !ruby/object:Gem::Version
120
92
  version: 1.3.6
121
93
  requirements: []
122
-
123
94
  rubyforge_project:
124
- rubygems_version: 1.8.25
95
+ rubygems_version: 1.8.11
125
96
  signing_key:
126
97
  specification_version: 3
127
98
  summary: Wrapper for the Multicity API
128
99
  test_files: []
129
-
@@ -1,11 +0,0 @@
1
- class AgentMulticity
2
- def load_all
3
- agent = Multicity::Agent.new
4
- cars = agent.get_cars
5
- Sharable.transaction do
6
- Sharable.delete_all :type_id => Tramobi::VALID_AGENTS["Multicity"], :city => "Berlin"
7
- cars.each { |car| Sharable.from_multicity(car).save! }
8
- end
9
- cars.count
10
- end
11
- end