zuckermo 0.0.1
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.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +5 -0
- data/.gitignore +6 -0
- data/Gemfile +4 -0
- data/README.md +39 -0
- data/Rakefile +15 -0
- data/app/app_delegate.rb +31 -0
- data/lib/zuckermo.rb +14 -0
- data/lib/zuckermo/version.rb +3 -0
- data/motion/facebook.rb +29 -0
- data/motion/pollute.rb +9 -0
- data/motion/zuckermo.rb +2 -0
- data/motion/zuckermo/account_store.rb +43 -0
- data/motion/zuckermo/user.rb +14 -0
- data/spec/main_spec.rb +17 -0
- data/zuckermo.gemspec +20 -0
- metadata +122 -0
- metadata.gz.sig +0 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: feef88c44599df583a08a5ee88ea6a09cf6861fc
|
4
|
+
data.tar.gz: b1732bb2765e50dea642bb256633545c9504218e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e3103e463ef45cee931ba02f85776b1cba7ea86ce8f3f9feacdfbe7754b5ed860810929541d575f6f876ff7d9050d5f98efe7f30a8de22a60ed8981ebb89e77f
|
7
|
+
data.tar.gz: 0258481f673bf66eb0fe2c45985cb9f318813a599422c37444bde4f005b15e10ea79f3d8da33685a08c58a1ec7aa643ef78dfb03a773896182a8d2a81e35f5da
|
checksums.yaml.gz.sig
ADDED
Binary file
|
data.tar.gz.sig
ADDED
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
# Zuckermo, a RubyMotion Wrapper for Facebook.
|
2
|
+
|
3
|
+
Hat Tip to clayallsopp/twittermotion for inspiration
|
4
|
+
|
5
|
+
## Usage
|
6
|
+
|
7
|
+
Sign in:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
Facebook.app_key = 'xxxxxxxxx'
|
11
|
+
Facebook.sign_in do |granted, ns_error|
|
12
|
+
# have fun
|
13
|
+
end
|
14
|
+
```
|
15
|
+
|
16
|
+
See accounts:
|
17
|
+
|
18
|
+
```ruby
|
19
|
+
> Facebook.accounts
|
20
|
+
=> [#<Twitter::User>]
|
21
|
+
> Facebook.accounts[0].username
|
22
|
+
=> "name@example.com"
|
23
|
+
```
|
24
|
+
|
25
|
+
## Installation
|
26
|
+
|
27
|
+
1. `gem install zuckermo`
|
28
|
+
|
29
|
+
2. Add `require 'zuckermo'` to your `Rakefile`
|
30
|
+
|
31
|
+
## Contributing
|
32
|
+
|
33
|
+
It would be really cool if this was a fully-compatible Facebook API wrapper, so add whatever functionality you think helps!
|
34
|
+
|
35
|
+
1. Fork it
|
36
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
37
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
38
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
39
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
$:.unshift("/Library/RubyMotion/lib")
|
2
|
+
require 'dotenv'
|
3
|
+
Dotenv.load
|
4
|
+
|
5
|
+
require 'motion/project/template/ios'
|
6
|
+
require "bundler/gem_tasks"
|
7
|
+
|
8
|
+
$:.unshift("./lib/")
|
9
|
+
require './lib/zuckermo'
|
10
|
+
|
11
|
+
Motion::Project::App.setup do |app|
|
12
|
+
# Use `rake config' to see complete project settings.
|
13
|
+
app.name = 'Zuckermo'
|
14
|
+
app.identifier = 'com.zuckermo.test'
|
15
|
+
end
|
data/app/app_delegate.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
class AppDelegate
|
2
|
+
|
3
|
+
def application application, didFinishLaunchingWithOptions: launchOptions
|
4
|
+
@window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
|
5
|
+
|
6
|
+
@controller = UIViewController.alloc.initWithNibName(nil, bundle:nil)
|
7
|
+
|
8
|
+
@window.rootViewController = @controller
|
9
|
+
@window.makeKeyAndVisible
|
10
|
+
|
11
|
+
@label = UILabel.alloc.initWithFrame [ [10,10], [300,100] ]
|
12
|
+
@label.setAccessibilityLabel 'username'
|
13
|
+
@label.setText '...'
|
14
|
+
@controller.view.addSubview @label
|
15
|
+
|
16
|
+
Facebook.app_id = ENV['APP_ID']
|
17
|
+
Facebook.sign_in do |granted, error|
|
18
|
+
if granted
|
19
|
+
@label.setText Facebook.accounts[0].username
|
20
|
+
else
|
21
|
+
puts error.code
|
22
|
+
puts error.localizedDescription
|
23
|
+
puts error.localizedRecoveryOptions
|
24
|
+
puts error.localizedRecoverySuggestion
|
25
|
+
@label.setText 'Fail... See Log'
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
true
|
30
|
+
end
|
31
|
+
end
|
data/lib/zuckermo.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require "zuckermo/version"
|
2
|
+
|
3
|
+
unless defined?(Motion::Project::Config)
|
4
|
+
raise "This file must be required within a RubyMotion project config (usually the Rakefile)."
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'bubble-wrap'
|
8
|
+
|
9
|
+
Motion::Project::App.setup do |app|
|
10
|
+
Dir.glob(File.join(File.dirname(__FILE__), '../motion/**/*.rb')).each do |file|
|
11
|
+
app.files.unshift(file)
|
12
|
+
end
|
13
|
+
app.frameworks += ["Facebook", "Accounts"]
|
14
|
+
end
|
data/motion/facebook.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
module Facebook
|
2
|
+
class << self
|
3
|
+
|
4
|
+
def app_id= id
|
5
|
+
zuckermo.app_id = id
|
6
|
+
end
|
7
|
+
|
8
|
+
def account_store
|
9
|
+
zuckermo.account_store
|
10
|
+
end
|
11
|
+
|
12
|
+
def account_type
|
13
|
+
zuckermo.account_type
|
14
|
+
end
|
15
|
+
|
16
|
+
def accounts
|
17
|
+
zuckermo.accounts
|
18
|
+
end
|
19
|
+
|
20
|
+
def sign_in permissions = ['email'], audience = nil, &block
|
21
|
+
zuckermo.sign_in permissions, audience, &block
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
def zuckermo
|
26
|
+
@zuckermo ||= Zuckermo::AccountStore.alloc.init
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/motion/pollute.rb
ADDED
data/motion/zuckermo.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
module Zuckermo
|
2
|
+
class AccountStore
|
3
|
+
|
4
|
+
def init
|
5
|
+
@app_id = nil
|
6
|
+
@account_store ||= ACAccountStore.alloc.init
|
7
|
+
self
|
8
|
+
end
|
9
|
+
|
10
|
+
attr_accessor :app_id
|
11
|
+
attr_reader :account_store
|
12
|
+
|
13
|
+
def account_type
|
14
|
+
self.account_store.accountTypeWithAccountTypeIdentifier(ACAccountTypeIdentifierFacebook)
|
15
|
+
end
|
16
|
+
|
17
|
+
def accounts
|
18
|
+
self.account_store.accountsWithAccountType(account_type).collect do |ac_account|
|
19
|
+
Zuckermo::User.new ac_account
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def sign_in permissions, audience, &block
|
24
|
+
@permissions, @audience, @callback = permissions, audience, block
|
25
|
+
|
26
|
+
@options =
|
27
|
+
{
|
28
|
+
ACFacebookAppIdKey => @app_id,
|
29
|
+
ACFacebookPermissionsKey => @permissions
|
30
|
+
}
|
31
|
+
|
32
|
+
self.account_store.requestAccessToAccountsWithType( self.account_type,
|
33
|
+
options: @options,
|
34
|
+
completion: -> granted, error do
|
35
|
+
Dispatch::Queue.main.sync do
|
36
|
+
@callback.call(granted, error)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
)
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
data/spec/main_spec.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
describe "Accessing a Facebook account" do
|
2
|
+
extend Bacon::Functional::API
|
3
|
+
|
4
|
+
before do
|
5
|
+
self.window = UIApplication.sharedApplication.keyWindow
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'allows us to retrieve the users name' do
|
9
|
+
wait 1 do
|
10
|
+
tap 'ok'
|
11
|
+
end
|
12
|
+
wait 1 do
|
13
|
+
view('username').text.should.equal ENV['USER']
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
data/zuckermo.gemspec
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path('../lib/zuckermo/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "zuckermo"
|
6
|
+
s.version = Zuckermo::VERSION
|
7
|
+
s.authors = ["Jon Rowe"]
|
8
|
+
s.email = ["hello@jonrowe.co.uk"]
|
9
|
+
s.homepage = "https://github.com/JonRowe/zuckermo"
|
10
|
+
s.summary = "A RubyMotion Facebook Wrapper"
|
11
|
+
s.description = "A RubyMotion Facebook Wrapper, based of @clayallsopp's TwitterMotion wrapper."
|
12
|
+
|
13
|
+
s.files = `git ls-files`.split($\)
|
14
|
+
s.test_files = s.files.grep(%r{^(spec|features)/})
|
15
|
+
s.require_paths = ["lib"]
|
16
|
+
|
17
|
+
s.add_dependency "bubble-wrap", ">= 1.1.2"
|
18
|
+
s.add_development_dependency 'rake'
|
19
|
+
s.add_development_dependency 'dotenv'
|
20
|
+
end
|
metadata
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: zuckermo
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jon Rowe
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDVjCCAj6gAwIBAgIBADANBgkqhkiG9w0BAQUFADBRMQ4wDAYDVQQDDAVoZWxs
|
14
|
+
bzEXMBUGCgmSJomT8ixkARkWB2pvbnJvd2UxEjAQBgoJkiaJk/IsZAEZFgJjbzES
|
15
|
+
MBAGCgmSJomT8ixkARkWAnVrMB4XDTEzMDIwMzA4MTgwNloXDTE0MDIwMzA4MTgw
|
16
|
+
NlowUTEOMAwGA1UEAwwFaGVsbG8xFzAVBgoJkiaJk/IsZAEZFgdqb25yb3dlMRIw
|
17
|
+
EAYKCZImiZPyLGQBGRYCY28xEjAQBgoJkiaJk/IsZAEZFgJ1azCCASIwDQYJKoZI
|
18
|
+
hvcNAQEBBQADggEPADCCAQoCggEBAMhs6ng/SRrYfG7RtQx8liJTZs8tpz7PBnlH
|
19
|
+
qyOwuU0weJc7nh6C9C8LGyJzpkbjJJo1rfTMg7huDyL14Py82dfMDomApif8jNNI
|
20
|
+
8KtviAgB1DrWq0fCDLtu/M77+yuVV3OhDdrAFaBkT/euvdJ8cAKrLxbJ+klgvrcB
|
21
|
+
FK+c4PUV3/zBKghe0l7FuDhyQCsuLNDbWyFvDS97tPjeN6yWuszwg22vZMDdsuzN
|
22
|
+
Cj3M4LLSkbrt+AOUcysEJxI4t6uv2U1bRzHsDfAF0RI/Q7OMtUr+Dtz/2YJ47KKs
|
23
|
+
51ZRjLLGHd10XrIfFSfGyJj1dMbDgLsEBj1sFH4e6dy7gau8TaUCAwEAAaM5MDcw
|
24
|
+
CQYDVR0TBAIwADAdBgNVHQ4EFgQULu5JH2g7RAjoXaZt+fbrfNDI9IkwCwYDVR0P
|
25
|
+
BAQDAgSwMA0GCSqGSIb3DQEBBQUAA4IBAQAf5A4kB769DPKGjPZ++v42FwVi7X7v
|
26
|
+
RpufPs6R4YHyzHXaJmAqnhleZhVJijBgsdb2SigNRbg+IK8XYHg7jkonMgO8OS3D
|
27
|
+
C6w8VB5bI0PqyDOwCGcQkYHYlZZWCghAyBTSBowHAekMb9V3QjJtJ8XkizjshETO
|
28
|
+
ZCVI2AObjlJi8I10aK2tSo9sv2riCKZ92BVSM13zYWn+C/eCP/m9BDiw37UQtuQq
|
29
|
+
2feWfO4gCNmvfFjULOAYHq9JHEjN5SLSXvj5HdSnDcCyIfJKn5Ya3JahWQaWIsXf
|
30
|
+
/NPE/mB57TOwj+d7XUa2NC4HUadF8R51IYEcIB0PpIEzJlKtfXFcOZxO
|
31
|
+
-----END CERTIFICATE-----
|
32
|
+
date: 2013-05-22 00:00:00.000000000 Z
|
33
|
+
dependencies:
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: bubble-wrap
|
36
|
+
requirement: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.1.2
|
41
|
+
type: :runtime
|
42
|
+
prerelease: false
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.1.2
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rake
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: dotenv
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
type: :development
|
70
|
+
prerelease: false
|
71
|
+
version_requirements: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
description: A RubyMotion Facebook Wrapper, based of @clayallsopp's TwitterMotion
|
77
|
+
wrapper.
|
78
|
+
email:
|
79
|
+
- hello@jonrowe.co.uk
|
80
|
+
executables: []
|
81
|
+
extensions: []
|
82
|
+
extra_rdoc_files: []
|
83
|
+
files:
|
84
|
+
- .gitignore
|
85
|
+
- Gemfile
|
86
|
+
- README.md
|
87
|
+
- Rakefile
|
88
|
+
- app/app_delegate.rb
|
89
|
+
- lib/zuckermo.rb
|
90
|
+
- lib/zuckermo/version.rb
|
91
|
+
- motion/facebook.rb
|
92
|
+
- motion/pollute.rb
|
93
|
+
- motion/zuckermo.rb
|
94
|
+
- motion/zuckermo/account_store.rb
|
95
|
+
- motion/zuckermo/user.rb
|
96
|
+
- spec/main_spec.rb
|
97
|
+
- zuckermo.gemspec
|
98
|
+
homepage: https://github.com/JonRowe/zuckermo
|
99
|
+
licenses: []
|
100
|
+
metadata: {}
|
101
|
+
post_install_message:
|
102
|
+
rdoc_options: []
|
103
|
+
require_paths:
|
104
|
+
- lib
|
105
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
|
+
requirements:
|
112
|
+
- - '>='
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: '0'
|
115
|
+
requirements: []
|
116
|
+
rubyforge_project:
|
117
|
+
rubygems_version: 2.0.3
|
118
|
+
signing_key:
|
119
|
+
specification_version: 4
|
120
|
+
summary: A RubyMotion Facebook Wrapper
|
121
|
+
test_files:
|
122
|
+
- spec/main_spec.rb
|
metadata.gz.sig
ADDED
Binary file
|