Class: UnderOs::Sharing
- Inherits:
-
Object
show all
- Defined in:
- lib/under_os/sharing.rb,
lib/under_os/sharing/controller.rb,
lib/under_os/receivers/instagram.rb,
lib/under_os/sharing/interaction.rb
Defined Under Namespace
Classes: Instagram, Interaction
Constant Summary
collapse
- VERSION =
'1.0.1'
- CUSTOM_RECEIVERS =
{
instagram: UnderOs::Sharing::Instagram
}
- NATIVE_RECEIVERS =
{
facebook: UIActivityTypePostToFacebook,
twitter: UIActivityTypePostToTwitter,
flickr: UIActivityTypePostToFlickr,
vimeo: UIActivityTypePostToVimeo,
weibo: UIActivityTypePostToWeibo,
message: UIActivityTypeMessage,
email: UIActivityTypeMail,
print: UIActivityTypePrint,
copy: UIActivityTypeCopyToPasteboard,
contact: UIActivityTypeAssignToContact,
save: UIActivityTypeSaveToCameraRoll,
reading: UIActivityTypeAddToReadingList,
airdrop: UIActivityTypePostToTencentWeibo
}
Instance Method Summary
collapse
Constructor Details
#initialize(options = {}) ⇒ Sharing
Returns a new instance of Sharing.
5
6
7
|
# File 'lib/under_os/sharing.rb', line 5
def initialize(options={})
@options = options
end
|
Instance Method Details
#controller_for(items) ⇒ Object
3
4
5
6
7
8
|
# File 'lib/under_os/sharing/controller.rb', line 3
def controller_for(items)
UIActivityViewController.alloc.tap do |controller|
controller.initWithActivityItems(items, applicationActivities: custom_activities)
controller.excludedActivityTypes = excluded_activities
end
end
|
#custom_activities ⇒ Object
10
11
12
13
14
15
16
|
# File 'lib/under_os/sharing/controller.rb', line 10
def custom_activities
[].tap do |activities|
CUSTOM_RECEIVERS.each do |key, receiver|
activities << receiver.alloc.init if receivers_include(key)
end
end
end
|
#excluded_activities ⇒ Object
18
19
20
21
22
23
24
|
# File 'lib/under_os/sharing/controller.rb', line 18
def excluded_activities
[].tap do |activities|
NATIVE_RECEIVERS.each do |key, receiver|
activities << receiver unless receivers_include(key)
end
end
end
|
#items_from(objects) ⇒ Object
15
16
17
|
# File 'lib/under_os/sharing.rb', line 15
def items_from(objects)
objects
end
|
#receivers_include(key) ⇒ Object
26
27
28
29
30
31
32
33
34
|
# File 'lib/under_os/sharing/controller.rb', line 26
def receivers_include(key)
if @options.has_key?(:receivers)
@options[:receivers].map(&:to_sym).incude?(key)
elsif @options.has_key?(:exclude)
! @options[:exclude].map(&:to_sym).include?(key)
else
true end
end
|
#share(*objects, &block) ⇒ Object
9
10
11
12
13
|
# File 'lib/under_os/sharing.rb', line 9
def share(*objects, &block)
controller = controller_for(items_from(objects))
UnderOs::App.history.current_page._
.presentViewController(controller, animated: true, completion: block)
end
|