mogli 0.0.3 → 0.0.4
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/lib/mogli.rb +2 -0
- data/lib/mogli/album.rb +1 -0
- data/lib/mogli/client.rb +15 -2
- data/lib/mogli/client/event.rb +11 -0
- data/lib/mogli/comment.rb +1 -1
- data/lib/mogli/link.rb +6 -0
- data/lib/mogli/model.rb +35 -1
- data/lib/mogli/note.rb +1 -0
- data/lib/mogli/page.rb +1 -10
- data/lib/mogli/photo.rb +1 -0
- data/lib/mogli/post.rb +6 -0
- data/lib/mogli/profile.rb +21 -0
- data/lib/mogli/status.rb +7 -0
- data/lib/mogli/user.rb +4 -5
- metadata +6 -2
data/lib/mogli.rb
CHANGED
@@ -8,6 +8,7 @@ require "hashie"
|
|
8
8
|
|
9
9
|
require "mogli/authenticator"
|
10
10
|
require "mogli/model"
|
11
|
+
require "mogli/profile"
|
11
12
|
require "mogli/fetching_array"
|
12
13
|
require "mogli/action"
|
13
14
|
require "mogli/activity"
|
@@ -25,6 +26,7 @@ require "mogli/note"
|
|
25
26
|
require "mogli/page"
|
26
27
|
require "mogli/photo"
|
27
28
|
require "mogli/post"
|
29
|
+
require "mogli/status"
|
28
30
|
require "mogli/television"
|
29
31
|
require "mogli/video"
|
30
32
|
require "mogli/work"
|
data/lib/mogli/album.rb
CHANGED
data/lib/mogli/client.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require "mogli/client/event"
|
1
2
|
require "mogli/client/user"
|
2
3
|
require "ruby-debug"
|
3
4
|
|
@@ -8,6 +9,7 @@ module Mogli
|
|
8
9
|
attr_reader :expiration
|
9
10
|
|
10
11
|
include HTTParty
|
12
|
+
include Mogli::Client::Event
|
11
13
|
include Mogli::Client::User
|
12
14
|
class UnrecognizeableClassError < Exception; end
|
13
15
|
|
@@ -17,7 +19,9 @@ module Mogli
|
|
17
19
|
|
18
20
|
def initialize(access_token = nil,expiration=nil)
|
19
21
|
@access_token = access_token
|
20
|
-
|
22
|
+
# nil expiration means extended access
|
23
|
+
expiration = 10*365*24*60*60 if expiration.nil? or expiration == 0
|
24
|
+
@expiration = Time.now + expiration
|
21
25
|
@default_params = @access_token ? {:access_token=>access_token} : {}
|
22
26
|
end
|
23
27
|
|
@@ -35,6 +39,15 @@ module Mogli
|
|
35
39
|
new(hash["access_token"],hash["expires"].to_s.to_i)
|
36
40
|
end
|
37
41
|
|
42
|
+
def post(path,klass,body_args)
|
43
|
+
data = self.class.post(api_path(path),:body=>default_params.merge(body_args))
|
44
|
+
map_data(data,klass)
|
45
|
+
end
|
46
|
+
|
47
|
+
def delete(path)
|
48
|
+
self.class.delete(api_path(path),:query=>default_params)
|
49
|
+
end
|
50
|
+
|
38
51
|
def get_and_map(path,klass=nil)
|
39
52
|
data = self.class.get(api_path(path),:query=>default_params)
|
40
53
|
map_data(data,klass)
|
@@ -133,4 +146,4 @@ module Mogli
|
|
133
146
|
end
|
134
147
|
|
135
148
|
end
|
136
|
-
end
|
149
|
+
end
|
data/lib/mogli/comment.rb
CHANGED
data/lib/mogli/link.rb
ADDED
data/lib/mogli/model.rb
CHANGED
@@ -13,6 +13,19 @@ module Mogli
|
|
13
13
|
super(hash||{})
|
14
14
|
end
|
15
15
|
|
16
|
+
def post_params
|
17
|
+
post_params = {}
|
18
|
+
self.class.creation_keys.each do |key|
|
19
|
+
post_params[key] = self[key]
|
20
|
+
end
|
21
|
+
post_params
|
22
|
+
end
|
23
|
+
|
24
|
+
def destroy
|
25
|
+
client.delete(id)
|
26
|
+
freeze
|
27
|
+
end
|
28
|
+
|
16
29
|
def self.included(other)
|
17
30
|
other.extend(ClassMethods)
|
18
31
|
end
|
@@ -35,6 +48,14 @@ module Mogli
|
|
35
48
|
end
|
36
49
|
end
|
37
50
|
|
51
|
+
def self.creation_properties(*args)
|
52
|
+
@creation_properties = args
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.creation_keys
|
56
|
+
@creation_properties || []
|
57
|
+
end
|
58
|
+
|
38
59
|
def self.hash_populating_accessor(method_name,*klass)
|
39
60
|
define_method "#{method_name}=" do |hash|
|
40
61
|
instance_variable_set("@#{method_name}",client.map_data(hash,klass))
|
@@ -42,16 +63,29 @@ module Mogli
|
|
42
63
|
define_method "#{method_name}" do
|
43
64
|
instance_variable_get "@#{method_name}"
|
44
65
|
end
|
66
|
+
|
67
|
+
add_creation_method(method_name,klass)
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
def self.add_creation_method(name,klass)
|
72
|
+
define_method "#{name}_create" do |arg|
|
73
|
+
params = arg.nil? ? {} : arg.post_params
|
74
|
+
klass_to_send = arg.nil? ? nil : klass
|
75
|
+
client.post("#{id}/#{name}", klass_to_send, params)
|
76
|
+
end
|
45
77
|
end
|
46
78
|
|
47
79
|
def self.has_association(name,klass)
|
48
80
|
define_method name do
|
49
81
|
if (ret=instance_variable_get("@#{name}")).nil?
|
50
|
-
ret = client.get_and_map("
|
82
|
+
ret = client.get_and_map("#{id}/#{name}",klass)
|
51
83
|
instance_variable_set("@#{name}",ret)
|
52
84
|
end
|
53
85
|
return ret
|
54
86
|
end
|
87
|
+
|
88
|
+
add_creation_method(name,klass)
|
55
89
|
end
|
56
90
|
|
57
91
|
def self.recognize?(data)
|
data/lib/mogli/note.rb
CHANGED
data/lib/mogli/page.rb
CHANGED
@@ -1,21 +1,12 @@
|
|
1
1
|
module Mogli
|
2
|
-
class Page <
|
2
|
+
class Page < Profile
|
3
3
|
|
4
4
|
define_properties :id, :name, :category
|
5
5
|
|
6
|
-
hash_populating_accessor :albums, "Album"
|
7
|
-
hash_populating_accessor :photos, "Photo"
|
8
|
-
hash_populating_accessor :feed, "Post"
|
9
|
-
hash_populating_accessor :posts, "Post"
|
10
|
-
hash_populating_accessor :events, "Event"
|
11
|
-
hash_populating_accessor :videos, "Video"
|
12
6
|
|
13
7
|
def self.recognize?(hash)
|
14
8
|
hash.has_key?("category")
|
15
9
|
end
|
16
10
|
|
17
|
-
def to_s
|
18
|
-
name
|
19
|
-
end
|
20
11
|
end
|
21
12
|
end
|
data/lib/mogli/photo.rb
CHANGED
data/lib/mogli/post.rb
CHANGED
@@ -5,8 +5,14 @@ module Mogli
|
|
5
5
|
:description, :source, :icon, :attribution, :actions, :likes,
|
6
6
|
:created_time, :updated_time, :privacy
|
7
7
|
|
8
|
+
creation_properties :message, :picture, :link, :name, :description
|
9
|
+
|
8
10
|
hash_populating_accessor :actions, "Action"
|
9
11
|
hash_populating_accessor :comments, "Comment"
|
10
12
|
hash_populating_accessor :from, "User"
|
13
|
+
|
14
|
+
def likes_create
|
15
|
+
client.post("#{id}/likes",nil,{})
|
16
|
+
end
|
11
17
|
end
|
12
18
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Mogli
|
2
|
+
class Profile < Model
|
3
|
+
define_properties :id, :name
|
4
|
+
|
5
|
+
has_association :feed, "Post"
|
6
|
+
has_association :links, "Link"
|
7
|
+
has_association :photos, "Photo"
|
8
|
+
has_association :groups, "Group"
|
9
|
+
has_association :albums,"Album"
|
10
|
+
has_association :videos, "Video"
|
11
|
+
has_association :notes, "Note"
|
12
|
+
has_association :posts, "Post"
|
13
|
+
has_association :events, "Event"
|
14
|
+
has_association :links, "Link"
|
15
|
+
has_association :statuses, "Status"
|
16
|
+
|
17
|
+
def to_s
|
18
|
+
name
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/mogli/status.rb
ADDED
data/lib/mogli/user.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
|
2
2
|
module Mogli
|
3
|
-
class User <
|
3
|
+
class User < Profile
|
4
4
|
|
5
|
-
define_properties :
|
5
|
+
define_properties :first_name, :last_name, :link, :about, :birthday,
|
6
6
|
:email, :website, :timezone, :updated_time, :verified
|
7
7
|
|
8
8
|
def self.recognize?(hash)
|
@@ -13,14 +13,13 @@ module Mogli
|
|
13
13
|
hash_populating_accessor :education, "Education"
|
14
14
|
|
15
15
|
has_association :activities,"Activity"
|
16
|
-
has_association :albums,"Album"
|
17
16
|
has_association :friends, "User"
|
18
17
|
has_association :interests, "Interest"
|
19
18
|
has_association :music, "Music"
|
20
19
|
has_association :books, "Book"
|
21
20
|
has_association :movies, "Movie"
|
22
21
|
has_association :television, "Television"
|
23
|
-
has_association :
|
24
|
-
|
22
|
+
has_association :likes, "Page"
|
23
|
+
|
25
24
|
end
|
26
25
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mogli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Mangino
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-05-
|
12
|
+
date: 2010-05-04 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -47,6 +47,7 @@ files:
|
|
47
47
|
- lib/mogli/album.rb
|
48
48
|
- lib/mogli/authenticator.rb
|
49
49
|
- lib/mogli/book.rb
|
50
|
+
- lib/mogli/client/event.rb
|
50
51
|
- lib/mogli/client/user.rb
|
51
52
|
- lib/mogli/client.rb
|
52
53
|
- lib/mogli/comment.rb
|
@@ -55,6 +56,7 @@ files:
|
|
55
56
|
- lib/mogli/fetching_array.rb
|
56
57
|
- lib/mogli/group.rb
|
57
58
|
- lib/mogli/interest.rb
|
59
|
+
- lib/mogli/link.rb
|
58
60
|
- lib/mogli/model.rb
|
59
61
|
- lib/mogli/movie.rb
|
60
62
|
- lib/mogli/music.rb
|
@@ -62,6 +64,8 @@ files:
|
|
62
64
|
- lib/mogli/page.rb
|
63
65
|
- lib/mogli/photo.rb
|
64
66
|
- lib/mogli/post.rb
|
67
|
+
- lib/mogli/profile.rb
|
68
|
+
- lib/mogli/status.rb
|
65
69
|
- lib/mogli/television.rb
|
66
70
|
- lib/mogli/user.rb
|
67
71
|
- lib/mogli/video.rb
|