mailru-api 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/mailru-api.rb CHANGED
@@ -2,16 +2,7 @@
2
2
 
3
3
  require 'mailru-api/error'
4
4
  require 'mailru-api/request'
5
- require 'mailru-api/audio'
6
- require 'mailru-api/events'
7
- require 'mailru-api/friends'
8
- require 'mailru-api/guestbook'
9
- require 'mailru-api/mail'
10
- require 'mailru-api/mobile'
11
- require 'mailru-api/notifications'
12
- require 'mailru-api/photos'
13
- require 'mailru-api/stream'
14
- require 'mailru-api/users'
5
+ require 'mailru-api/dsl'
15
6
 
16
7
  module MailRU
17
8
  class APIConfiguration
@@ -90,47 +81,90 @@ module MailRU
90
81
  end
91
82
 
92
83
  def audio
93
- return Audio.new(self)
84
+ DSL.new(self.clone, 'audio') do
85
+ api 'get'
86
+ api 'link'
87
+ api 'search'
88
+ end
94
89
  end
95
90
 
96
91
  def events
97
- return Events.new(self)
92
+ DSL.new(self.clone, 'events') do
93
+ api 'getNewCount'
94
+ end
98
95
  end
99
96
 
100
97
  def friends
101
- return Friends.new(self)
98
+ DSL.new(self.clone, 'friends') do
99
+ api 'get'
100
+ api 'getAppUsers'
101
+ api 'getInvitationsCount'
102
+ api 'getOnline'
103
+ end
102
104
  end
103
105
 
104
106
  def guestbook
105
- return Guestbook.new(self)
107
+ DSL.new(self, 'guestbook') do
108
+ api 'get'
109
+ api 'post', :post
110
+ end
106
111
  end
107
112
 
108
113
  def mail
109
- return Mail.new(self)
114
+ DSL.new(self, 'mail') do
115
+ api 'getUnreadCount'
116
+ end
110
117
  end
111
118
 
112
119
  def messages
113
- return Messages.new(self)
120
+ DSL.new(self, 'messages') do
121
+ api 'getThread'
122
+ api 'getThreadsList'
123
+ api 'getUnreadCount'
124
+ api 'post', :post
125
+ end
114
126
  end
115
127
 
116
128
  def mobile
117
- return Mobile.new(self)
129
+ DSL.new(self, 'mobile') do
130
+ api 'getCanvas'
131
+ end
118
132
  end
119
133
 
120
134
  def notifications
121
- return Notifications.new(self)
135
+ DSL.new(self, 'notifications') do
136
+ api 'send'
137
+ end
122
138
  end
123
139
 
124
140
  def photos
125
- return Photos.new(self)
141
+ DSL.new(self, 'photos') do
142
+ api 'createAlbum'
143
+ api 'get'
144
+ api 'getAlbums'
145
+ api 'upload', :post
146
+ end
126
147
  end
127
148
 
128
149
  def stream
129
- return Stream.new(self)
150
+ DSL.new(self, 'stream') do
151
+ api 'comment'
152
+ api 'get'
153
+ api 'getByAuthor'
154
+ api 'like'
155
+ api 'post', :post
156
+ api 'share', :post
157
+ api 'unlike'
158
+ end
130
159
  end
131
160
 
132
161
  def users
133
- return Users.new(self)
162
+ DSL.new(self, 'users') do
163
+ api 'getBalance'
164
+ api 'getInfo'
165
+ api 'hasAppPermission'
166
+ api 'isAppUser'
167
+ end
134
168
  end
135
169
  end
136
170
  end
@@ -0,0 +1,33 @@
1
+ #:encoding: utf-8
2
+
3
+ module MailRU
4
+ class API
5
+ class DSL
6
+ def initialize api, group, &block
7
+ @api = api
8
+ @group = group
9
+ if block_given?
10
+ instance_eval(&block)
11
+ end
12
+ end
13
+
14
+ def api name, method = :get
15
+ self.class.send(:define_method, underscore(name)) do |params = {}|
16
+ return GetRequest.new(@api, "#{@group}.#{name}", params).get if method == :get
17
+ return PostRequest.new(@api, "#{@group}.#{name}", params).post if method == :post
18
+ raise Error.create(0, 'Internal Error: HTTP method must be GET or POST!')
19
+ end
20
+ end
21
+
22
+ private
23
+
24
+ def underscore s
25
+ s.gsub(/::/, '/').
26
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
27
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
28
+ tr("-", "_").
29
+ downcase
30
+ end
31
+ end
32
+ end
33
+ end
@@ -6,6 +6,8 @@ module MailRU
6
6
  attr_accessor :code, :description
