vkdonate 1.0.1 → 1.0.2
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 +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/lib/vkdonate/donate.rb +94 -0
- data/lib/vkdonate/version.rb +1 -1
- data/lib/vkdonate.rb +7 -92
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: aef0225bab369599e43474b1164d5d0560286e217e36223b28001c497e3a1be6
|
|
4
|
+
data.tar.gz: ed0165051595e9d2b4ef0fd40717410a5bbfc8eb16c864797d55713805596cbc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7fa8c5c596bf40421b0c4a198cdd66c842bc99b4280c925e9d5b485e8264df1104adea0d513151ef7b0d00a435893e56f808b48b67f0f9bcc4f591db4571991a
|
|
7
|
+
data.tar.gz: f369642650d2bf76fc2ab76add329412e6fbfcc2afd3767c18dd9cccb775ce57db7d5daf94752a1b999ad09d74c84f5fd6d247a36723bee272c8cdb6a9d3d915
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -25,7 +25,7 @@ You can check documentation [here](https://www.rubydoc.info/gems/vkdonate/).
|
|
|
25
25
|
To interact with API you are to initialize client firstly:
|
|
26
26
|
|
|
27
27
|
```ruby
|
|
28
|
-
client = Vkdonate::Client("API KEY GOES HERE")
|
|
28
|
+
client = Vkdonate::Client.new("API KEY GOES HERE")
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
After that you can call method `Client#donates` which returnes array of `Donate` objects:
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
module Vkdonate
|
|
2
|
+
|
|
3
|
+
##
|
|
4
|
+
# Single donation
|
|
5
|
+
class Donate
|
|
6
|
+
|
|
7
|
+
##
|
|
8
|
+
# @return [Integer] Unique payment ID.
|
|
9
|
+
attr_reader :id
|
|
10
|
+
|
|
11
|
+
##
|
|
12
|
+
# @return [Integer] Donator VK ID.
|
|
13
|
+
attr_reader :uid
|
|
14
|
+
|
|
15
|
+
##
|
|
16
|
+
# @return [DateTime] Date and time of donation.
|
|
17
|
+
attr_reader :date
|
|
18
|
+
|
|
19
|
+
##
|
|
20
|
+
# @return [Integer] Size of donation.
|
|
21
|
+
attr_reader :sum
|
|
22
|
+
|
|
23
|
+
##
|
|
24
|
+
# @return [String, nil] User message or +nil+ if empty.
|
|
25
|
+
attr_reader :msg
|
|
26
|
+
alias_method :message, :msg
|
|
27
|
+
|
|
28
|
+
##
|
|
29
|
+
# @return [Boolean] Whether donation is anonymous.
|
|
30
|
+
attr_reader :anon
|
|
31
|
+
alias_method :anon?, :anon
|
|
32
|
+
|
|
33
|
+
##
|
|
34
|
+
# @return [Boolean] Whether donate is visible in group.
|
|
35
|
+
attr_reader :visible
|
|
36
|
+
alias_method :visible?, :visible
|
|
37
|
+
|
|
38
|
+
##
|
|
39
|
+
# @return [String] Human readable information.
|
|
40
|
+
def to_s
|
|
41
|
+
"Donation ##{id} by @#{uid} for #{sum}RUR (at #{date})"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
##
|
|
45
|
+
# Save data about donation.
|
|
46
|
+
#
|
|
47
|
+
# @param options [Hash]
|
|
48
|
+
#
|
|
49
|
+
# @option options [Integer] id
|
|
50
|
+
# @option options [Integer] uid
|
|
51
|
+
# @option options [DateTime] date
|
|
52
|
+
# @option options [Integer] sum
|
|
53
|
+
# @option options [String, nil] msg
|
|
54
|
+
# @option options [Boolean] anon
|
|
55
|
+
# @option options [Boolean] visible
|
|
56
|
+
def initialize(options)
|
|
57
|
+
@id = options[:id].to_i
|
|
58
|
+
|
|
59
|
+
@uid = options[:uid].to_i
|
|
60
|
+
|
|
61
|
+
@date = options[:date]
|
|
62
|
+
raise unless DateTime === @date
|
|
63
|
+
|
|
64
|
+
@sum = options[:sum].to_i
|
|
65
|
+
|
|
66
|
+
@msg = options[:msg].to_s
|
|
67
|
+
@msg = nil if @msg.empty?
|
|
68
|
+
|
|
69
|
+
@anon = !!options[:anon]
|
|
70
|
+
|
|
71
|
+
@visible = !!options[:visible]
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
##
|
|
75
|
+
# Parse from JSON hash.
|
|
76
|
+
#
|
|
77
|
+
# @param hash [Hash] parsed JSON hash.
|
|
78
|
+
#
|
|
79
|
+
# @return [Donate]
|
|
80
|
+
def self.from_json(hash)
|
|
81
|
+
self.new(
|
|
82
|
+
id: hash["id"].to_i,
|
|
83
|
+
uid: hash["uid"].to_i,
|
|
84
|
+
date: DateTime.parse(hash["date"] + " #{TIME_OFFSET}"),
|
|
85
|
+
sum: hash["sum"].to_i,
|
|
86
|
+
msg: hash["msg"].empty? ? nil : hash["msg"],
|
|
87
|
+
anon: !hash["anon"].to_i.zero?,
|
|
88
|
+
visible: !hash["visible"].to_i.zero?
|
|
89
|
+
)
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
end
|
data/lib/vkdonate/version.rb
CHANGED
data/lib/vkdonate.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require "vkdonate/version"
|
|
2
|
+
require "vkdonate/donate"
|
|
2
3
|
|
|
3
4
|
require "net/http"
|
|
4
5
|
require "json"
|
|
@@ -28,6 +29,10 @@ module Vkdonate
|
|
|
28
29
|
# Time offset of API server.
|
|
29
30
|
TIME_OFFSET = "UTC+3"
|
|
30
31
|
|
|
32
|
+
##
|
|
33
|
+
# Requests timeout in seconds
|
|
34
|
+
REQUEST_TIMEOUT = 10
|
|
35
|
+
|
|
31
36
|
##
|
|
32
37
|
# @!macro [new] request_option
|
|
33
38
|
# @option options [Integer] count (10) amount of donates (up to 50).
|
|
@@ -96,97 +101,6 @@ module Vkdonate
|
|
|
96
101
|
request(api_key, :donates, options)
|
|
97
102
|
end
|
|
98
103
|
|
|
99
|
-
##
|
|
100
|
-
# Single donation
|
|
101
|
-
class Donate
|
|
102
|
-
|
|
103
|
-
##
|
|
104
|
-
# @return [Integer] Unique payment ID.
|
|
105
|
-
attr_reader :id
|
|
106
|
-
|
|
107
|
-
##
|
|
108
|
-
# @return [Integer] Donator VK ID.
|
|
109
|
-
attr_reader :uid
|
|
110
|
-
|
|
111
|
-
##
|
|
112
|
-
# @return [DateTime] Date and time of donation.
|
|
113
|
-
attr_reader :date
|
|
114
|
-
|
|
115
|
-
##
|
|
116
|
-
# @return [Integer] Size of donation.
|
|
117
|
-
attr_reader :sum
|
|
118
|
-
|
|
119
|
-
##
|
|
120
|
-
# @return [String, nil] User message or +nil+ if empty.
|
|
121
|
-
attr_reader :msg
|
|
122
|
-
alias_method :message, :msg
|
|
123
|
-
|
|
124
|
-
##
|
|
125
|
-
# @return [Boolean] Whether donation is anonymous.
|
|
126
|
-
attr_reader :anon
|
|
127
|
-
alias_method :anon?, :anon
|
|
128
|
-
|
|
129
|
-
##
|
|
130
|
-
# @return [Boolean] Whether donate is visible in group.
|
|
131
|
-
attr_reader :visible
|
|
132
|
-
alias_method :visible?, :visible
|
|
133
|
-
|
|
134
|
-
##
|
|
135
|
-
# @return [String] Human readable information.
|
|
136
|
-
def to_s
|
|
137
|
-
"Donation ##{id} by @#{uid} for #{sum}RUR (at #{date})"
|
|
138
|
-
end
|
|
139
|
-
|
|
140
|
-
##
|
|
141
|
-
# Save data about donation.
|
|
142
|
-
#
|
|
143
|
-
# @param options [Hash]
|
|
144
|
-
#
|
|
145
|
-
# @option options [Integer] id
|
|
146
|
-
# @option options [Integer] uid
|
|
147
|
-
# @option options [DateTime] date
|
|
148
|
-
# @option options [Integer] sum
|
|
149
|
-
# @option options [String, nil] msg
|
|
150
|
-
# @option options [Boolean] anon
|
|
151
|
-
# @option options [Boolean] visible
|
|
152
|
-
def initialize(options)
|
|
153
|
-
@id = options[:id].to_i
|
|
154
|
-
|
|
155
|
-
@uid = options[:uid].to_i
|
|
156
|
-
|
|
157
|
-
@date = options[:date]
|
|
158
|
-
raise unless DateTime === @date
|
|
159
|
-
|
|
160
|
-
@sum = options[:sum].to_i
|
|
161
|
-
|
|
162
|
-
@msg = options[:msg].to_s
|
|
163
|
-
@msg = nil if @msg.empty?
|
|
164
|
-
|
|
165
|
-
@anon = !!options[:anon]
|
|
166
|
-
|
|
167
|
-
@visible = !!options[:visible]
|
|
168
|
-
end
|
|
169
|
-
|
|
170
|
-
##
|
|
171
|
-
# Parse from JSON hash.
|
|
172
|
-
#
|
|
173
|
-
# @param hash [Hash] parsed JSON hash.
|
|
174
|
-
#
|
|
175
|
-
# @return [Donate]
|
|
176
|
-
def self.from_json(hash)
|
|
177
|
-
self.new(
|
|
178
|
-
id: hash["id"].to_i,
|
|
179
|
-
uid: hash["uid"].to_i,
|
|
180
|
-
date: DateTime.parse(hash["date"] + " #{TIME_OFFSET}"),
|
|
181
|
-
sum: hash["sum"].to_i,
|
|
182
|
-
msg: hash["msg"].empty? ? nil : hash["msg"],
|
|
183
|
-
anon: !hash["anon"].to_i.zero?,
|
|
184
|
-
visible: !hash["visible"].to_i.zero?
|
|
185
|
-
)
|
|
186
|
-
end
|
|
187
|
-
|
|
188
|
-
end
|
|
189
|
-
|
|
190
104
|
##
|
|
191
105
|
# Client which saves API key.
|
|
192
106
|
class Client
|
|
@@ -196,7 +110,8 @@ module Vkdonate
|
|
|
196
110
|
#
|
|
197
111
|
# @param api_key [String]
|
|
198
112
|
def initialize(api_key)
|
|
199
|
-
@api_key = api_key
|
|
113
|
+
@api_key = api_key.to_s
|
|
114
|
+
raise "API key can not be empty" if @api_key.empty?
|
|
200
115
|
end
|
|
201
116
|
|
|
202
117
|
##
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: vkdonate
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Fizvlad
|
|
@@ -68,6 +68,7 @@ files:
|
|
|
68
68
|
- Rakefile
|
|
69
69
|
- bin/console
|
|
70
70
|
- lib/vkdonate.rb
|
|
71
|
+
- lib/vkdonate/donate.rb
|
|
71
72
|
- lib/vkdonate/version.rb
|
|
72
73
|
- vkdonate.gemspec
|
|
73
74
|
homepage: https://github.com/fizvlad/vkdonate-rb
|