sms77 0.0.2 → 0.1.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.
@@ -1,15 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spec_helper'
4
-
5
3
  describe Sms77 do
6
4
  it 'has a version number' do
7
5
  expect(Sms77::VERSION).not_to be nil
8
6
  end
9
-
10
- context 'failing authentication' do
11
- it 'balance' do
12
- expect { Sms77::Client.new('NotExistingApiKey', nil) }.to raise_error(RuntimeError)
13
- end
14
- end
15
7
  end
@@ -3,6 +3,7 @@
3
3
  $LOAD_PATH.unshift File.expand_path('../lib', __dir__)
4
4
 
5
5
  require 'sms77'
6
+ require 'sms77/util'
6
7
 
7
8
  RSpec::Matchers.define :be_boolean do
8
9
  match do |value|
@@ -18,39 +19,46 @@ RSpec::Matchers.define :be_numeric do
18
19
  end
19
20
  end
20
21
 
21
- class Helper
22
- @is_http = ENV.key?('TEST_HTTP')
23
- @stubs = Faraday::Adapter::Test::Stubs.new
24
- @conn = Faraday.new(Sms77::Client::BASE_URI) do |b|
25
- b.adapter(:test, @stubs) unless @is_http
22
+ RSpec::Matchers.define :be_lengthy do
23
+ match do |value|
24
+ return true if value.is_a?(String) && !Helper.client.sent_with.empty?
26
25
  end
27
- @client = Sms77::Client.new(ENV['SMS77_DUMMY_API_KEY'], @conn, 'ruby-test')
28
- @virtual_inbound_nr_eplus = '+491771783130'
26
+ end
27
+
28
+ class EnvKeyStore
29
+ def initialize(key)
30
+ @key = "SMS77_TEST_#{key}"
29
31
 
30
- def self.request(endpoint, params, stub, extra_params = {})
31
- path = "#{Sms77::Client::API_SUFFIX}#{endpoint}"
32
+ @store = ENV[@key]
33
+ end
32
34
 
33
- # TODO-START: determine request method to avoid multiple useless stubs
34
- @stubs.get(path) { |_env| [200, {}, JSON.generate(stub)] } unless @is_http
35
- @stubs.post(path) { |_env| [200, {}, JSON.generate(stub)] } unless @is_http
36
- # TODO-END
35
+ def get(fallback = nil)
36
+ @store.nil? ? fallback : @store
37
+ end
37
38
 
38
- response = @client.method(endpoint).call(params.merge(extra_params))
39
+ def set(val, only_on_nil = false)
40
+ @store = val unless only_on_nil
41
+ end
42
+ end
39
43
 
40
- raise 'unexpected response' unless Faraday::Response == response.class
44
+ class Helper
45
+ @client = Sms77::Client.new(ENV['SMS77_DUMMY_API_KEY'], 'ruby-test')
46
+ @is_http = ENV.key?('TEST_HTTP').freeze
47
+ @stubs = Faraday::Adapter::Test::Stubs.new
48
+ @virtual_inbound_nr_eplus = '+491771783130'
49
+ Sms77::Client::BUILDER.adapter(:test, @stubs) unless @is_http
41
50
 
42
- body = response.body
51
+ Sms77::Client::HTTP_METHODS.each do |method|
52
+ self.class.define_method(method.name) { |*args| request(@stubs.method(method.name.to_sym), *args) }
53
+ end
43
54
 
44
- begin
45
- body = JSON.parse(body)
46
- rescue StandardError
47
- # Ignored
48
- end
55
+ def self.request(method, endpoint, stub, params = nil)
56
+ method.call(Sms77::Client::BASE_PATH + endpoint) { || [200, {}, stub] } unless @is_http
49
57
 
50
- body
58
+ @client.method(endpoint).call(*[params].compact)
51
59
  end
52
60
 
53
61
  class << self
54
- attr_reader :is_http, :stubs, :conn, :client, :virtual_inbound_nr_eplus
62
+ attr_reader :is_http, :virtual_inbound_nr_eplus, :client
55
63
  end
56
64
  end