7
7
 
8
8
  def initialize code, description
9
+ super("#{code}, #{description}")
10
+
9
11
  @code = Integer(code)
10
12
  @description = description
11
13
  end
@@ -65,7 +65,7 @@ module MailRU
65
65
 
66
66
  error = response if response.name == 'error'
67
67
  if error
68
- raise MailRU::API::Error.create(
68
+ raise Error.create(
69
69
  error.elements['error_code'].text,
70
70
  error.elements['error_msg'].text
71
71
  )
@@ -75,7 +75,7 @@ module MailRU
75
75
  if response.is_a?(Hash)
76
76
  error = response['error']
77
77
  if error
78
- raise MailRU::API::Error.create(error['error_code'], error['error_msg'])
78
+ raise Error.create(error['error_code'], error['error_msg'])
79
79
  end
80
80
  end
81
81
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailru-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -18,19 +18,9 @@ extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
20
  - lib/mailru-api.rb
21
- - lib/mailru-api/audio.rb
22
21
  - lib/mailru-api/error.rb
23
- - lib/mailru-api/events.rb
24
- - lib/mailru-api/friends.rb
25
- - lib/mailru-api/guestbook.rb
26
- - lib/mailru-api/mail.rb
27
- - lib/mailru-api/messages.rb
28
- - lib/mailru-api/mobile.rb
29
- - lib/mailru-api/notifications.rb
30
- - lib/mailru-api/photos.rb
31
22
  - lib/mailru-api/request.rb
32
- - lib/mailru-api/stream.rb
33
- - lib/mailru-api/users.rb
23
+ - lib/mailru-api/dsl.rb
34
24
  homepage: ''
35
25
  licenses:
36
26
  - MIT
@@ -1,23 +0,0 @@
1
- #:encoding: utf-8
2
-
3
- module MailRU
4
- class API
5
- class Audio
6
- def initialize api
7
- @api = api
8
- end
9
-
10
- def get params = {}
11
- GetRequest.new(@api, 'audio.get', params).get
12
- end
13
-
14
- def link params = {}
15
- GetRequest.new(@api, 'audio.link', params).get
16
- end
17
-
18
- def search params = {}
19
- GetRequest.new(@api, 'audio.search', params).get
20
- end
21
- end
22
- end
23
- end
@@ -1,15 +0,0 @@
1
- #:encoding: utf-8
2
-
3
- module MailRU
4
- class API
5
- class Events
6
- def initialize api
7
- @api = api
8
- end
9
-
10
- def get_new_count
11
- GetRequest.new(@api, 'events.getNewCount', {}).get
12
- end
13
- end
14
- end
15
- end
@@ -1,31 +0,0 @@
1
- #:encoding: utf-8
2
-
3
- module MailRU
4
- class API
5
- class Friends
6
- RETURN_OBJECTS = 1
7
- RETURN_UIDS = 0
8
-
9
- def initialize api
10
- @api = api
11
- end
12
-
13
- def get params = {}
14
- GetRequest.new(@api, 'friends.get', params).get
15
- end
16
-
17
- def get_app_users params = {}
18
- GetRequest.new(@api, 'friends.getAppUsers', params).get
19
- end
20
-
21
- def get_invitations_count params = {}
22
- GetRequest.new(@api, 'friends.getInvitationsCount', params).get
23
- end
24
-
25
- def get_online params = {}
26
- GetRequest.new(@api, 'friends.getOnline', params).get
27
- end
28
- end
29
- end
30
- end
31
-
@@ -1,19 +0,0 @@
1
- #:encoding: utf-8
2
-
3
- module MailRU
4
- class API
5
- class Guestbook
6
- def initialize api
7
- @api = api
8
- end
9
-
10
- def get params = {}
11
- GetRequest.new(@api, 'guestbook.get', params).get
12
- end
13
-
14
- def post params = {}
15
- PostRequest.new(@api, 'guestbook.post', params).post
16
- end
17
- end
18
- end
19
- end
@@ -1,15 +0,0 @@
1
- #:encoding: utf-8
2
-
3
- module MailRU
4
- class API
5
- class Mail
6
- def initialize api
7
- @api = api
8
- end
9
-
10
- def get_unread_count params = {}
11
- GetRequest.new(@api, 'mail.getUnreadCount', params).get
12
- end
13
- end
14
- end
15
- end
@@ -1,23 +0,0 @@
1
- #:encoding: utf-8
2
-
3
- module MyMailRU
4
- class API
5
- class Messages
6
- def get_thread params = {}
7
- GetRequest.new(@api, 'messages.getThread', params).get
8
- end
9
-
10
- def get_threads_list params = {}
11
- GetRequest.new(@api, 'messages.getThreadsList', params).get
12
- end
13
-
14
- def get_unread_count params = {}
15
- GetRequest.new(@api, 'messages.getUnreadCount', params).get
16
- end
17
-
18
- def post params = {}
19
- PostRequest.new(@api, 'messages.post', params).post
20
- end
21
- end
22
- end
23
- end
@@ -1,18 +0,0 @@
1
- #:encoding: utf-8
2
-
3
- module MailRU
4
- class API
5
- class Mobile
6
- BASIC = 'basic'
7
- SMARTPHONE = 'smartphone'
8
-
9
- def initialize api
10
- @api = api
11
- end
12
-
13
- def get_canvas params = {}
14
- GetRequest.new(@api, 'mobile.getCanvas', params, Request::Secure::No).get
15
- end
16
- end
17
- end
18
- end
@@ -1,15 +0,0 @@
1
- #:encoding: utf-8
2
-
3
- module MailRU
4
- class API
5
- class Notifications
6
- def initialize api
7
- @api = api
8
- end
9
-
10
- def send params = {}
11
- GetRequest.new(@api, 'notifications.send', params, Request::Secure::Yes).get
12
- end
13
- end
14
- end
15
- end
@@ -1,27 +0,0 @@
1
- #:encoding: utf-8
2
-
3
- module MailRU
4
- class API
5
- class Photos
6
- def initialize api
7
- @api = api
8
- end
9
-
10
- def create_album params = {}
11
- GetRequest.new(@api, 'photos.createAlbum', params).get
12
- end
13
-
14
- def get params = {}
15
- GetRequest.new(@api, 'photos.get', params).get
16
- end
17
-
18
- def get_albums params = {}
19
- GetRequest.new(@api, 'photos.getAlbums', params).get
20
- end
21
-
22
- def upload params = {}
23
- PostRequest.new(@api, 'photos.upload', params).post
24
- end
25
- end
26
- end
27
- end
@@ -1,39 +0,0 @@
1
- #:encoding: utf-8
2
-
3
- module MailRU
4
- class API
5
- class Stream
6
- def initialize api
7
- @api = api
8
- end
9
-
10
- def comment params = {}
11
- GetRequest.new(@api, 'stream.comment', params).get
12
- end
13
-
14
- def get params = {}
15
- GetRequest.new(@api, 'stream.get', params).get
16
- end
17
-
18
- def get_by_author params = {}
19
- GetRequest.new(@api, 'stream.getByAuthor', params).get
20
- end
21
-
22
- def like params = {}
23
- GetRequest.new(@api, 'stream.like', params).get
24
- end
25
-
26
- def post params = {}
27
- PostRequest.new(@api, 'stream.post', params).post
28
- end
29
-
30
- def share params ={}
31
- PostRequest.new(@api, 'stream.share', params).post
32
- end
33
-
34
- def unlike params = {}
35
- GetRequest.new(@api, 'stream.unlike', params).get
36
- end
37
- end
38
- end
39
- end
@@ -1,27 +0,0 @@
1
- #:encoding: utf-8
2
-
3
- module MailRU
4
- class API
5
- class Users
6
- def initialize api
7
- @api = api
8
- end
9
-
10
- def get_balance
11
- GetRequest.new(@api, 'users.getBalance', params).get
12
- end
13
-
14
- def get_info params = {}
15
- GetRequest.new(@api, 'users.getInfo', params).get
16
- end
17
-
18
- def has_app_permission params = {}
19
- GetRequest.new(@api, 'users.hasAppPermission', params).get
20
- end
21
-
22
- def is_app_user
23
- GetRequest.new(@api, 'users.isAppUser', params).get
24
- end
25
- end
26
- end
27
- end