mailru-api 0.4.2 → 0.5.0

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/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