client_smsapi 0.1.0 → 0.2.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.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.rspec +2 -1
- data/.ruby-version +1 -0
- data/.travis.yml +1 -0
- data/CHANGELOG.md +12 -0
- data/README.md +40 -9
- data/Rakefile +7 -3
- data/client_smsapi.gemspec +17 -12
- data/lib/client_smsapi.rb +24 -3
- data/lib/client_smsapi/configuration.rb +5 -0
- data/lib/client_smsapi/error/messages.yml +55 -0
- data/lib/client_smsapi/response.rb +17 -0
- data/lib/client_smsapi/response/error.rb +22 -0
- data/lib/client_smsapi/response/regular.rb +14 -0
- data/lib/client_smsapi/sms.rb +7 -0
- data/lib/client_smsapi/sms/client.rb +64 -0
- data/lib/client_smsapi/sms/message.rb +32 -0
- data/lib/client_smsapi/sms/message/2way.rb +15 -0
- data/lib/client_smsapi/sms/message/eco.rb +15 -0
- data/lib/client_smsapi/sms/message/pro.rb +8 -0
- data/lib/client_smsapi/validators.rb +2 -0
- data/lib/client_smsapi/validators/message_body_validator.rb +50 -0
- data/lib/client_smsapi/validators/phone_number_validator.rb +18 -0
- data/lib/client_smsapi/version.rb +2 -2
- metadata +74 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e9ff6b11a54019d8d1a170e4abd3e0cd797db92
|
4
|
+
data.tar.gz: 6bec8a73814b01558332168f50f87ef448ad221d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f55fb5bc0ddff72e9452bc140eb265977b10ce9241ba729db2bf56a89e39eebea804d3f2cf7bd61fffd7f14651671c8d2c46e00b370a9b4b49956be7d98801b
|
7
|
+
data.tar.gz: 1e279094ce0315a1c532dd59edb090feb70cd5781c9e5c13b575b18862b970c4399ffe09a4c108456ea75492a8033ab4bfa634088ba4da0d27cc64d08d63b06d
|
data/.rspec
CHANGED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.2.0@sms_api
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
@@ -1,8 +1,15 @@
|
|
1
|
-
#
|
1
|
+
# Client SMSApi
|
2
2
|
|
3
|
-
|
3
|
+
[![Code Climate][1]][2] | [![Test Coverage][3]][4] | [![Gem Version][5]][6]
|
4
4
|
|
5
|
-
|
5
|
+
[1]: https://codeclimate.com/github/mentero/client_smsapi/badges/gpa.svg
|
6
|
+
[2]: https://codeclimate.com/github/mentero/client_smsapi
|
7
|
+
[3]: https://codeclimate.com/github/mentero/client_smsapi/badges/coverage.svg
|
8
|
+
[4]: https://codeclimate.com/github/mentero/client_smsapi/coverage
|
9
|
+
[5]: https://badge.fury.io/rb/client_smsapi.svg
|
10
|
+
[6]: http://badge.fury.io/rb/client_smsapi
|
11
|
+
|
12
|
+
For details visit [SMSApi](http://www.smsapi.pl/) homepage
|
6
13
|
|
7
14
|
## Installation
|
8
15
|
|
@@ -20,17 +27,41 @@ Or install it yourself as:
|
|
20
27
|
|
21
28
|
$ gem install client_smsapi
|
22
29
|
|
30
|
+
## Configuration
|
31
|
+
|
32
|
+
The client needs your credentials. Configure them!
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
SMSApi.configure do |config|
|
36
|
+
config.username = 'what_a_username'
|
37
|
+
config.secret = 'what_a_secret'
|
38
|
+
end
|
39
|
+
```
|
40
|
+
|
41
|
+
Rails users are recommended to put this code into initializer file such as `config/initializers/smsapi.rb`
|
42
|
+
|
43
|
+
|
23
44
|
## Usage
|
24
45
|
|
25
|
-
|
46
|
+
```ruby
|
47
|
+
message = SMSApi::SMS::Message::Eco.new(to: 48123456789, body: 'test')
|
48
|
+
SMSApi::SMS::Client.new.send_message!(message)
|
49
|
+
#<SMSApi::Response::Regular:0x007f82eca9ee78 @id=1440528348109731150, @points=0.07, @status=:ok>
|
50
|
+
```
|
26
51
|
|
27
|
-
|
52
|
+
`.send_message!` will raise an error in case of failure.
|
53
|
+
There is also `.send_message` alternative available.
|
28
54
|
|
29
|
-
|
55
|
+
## Test mode
|
30
56
|
|
31
|
-
|
57
|
+
You can use library in `test_mode`. Test mode will perform API request without sending a message and charging you.
|
32
58
|
|
33
|
-
|
59
|
+
```ruby
|
60
|
+
message = SMSApi::SMS::Message::Eco.new(to: 48123456789, body: 'test')
|
61
|
+
SMSApi::SMS::Client.new(test_mode: true).send_message!(message)
|
62
|
+
#<SMSApi::Response::Regular:0x007f82eca9ee78 @id=1440528348109731150, @points=0.07, @status=:ok>
|
63
|
+
```
|
34
64
|
|
35
|
-
|
65
|
+
## Contributing
|
36
66
|
|
67
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/mentero/client_smsapi.
|
data/Rakefile
CHANGED
@@ -1,6 +1,10 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require 'rspec/core/rake_task'
|
3
3
|
|
4
4
|
RSpec::Core::RakeTask.new(:spec)
|
5
5
|
|
6
|
-
task :
|
6
|
+
task default: :spec
|
7
|
+
|
8
|
+
task :console do
|
9
|
+
exec 'pry -r client_smsapi -I ./lib'
|
10
|
+
end
|
data/client_smsapi.gemspec
CHANGED
@@ -4,21 +4,26 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'client_smsapi/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
8
|
-
spec.version =
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
7
|
+
spec.name = 'client_smsapi'
|
8
|
+
spec.version = SMSApi::VERSION
|
9
|
+
spec.authors = ['Artur Debski']
|
10
|
+
spec.email = ['xmentero@gmail.com']
|
11
11
|
|
12
|
-
spec.summary =
|
13
|
-
spec.description =
|
14
|
-
spec.homepage =
|
12
|
+
spec.summary = 'smsapi.pl ruby client'
|
13
|
+
spec.description = 'smsapi.pl ruby client'
|
14
|
+
spec.homepage = 'https://github.com/mentero/client_smsapi'
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
|
-
spec.bindir =
|
17
|
+
spec.bindir = 'exe'
|
18
18
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
|
-
spec.require_paths = [
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.
|
22
|
-
|
23
|
-
spec.add_development_dependency
|
21
|
+
spec.add_dependency 'httparty', '~> 0.13'
|
22
|
+
|
23
|
+
spec.add_development_dependency 'bundler', '~> 1.10'
|
24
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
25
|
+
spec.add_development_dependency 'rspec', '~> 3.3'
|
26
|
+
spec.add_development_dependency 'pry'
|
27
|
+
spec.add_development_dependency 'simplecov'
|
28
|
+
spec.add_development_dependency 'codeclimate-test-reporter'
|
24
29
|
end
|
data/lib/client_smsapi.rb
CHANGED
@@ -1,5 +1,26 @@
|
|
1
|
-
require
|
1
|
+
require 'client_smsapi/version'
|
2
|
+
require 'client_smsapi/response'
|
3
|
+
require 'client_smsapi/configuration'
|
4
|
+
require 'client_smsapi/validators'
|
2
5
|
|
3
|
-
|
4
|
-
|
6
|
+
require 'httparty'
|
7
|
+
|
8
|
+
require 'client_smsapi/sms'
|
9
|
+
|
10
|
+
module SMSApi
|
11
|
+
class << self
|
12
|
+
attr_writer :configuration
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.configuration
|
16
|
+
@configuration ||= Configuration.new
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.reset
|
20
|
+
@configuration = Configuration.new
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.configure
|
24
|
+
yield(configuration)
|
25
|
+
end
|
5
26
|
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
error:
|
2
|
+
8: Błąd w odwołaniu (Prosimy zgłosić)
|
3
|
+
11: Zbyt długa lub brak wiadomości lub ustawiono parametr nounicode i pojawiły się znaki specjalne w wiadomości. Dla wysyłki VMS błąd oznacza brak pliku WAV lub treści TTS.
|
4
|
+
12: Wiadomość zawiera ponad 160 znaków (gdy użyty parametr &single=1).
|
5
|
+
13: Brak prawidłowych numerów telefonów (numery błędne, znajdujące się na czarnej liście lub zagraniczne przy wyłączonej opcji wysyłki za granicę).
|
6
|
+
14: Nieprawidłowe pole nadawcy.
|
7
|
+
17: Nie można wysłać FLASH ze znakami specjalnymi.
|
8
|
+
18: Nieprawidłowa liczba parametrów.
|
9
|
+
19: Za dużo wiadomości w jednym odwołaniu.
|
10
|
+
20: Nieprawidłowa liczba parametrów IDX.
|
11
|
+
21: Wiadomość MMS ma za duży rozmiar (maksymalnie 300kB).
|
12
|
+
22: Błędny format SMIL.
|
13
|
+
23: Błąd pobierania pliku dla wiadomości MMS lub VMS.
|
14
|
+
24: Błędny format pobieranego pliku.
|
15
|
+
25: Parametry &normalize oraz &datacoding nie mogą być używane jednocześnie.
|
16
|
+
26: Za długi temat wiadomości. Temat może zawierać maksymalnie 30 znaków.
|
17
|
+
27: Parametr IDX za długi. Maksymalnie 255 znaków.
|
18
|
+
30: Brak parametru UDH jak podany jest datacoding=bin.
|
19
|
+
31: Błąd konwersji TTS
|
20
|
+
32: Nie można wysyłać wiadomości Eco, MMS i VMS na zagraniczne numery.
|
21
|
+
33: Brak poprawnych numerów.
|
22
|
+
35: 'Błędna wartość parametru tts_lector. Dostępne wartości: agnieszka, ewa, jacek, jan, maja.'
|
23
|
+
36: Nie można wysyłać wiadomości binarnych z ustawioną stopką.
|
24
|
+
40: Brak grupy o podanej nazwie
|
25
|
+
41: Wybrana grupa jest pusta (brak kontaktów w grupie).
|
26
|
+
50: Nie można zaplanować wysyłki na więcej niż 3 miesiące w przyszłość.
|
27
|
+
51: Ustawiono błędną godzinę wysyłki, wiadomość VMS mogą być wysyłane tylko pomiędzy godzinami 8 a 22 lub ustawiono kombinację parametrów try i interval powodującą możliwość próby połączenia po godzinie 22.
|
28
|
+
52: Za dużo prób wysyłki wiadomości do jednego numeru (maksymalnie 10 prób w przeciągu 60sek do jednego numeru).
|
29
|
+
53: Nieunikalny parametr idx. Wiadomość o podanym idx została wysłana w ostatnich czterech dniach lub jest zaplanowana do wysyłki w przyszłości przy wykorzystaniu parametru &check_idx=1.
|
30
|
+
54: Błędny format daty. Ustawiono sprawdzanie poprawności daty &date_validate=1.
|
31
|
+
55: Brak numerów stacjonarnych w wysyłce i ustawiony parametr skip_gsm.
|
32
|
+
56: Różnica pomiędzy datą wysyłki a datą wygaśnięcia nie może być mniejsza niż 15 minut i większa niż 12 godzin.
|
33
|
+
57: Numer znajduje się na czarnej liście dla danego użytkownika.
|
34
|
+
60: Grupa kodów o podanej nazwie nie istnieje.
|
35
|
+
61: Data ważności grupy kodów minęła.
|
36
|
+
62: Brak wolnych kodów w podanej grupie (wszystkie kody zostały już wykorzystane).
|
37
|
+
65: Brak wystarczającej liczby kodów rabatowych dla wysyłki. Liczba niewykorzystanych kodów w grupie musi być co najmniej równa liczbie numerów w wysyłce.
|
38
|
+
66: W treści wiadomości brak jest znacznika [%kod%] dla wysyłki z parametrem &discount_group (znacznik taki jest wymagany).
|
39
|
+
70: Błędny adres CALLBACK w parametrze notify_url.
|
40
|
+
72: Parametr notify_url może być używany tylko dla odwołań z jednym numerem (nie może być stosowany dla wysyłek masowych).
|
41
|
+
74: Data wysyłki nie spełnia ograniczeń czasowych ustawionych na koncie.
|
42
|
+
75: Brak zaplanowanych wiadomości do usunięcia.
|
43
|
+
101: Niepoprawne lub brak danych autoryzacji. UWAGA! Hasło do API może różnić się od hasła do Panelu Klienta.
|
44
|
+
102: Nieprawidłowy login lub hasło.
|
45
|
+
103: Brak punktów dla tego użytkownika.
|
46
|
+
104: Brak szablonu.
|
47
|
+
105: Błędny adres IP (włączony filtr IP dla interfejsu API).
|
48
|
+
110: Usługa (SMS, MMS, VMS lub HLR) nie jest dostępna na danym koncie.
|
49
|
+
200: Nieudana próba wysłania wiadomości, prosimy ponowić odwołanie.
|
50
|
+
201: Wewnętrzny błąd systemu (prosimy zgłosić).
|
51
|
+
202: Zbyt duża ilość jednoczesnych odwołań do serwisu, wiadomość nie została wysłana (prosimy odwołać się ponownie).
|
52
|
+
300: Nieprawidłowa wartość pola points (przy użyciu pola points jest wymagana wartość 1).
|
53
|
+
301: Wiadomość o podanym ID nie istnieje lub jest zaplanowana do wysłania w przeciągu najbliższych 60 sekund (nie można usunąć takiej wiadomości).
|
54
|
+
400: Nieprawidłowy ID statusu wiadomości.
|
55
|
+
999: Wewnętrzny błąd systemu (prosimy zgłosić).
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative 'response/error'
|
2
|
+
require_relative 'response/regular'
|
3
|
+
|
4
|
+
module SMSApi
|
5
|
+
class Response
|
6
|
+
InvalidStatus = Class.new(StandardError)
|
7
|
+
|
8
|
+
attr_reader :status
|
9
|
+
|
10
|
+
ALLOWED_STATUSES = [:ok, :error]
|
11
|
+
|
12
|
+
def initialize(status)
|
13
|
+
fail InvalidStatus unless ALLOWED_STATUSES.include?(status)
|
14
|
+
@status = status
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
module SMSApi
|
4
|
+
class Response
|
5
|
+
class Error < SMSApi::Response
|
6
|
+
attr_reader :code, :message
|
7
|
+
|
8
|
+
def initialize(code = nil)
|
9
|
+
@code = code
|
10
|
+
@message = MESSAGES.fetch(code, 'Unknown error')
|
11
|
+
|
12
|
+
super(:error)
|
13
|
+
end
|
14
|
+
|
15
|
+
def exception
|
16
|
+
StandardError.new("[CODE: #{code}] #{message}")
|
17
|
+
end
|
18
|
+
|
19
|
+
MESSAGES = YAML.load_file('lib/client_smsapi/error/messages.yml')['error'].freeze
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module SMSApi
|
2
|
+
module SMS
|
3
|
+
class Client
|
4
|
+
attr_accessor :test_mode
|
5
|
+
|
6
|
+
SERVERS = ['https://api.smsapi.pl', 'https://api2.smsapi.pl/sms.do']
|
7
|
+
|
8
|
+
include HTTParty
|
9
|
+
base_uri SERVERS.first
|
10
|
+
|
11
|
+
def initialize(test_mode: false)
|
12
|
+
@test_mode = test_mode
|
13
|
+
end
|
14
|
+
|
15
|
+
def send_message(message, additional_params = {})
|
16
|
+
params = build_params(message, additional_params)
|
17
|
+
response = self.class.post('/sms.do', query: params)
|
18
|
+
parse_response(response)
|
19
|
+
end
|
20
|
+
|
21
|
+
def send_message!(message)
|
22
|
+
response = send_message(message)
|
23
|
+
fail response if response.is_a? SMSApi::Response::Error
|
24
|
+
response
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def build_params(message, additional_params)
|
30
|
+
base_params
|
31
|
+
.merge(message.to_params)
|
32
|
+
.merge(extra_params)
|
33
|
+
.merge(additional_params)
|
34
|
+
end
|
35
|
+
|
36
|
+
def parse_response(response)
|
37
|
+
if response.body.start_with?('OK:')
|
38
|
+
Response::Regular.new(*response.split(':').drop(1))
|
39
|
+
elsif response.body.start_with?('ERROR:')
|
40
|
+
code = response.body.match(/ERROR:(?<code>.*)/)[:code].to_i
|
41
|
+
Response::Error.new(code)
|
42
|
+
else
|
43
|
+
Response::Error.new
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def extra_params
|
48
|
+
return @extra_params if @extra_params
|
49
|
+
|
50
|
+
@extra_params = {}
|
51
|
+
@extra_params[:test] = 1 if test_mode
|
52
|
+
@extra_params
|
53
|
+
end
|
54
|
+
|
55
|
+
def base_params
|
56
|
+
@base_params ||= {
|
57
|
+
username: SMSApi.configuration.username,
|
58
|
+
password: SMSApi.configuration.password,
|
59
|
+
encoding: 'utf-8'
|
60
|
+
}
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative 'message/eco'
|
2
|
+
require_relative 'message/2way'
|
3
|
+
require_relative 'message/pro'
|
4
|
+
|
5
|
+
module SMSApi
|
6
|
+
module SMS
|
7
|
+
class Message
|
8
|
+
attr_reader :to, :from, :body
|
9
|
+
|
10
|
+
def initialize(to:, from:, body:)
|
11
|
+
@to = to
|
12
|
+
@from = from
|
13
|
+
@body = body
|
14
|
+
end
|
15
|
+
|
16
|
+
def valid?
|
17
|
+
@valid ||= begin
|
18
|
+
Validators::MessageBodyValidator.valid_body?(body)
|
19
|
+
Validators::PhoneNumberValidator.valid_number?(to)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_params
|
24
|
+
@params ||= {
|
25
|
+
from: from.to_s,
|
26
|
+
to: to.to_s,
|
27
|
+
message: body
|
28
|
+
}
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module SMSApi
|
2
|
+
module Validators
|
3
|
+
class MessageBodyValidator
|
4
|
+
DOUBLE_COST_CHARS = "\"^{}[]~\\|€\n".freeze
|
5
|
+
BASIC_CHARS = "\n\f\r !\"\#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_abcdefghijklmnopqrstuvwxyz{|}~ ¡£¤¥§¿ÄÅÆÉÑÖØÜßàäåæçèéìñòöøùüΓΔΘΛΞΠΣΦΨΩ€".freeze
|
6
|
+
|
7
|
+
BASIC_LIMIT = 918
|
8
|
+
EXTRA_LIMIT = 402
|
9
|
+
|
10
|
+
def self.valid_body?(body)
|
11
|
+
new(body).valid?
|
12
|
+
end
|
13
|
+
|
14
|
+
attr_reader :body
|
15
|
+
|
16
|
+
def initialize(body)
|
17
|
+
@body = body
|
18
|
+
end
|
19
|
+
|
20
|
+
def valid?
|
21
|
+
proper_length? && !body.empty?
|
22
|
+
end
|
23
|
+
|
24
|
+
def proper_length?
|
25
|
+
if basic_charset?
|
26
|
+
body_size <= BASIC_LIMIT
|
27
|
+
else
|
28
|
+
body_size <= EXTRA_LIMIT
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def body_codepoints
|
33
|
+
@body_codepoints ||= body.codepoints
|
34
|
+
end
|
35
|
+
|
36
|
+
def body_size
|
37
|
+
if basic_charset?
|
38
|
+
double = body_codepoints.count { |codepoint| DOUBLE_COST_CHARS.codepoints.include?(codepoint) }
|
39
|
+
body_codepoints.count + double
|
40
|
+
else
|
41
|
+
body_codepoints.count
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def basic_charset?
|
46
|
+
@basic_charset ||= body_codepoints.all? { |c| BASIC_CHARS.codepoints.include?(c) }
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module SMSApi
|
2
|
+
module Validators
|
3
|
+
class PhoneNumberValidator
|
4
|
+
def self.valid_number?(number)
|
5
|
+
new(number).valid?
|
6
|
+
end
|
7
|
+
|
8
|
+
attr_reader :number
|
9
|
+
def initialize(number)
|
10
|
+
@number = number
|
11
|
+
end
|
12
|
+
|
13
|
+
def valid?
|
14
|
+
!!number.to_s.match(/^(48)?(\d){9}$/)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,3 +1,3 @@
|
|
1
|
-
module
|
2
|
-
VERSION =
|
1
|
+
module SMSApi
|
2
|
+
VERSION = '0.2.0'
|
3
3
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: client_smsapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Artur Debski
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: httparty
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.13'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.13'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -40,6 +54,48 @@ dependencies:
|
|
40
54
|
version: '10.0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3.3'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '3.3'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: simplecov
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: codeclimate-test-reporter
|
43
99
|
requirement: !ruby/object:Gem::Requirement
|
44
100
|
requirements:
|
45
101
|
- - ">="
|
@@ -61,7 +117,9 @@ extra_rdoc_files: []
|
|
61
117
|
files:
|
62
118
|
- ".gitignore"
|
63
119
|
- ".rspec"
|
120
|
+
- ".ruby-version"
|
64
121
|
- ".travis.yml"
|
122
|
+
- CHANGELOG.md
|
65
123
|
- Gemfile
|
66
124
|
- README.md
|
67
125
|
- Rakefile
|
@@ -69,6 +127,20 @@ files:
|
|
69
127
|
- bin/setup
|
70
128
|
- client_smsapi.gemspec
|
71
129
|
- lib/client_smsapi.rb
|
130
|
+
- lib/client_smsapi/configuration.rb
|
131
|
+
- lib/client_smsapi/error/messages.yml
|
132
|
+
- lib/client_smsapi/response.rb
|
133
|
+
- lib/client_smsapi/response/error.rb
|
134
|
+
- lib/client_smsapi/response/regular.rb
|
135
|
+
- lib/client_smsapi/sms.rb
|
136
|
+
- lib/client_smsapi/sms/client.rb
|
137
|
+
- lib/client_smsapi/sms/message.rb
|
138
|
+
- lib/client_smsapi/sms/message/2way.rb
|
139
|
+
- lib/client_smsapi/sms/message/eco.rb
|
140
|
+
- lib/client_smsapi/sms/message/pro.rb
|
141
|
+
- lib/client_smsapi/validators.rb
|
142
|
+
- lib/client_smsapi/validators/message_body_validator.rb
|
143
|
+
- lib/client_smsapi/validators/phone_number_validator.rb
|
72
144
|
- lib/client_smsapi/version.rb
|
73
145
|
homepage: https://github.com/mentero/client_smsapi
|
74
146
|
licenses: []
|
@@ -94,4 +166,3 @@ signing_key:
|
|
94
166
|
specification_version: 4
|
95
167
|
summary: smsapi.pl ruby client
|
96
168
|
test_files: []
|
97
|
-
has_rdoc:
|