metadata CHANGED
@@ -1,74 +1,73 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sms77
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - sms77 e.K.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-14 00:00:00.000000000 Z
11
+ date: 2020-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: faraday
14
+ name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1'
20
- type: :runtime
19
+ version: '2.1'
20
+ type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1'
26
+ version: '2.1'
27
27
  - !ruby/object:Gem::Dependency
28
- name: bundler
28
+ name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.1'
33
+ version: '13.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '2.1'
40
+ version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rake
42
+ name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '13'
47
+ version: '3.9'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '13'
54
+ version: '3.9'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rspec
56
+ name: faraday
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '3.0'
62
- type: :development
61
+ version: '1.1'
62
+ type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '3.0'
68
+ version: '1.1'
69
69
  description: Send SMS & Text2Voice messages via the Sms77.io SMS Gateway.
70
- email:
71
- - support@sms77.io
70
+ email: support@sms77.io
72
71
  executables: []
73
72
  extensions: []
74
73
  extra_rdoc_files: []
@@ -79,16 +78,19 @@ files:
79
78
  - README.md
80
79
  - Rakefile
81
80
  - lib/sms77.rb
81
+ - lib/sms77/base.rb
82
82
  - lib/sms77/client.rb
83
- - lib/sms77/contacts_action.rb
83
+ - lib/sms77/contacts.rb
84
84
  - lib/sms77/endpoint.rb
85
- - lib/sms77/header.rb
86
- - lib/sms77/lookup_type.rb
85
+ - lib/sms77/hooks.rb
86
+ - lib/sms77/lookup.rb
87
+ - lib/sms77/util.rb
87
88
  - lib/sms77/version.rb
88
89
  - sms77.gemspec
89
90
  - spec/sms77/balance_spec.rb
91
+ - spec/sms77/client_spec.rb
90
92
  - spec/sms77/contacts_spec.rb
91
- - spec/sms77/http_spec.rb
93
+ - spec/sms77/hooks_spec.rb
92
94
  - spec/sms77/lookup_spec.rb
93
95
  - spec/sms77/pricing_spec.rb
94
96
  - spec/sms77/sms_spec.rb
@@ -108,15 +110,26 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
110
  requirements:
109
111
  - - ">="
110
112
  - !ruby/object:Gem::Version
111
- version: 2.6.5
113
+ version: 2.6.0
112
114
  required_rubygems_version: !ruby/object:Gem::Requirement
113
115
  requirements:
114
116
  - - ">="
115
117
  - !ruby/object:Gem::Version
116
118
  version: '0'
117
119
  requirements: []
118
- rubygems_version: 3.0.8
120
+ rubygems_version: 3.0.3
119
121
  signing_key:
120
122
  specification_version: 4
121
123
  summary: Official API Client for the Sms77.io SMS Gateway
122
- test_files: []
124
+ test_files:
125
+ - spec/spec_helper.rb
126
+ - spec/sms77_spec.rb
127
+ - spec/sms77/voice_spec.rb
128
+ - spec/sms77/client_spec.rb
129
+ - spec/sms77/lookup_spec.rb
130
+ - spec/sms77/pricing_spec.rb
131
+ - spec/sms77/sms_spec.rb
132
+ - spec/sms77/contacts_spec.rb
133
+ - spec/sms77/hooks_spec.rb
134
+ - spec/sms77/balance_spec.rb
135
+ - spec/sms77/validate_for_voice_spec.rb
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Sms77
4
- module Header
5
- CONTENT_TYPE = 'Content-Type'
6
- end
7
- end
@@ -1,40 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
- require 'logger'
5
-
6
- describe Sms77::Http do
7
- before(:all) do
8
- end
9
-
10
- after(:all) do
11
- end
12
-
13
- after(:each) do
14
- end
15
-
16
- let(:config) do
17
- Helper.config
18
- end
19
-
20
- let(:logger) do
21
- Logger.new($stderr).tap do |logger|
22
- logger.level = Logger::ERROR
23
- end
24
- end
25
-
26
- let(:instance) do
27
- described_class.new(config, logger)
28
- end
29
-
30
- context 'GET' do
31
- it 'performs GET requests' do
32
- Helper.maybe_stub_balance(:get)
33
-
34
- response = instance.get(url: 'balance')
35
- puts response.body
36
-
37
- expect(response.body.to_f).to be_kind_of(Float)
38
- end
39
- end
40
- end