Class: ProMotion::MapScreenAnnotation
- Inherits:
-
Object
- Object
- ProMotion::MapScreenAnnotation
show all
- Defined in:
- lib/ProMotion/map/map_screen_annotation.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
Creates the new annotation object
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/ProMotion/map/map_screen_annotation.rb', line 6
def initialize(params = {})
@params = params
set_defaults
if @params[:coordinate]
@params[:latitude] = @params[:coordinate].latitude
@params[:longitude] = @params[:coordinate].longitude
@coordinate = @params[:coordinate]
elsif @params[:latitude] && @params[:longitude]
@coordinate = CLLocationCoordinate2D.new(@params[:latitude], @params[:longitude])
else
PM.logger.error("You are required to specify :latitude and :longitude or :coordinate for annotations.")
nil
end
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(meth, *args) ⇒ Object
67
68
69
70
71
72
73
74
|
# File 'lib/ProMotion/map/map_screen_annotation.rb', line 67
def method_missing(meth, *args)
if @params[meth.to_sym]
@params[meth.to_sym]
else
PM.logger.warn "The annotation parameter \"#{meth}\" does not exist on this pin."
nil
end
end
|
Instance Attribute Details
#params ⇒ Object
Returns the value of attribute params.
3
4
5
|
# File 'lib/ProMotion/map/map_screen_annotation.rb', line 3
def params
@params
end
|
Instance Method Details
#annotation_params ⇒ Object
77
78
79
80
|
# File 'lib/ProMotion/map/map_screen_annotation.rb', line 77
def annotation_params
PM.logger.warn("annotation.annotation_params is deprecated and will be removed soon. Please use annotation.params instead.")
@params
end
|
#cllocation ⇒ Object
55
56
57
|
# File 'lib/ProMotion/map/map_screen_annotation.rb', line 55
def cllocation
CLLocation.alloc.initWithLatitude(@params[:latitude], longitude:@params[:longitude])
end
|
#coordinate ⇒ Object
43
44
45
|
# File 'lib/ProMotion/map/map_screen_annotation.rb', line 43
def coordinate
@coordinate
end
|
#left_accessory ⇒ Object
47
48
49
|
# File 'lib/ProMotion/map/map_screen_annotation.rb', line 47
def left_accessory
@params[:left_accessory]
end
|
#right_accessory ⇒ Object
51
52
53
|
# File 'lib/ProMotion/map/map_screen_annotation.rb', line 51
def right_accessory
@params[:right_accessory]
end
|
#set_defaults ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/ProMotion/map/map_screen_annotation.rb', line 22
def set_defaults
@params = {
title: "Title",
pin_color: :red,
identifier: "Annotation-#{@params[:pin_color]}-#{@params[:image]}",
show_callout: true,
animates_drop: false,
image: nil,
left_accessory: nil,
right_accessory: nil,
}.merge(@params)
end
|
#setCoordinate(new_coordinate) ⇒ Object
59
60
61
62
63
64
65
|
# File 'lib/ProMotion/map/map_screen_annotation.rb', line 59
def setCoordinate(new_coordinate);
if new_coordinate.is_a? Hash
@coordinate = CLLocationCoordinate2D.new(new_coordinate[:latitude], new_coordinate[:longitude])
else
@coordinate = new_coordinate
end
end
|
#subtitle ⇒ Object
39
40
41
|
# File 'lib/ProMotion/map/map_screen_annotation.rb', line 39
def subtitle
@params[:subtitle] ||= nil
end
|
#title ⇒ Object
35
36
37
|
# File 'lib/ProMotion/map/map_screen_annotation.rb', line 35
def title
@params[:title]
end
|