lifecell_api 0.6.0 → 0.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 885c29793bebd74a83ba1dbecbd119a53a28949d2846b7d30d62a47eebb9e3eb
4
- data.tar.gz: edf6c79001b5ffc38106e88f8c9900d30537d2c60274aef5037f514855daa5c0
3
+ metadata.gz: 6052e820270074f159f3a1ae02c1aaaae772792a8df361790a28b8501b830754
4
+ data.tar.gz: 497ccf14008bd9437d8267003d44ab1336d76d946faed3714a6d8aee4a60a062
5
5
  SHA512:
6
- metadata.gz: 3a08a1b0bc6037c5aa5662a3e911ffc618bd81240e57b3c2bd81b7c72472e9530fa75df158ba35e23f0b9eba95c604eb07d3e494760573849be82eb36ccc4eaf
7
- data.tar.gz: 893538d44dd5b1914100c31f2a324983b77f86aacd863a004d39dc722ed6a02634779873b1cb0757bd197016b0cddcacb4aac2f426d99b95db20549f44d81fc4
6
+ metadata.gz: 2a7a01ff2ff88688bae6c542babd8218f9875be5a9572b48a0a6e42a65513c5bc58803dfa4043c7746008ec4539f1df0ca59249874219f675574e221ba2da911
7
+ data.tar.gz: 027d832cfe58082ff84a7120daf4e4446e90ae6b14a6523c70f199751c58197e0af4193ad1bb7b094c9c93b21f55e5dd38c07916da061716004670517a00c3a8
@@ -0,0 +1,13 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+
6
+ version: 2
7
+ updates:
8
+
9
+ # Maintain dependencies for GitHub Actions
10
+ - package-ecosystem: "github-actions"
11
+ directory: "/"
12
+ schedule:
13
+ interval: "weekly"
@@ -0,0 +1,30 @@
1
+ name: "Rubocop"
2
+
3
+ on:
4
+ push:
5
+ branches: [ "master" ]
6
+ pull_request:
7
+ branches: [ "master" ]
8
+ schedule:
9
+ - cron: '20 3 * * 6'
10
+
11
+ jobs:
12
+ rubocop:
13
+ runs-on: ubuntu-latest
14
+ strategy:
15
+ fail-fast: false
16
+
17
+ steps:
18
+ - name: Checkout repository
19
+ uses: actions/checkout@v4
20
+
21
+ - name: Set up Ruby
22
+ uses: ruby/setup-ruby@v1
23
+ with:
24
+ ruby-version: 3.0
25
+
26
+ - name: Install dependencies
27
+ run: bundle install
28
+
29
+ - name: Rubocop run
30
+ run: bundle exec rubocop
@@ -0,0 +1,28 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ branches: [ "master" ]
6
+ pull_request:
7
+ branches: [ "master" ]
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ test:
14
+
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ matrix:
18
+ ruby-version: ['3.2']
19
+
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+ - name: Set up Ruby
23
+ uses: ruby/setup-ruby@v1
24
+ with:
25
+ ruby-version: ${{ matrix.ruby-version }}
26
+ bundler-cache: true
27
+ - name: Run tests
28
+ run: bundle exec rspec
data/.gitignore CHANGED
@@ -1,2 +1,4 @@
1
1
  Gemfile.lock
2
2
  /examples/
3
+ /spec/examples.txt
4
+ /coverage
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --require spec_helper
data/.rubocop.yml CHANGED
@@ -1,9 +1,3 @@
1
1
  AllCops:
2
+ TargetRubyVersion: 3.2
2
3
  NewCops: enable
3
- TargetRubyVersion: 2.7
4
-
5
- Metrics/AbcSize:
6
- Max: 17
7
-
8
- Metrics/MethodLength:
9
- Max: 11
data/Gemfile CHANGED
@@ -9,3 +9,13 @@ group :development do
9
9
  gem 'pry'
10
10
  gem 'rubocop', require: false
11
11
  end
12
+
13
+ group :development, :test do
14
+ gem 'rspec'
15
+ end
16
+
17
+ group :test do
18
+ gem 'simplecov'
19
+ gem 'vcr'
20
+ gem 'webmock'
21
+ end
data/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # lifecell::API
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/lifecell_api.svg)](https://badge.fury.io/rb/lifecell_api)
4
+ [![Ruby](https://github.com/mamantoha/lifecell_api/actions/workflows/ruby.yml/badge.svg)](https://github.com/mamantoha/lifecell_api/actions/workflows/ruby.yml)
5
+ [![Rubocop](https://github.com/mamantoha/lifecell_api/actions/workflows/rubocop.yml/badge.svg)](https://github.com/mamantoha/lifecell_api/actions/workflows/rubocop.yml)
6
+
3
7
  A Ruby library for interfacing with lifecell's undocumented/unannounced API.
4
8
 
5
9
  Formerly known as `life-api`.
@@ -36,9 +40,9 @@ require 'lifecell_api'
36
40
 
37
41
  ### Authentication
38
42
 
39
- You can authenticate with life:) in two ways: with password or with token.
43
+ You can authenticate with lifecell in two ways: with password or with token.
40
44
 
41
- Authentication with password to the life:) API is accomplished using a phone number(`msisdn`) starting with the country code("380"), and SuperPassword(`password`).
45
+ Authentication with password to the lifecell API is accomplished using a phone number(`msisdn`) starting with the country code("380"), and SuperPassword(`password`).
42
46
 
43
47
  ```ruby
44
48
  msisdn = '38063xxxxxxx'
@@ -64,16 +68,17 @@ Now you can make requests to the API.
64
68
 
65
69
  ### API Examples
66
70
 
67
- Below you can see some the methods for working with life:) data.
71
+ Below you can see some the methods for working with lifecell data.
68
72
 
69
73
  #### Returns advanced information on the current subscriber
70
- ```
74
+
75
+ ```ruby
71
76
  life.summary_data
72
77
  ```
73
78
 
74
79
  Sample response
75
80
 
76
- ```
81
+ ```ruby
77
82
  {"method"=>"getSummaryData",
78
83
  "responseCode"=>"0",
79
84
  "subscriber"=>
@@ -101,13 +106,13 @@ Sample response
101
106
 
102
107
  #### Returns the balance of the current subscriber
103
108
 
104
- ```
109
+ ```ruby
105
110
  life.balances
106
111
  ```
107
112
 
108
113
  Sample response
109
114
 
110
- ```
115
+ ```ruby
111
116
  {"method"=>"getBalances",
112
117
  "responseCode"=>"0",
113
118
  "balance"=>
@@ -168,13 +173,13 @@ Sample response
168
173
 
169
174
  #### Returns payments history for calendar month in format 'YYYY-mm'
170
175
 
171
- ```
176
+ ```ruby
172
177
  life.payments_history('2013-03')
173
178
  ```
174
179
 
175
180
  Sample response
176
181
 
177
- ```
182
+ ```ruby
178
183
  {"method"=>"getPaymentsHistory",
179
184
  "responseCode"=>"0",
180
185
  "payments"=>
@@ -190,12 +195,6 @@ Sample response
190
195
  "sum"=>"40.00"}]}}
191
196
  ```
192
197
 
193
- ## Supported Rubies
194
-
195
- Tested with the following Ruby versions:
196
-
197
- * MRI 2.5.0
198
-
199
198
  ## Contributing
200
199
 
201
200
  1. Fork it
@@ -12,7 +12,7 @@ puts Lifecell::API::VERSION
12
12
  msisdn = '38xxxxxxxxx'
13
13
  password = 'xxxxxx'
14
14
 
15
- life = Lifecell::API.new(msisdn: msisdn, password: password, lang: 'en')
15
+ life = Lifecell::API.new(msisdn:, password:, lang: 'en')
16
16
  life.log = Logger.new($stderr)
17
17
  life.sign_in
18
18
 
@@ -38,7 +38,7 @@ puts "Bonus: #{bonus} ₴"
38
38
  puts "Dept: #{debt} ₴"
39
39
 
40
40
  puts "\nBalances:"
41
- balances = life.balances
41
+ balances = life.balances
42
42
  balances['balance'].keep_if { |i| i['amount'].to_i != 0 }.each do |i|
43
43
  puts " * #{i['name']}: #{i['amount']} #{i['measure']}"
44
44
  end
@@ -67,9 +67,9 @@ module Lifecell
67
67
  def ui_properties(language_id, last_date_update)
68
68
  request(
69
69
  'getUIProperties',
70
- accessKeyCode: @access_key_code,
70
+ accessKeyCode: ACCESS_KEY_CODE,
71
71
  languageId: language_id,
72
- osType: @os_type,
72
+ osType: OS_TYPE,
73
73
  lastDateUpdate: last_date_update
74
74
  )
75
75
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Lifecell
4
4
  class API
5
- VERSION = '0.6.0'
5
+ VERSION = '0.7.0'
6
6
  end
7
7
  end
data/lib/lifecell_api.rb CHANGED
@@ -60,6 +60,11 @@ module Lifecell
60
60
  class API
61
61
  attr_accessor :token, :sub_id
62
62
 
63
+ BASE_URL = 'https://api.lifecell.com.ua/mobile/'
64
+ ACCESS_KEY_CODE = '7'
65
+ APPLICATION_KEY = 'E6j_$4UnR_)0b'
66
+ OS_TYPE = 'ANDROID'
67
+
63
68
  class << self
64
69
  # Default logger for all Lifecell::API instances
65
70
  #
@@ -76,18 +81,12 @@ module Lifecell
76
81
  # * +:password+ - super password
77
82
  # * +:lang+ - 'uk', 'ru' or 'en'
78
83
  #
79
- def initialize(params = {})
80
- @msisdn = params.delete(:msisdn)
81
- @password = params.delete(:password)
82
- @lang = params.delete(:lang) || 'uk'
84
+ def initialize(msisdn:, password:, lang: 'uk')
85
+ @msisdn = msisdn
86
+ @password = password
87
+ @lang = lang
83
88
 
84
89
  @log = nil
85
-
86
- @os_type = 'ANDROID'
87
-
88
- @api_url = 'https://api.lifecell.com.ua/mobile/'
89
- @access_key_code = '7'
90
- @application_key = 'E6j_$4UnR_)0b'
91
90
  end
92
91
 
93
92
  # The current logger. If no logger has been set Lifecell::API.log is used.
@@ -101,7 +100,7 @@ module Lifecell
101
100
  attr_writer :log
102
101
 
103
102
  def request(method, params = {})
104
- params = { accessKeyCode: @access_key_code }.merge(params)
103
+ params = { accessKeyCode: ACCESS_KEY_CODE }.merge(params)
105
104
  url = create_signed_url(method, params)
106
105
 
107
106
  log&.debug("[#{method}] request: #{url}")
@@ -142,13 +141,13 @@ module Lifecell
142
141
  str = "#{method}?#{query}&signature="
143
142
 
144
143
  digest = OpenSSL::Digest.new('sha1')
145
- hash = OpenSSL::HMAC.digest(digest, @application_key, str)
144
+ hash = OpenSSL::HMAC.digest(digest, APPLICATION_KEY, str)
146
145
 
147
146
  hash = Base64.encode64(hash).chomp
148
147
 
149
148
  str += urlencode(hash)
150
149
 
151
- @api_url + str
150
+ BASE_URL + str
152
151
  end
153
152
 
154
153
  # Returns a string representation of the receiver suitable for use
@@ -169,7 +168,7 @@ module Lifecell
169
168
  end
170
169
 
171
170
  def base_api_parameters
172
- { msisdn: @msisdn, languageId: @lang, osType: @os_type, token: @token }
171
+ { msisdn: @msisdn, languageId: @lang, osType: OS_TYPE, token: @token }
173
172
  end
174
173
  end
175
174
  end
data/lifecell_api.gemspec CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |gem|
21
21
  gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
22
22
  gem.require_paths = ['lib']
23
23
 
24
- gem.required_ruby_version = '>= 2.7.0'
24
+ gem.required_ruby_version = '>= 3.2'
25
25
  gem.add_runtime_dependency('xml-simple', '~> 1.1.2')
26
26
  gem.metadata['rubygems_mfa_required'] = 'true'
27
27
  end
@@ -0,0 +1,38 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.lifecell.com.ua/mobile/signIn?accessKeyCode=7&msisdn=380630000000&signature=pZqbYXP/F5cxZhNX2lXA/rlzynI=&superPassword=passw0rd
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx
23
+ Date:
24
+ - Sat, 20 May 2023 13:09:07 GMT
25
+ Content-Type:
26
+ - application/xml;charset=UTF-8
27
+ Content-Length:
28
+ - '242'
29
+ Connection:
30
+ - keep-alive
31
+ X-Frame-Options:
32
+ - SAMEORIGIN
33
+ body:
34
+ encoding: UTF-8
35
+ string: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><response method="signIn"><responseCode>0</responseCode><resultText>Successful
36
+ logic performing or data returning</resultText><token>T0KEN</token><subId>SUB_ID</subId></response>
37
+ recorded_at: Sat, 20 May 2023 13:09:07 GMT
38
+ recorded_with: VCR 6.1.0
@@ -0,0 +1,97 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.lifecell.com.ua/mobile/signIn?accessKeyCode=7&msisdn=380630000000&signature=pZqbYXP/F5cxZhNX2lXA/rlzynI=&superPassword=passw0rd
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx
23
+ Date:
24
+ - Sat, 20 May 2023 13:48:38 GMT
25
+ Content-Type:
26
+ - application/xml;charset=UTF-8
27
+ Content-Length:
28
+ - '242'
29
+ Connection:
30
+ - keep-alive
31
+ X-Frame-Options:
32
+ - SAMEORIGIN
33
+ body:
34
+ encoding: UTF-8
35
+ string: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><response method="signIn"><responseCode>0</responseCode><resultText>Successful
36
+ logic performing or data returning</resultText><token>T0KEN</token><subId>SUB_ID</subId></response>
37
+ recorded_at: Sat, 20 May 2023 13:48:38 GMT
38
+ - request:
39
+ method: get
40
+ uri: https://api.lifecell.com.ua/mobile/getSummaryData?accessKeyCode=7&languageId=uk&msisdn=380630000000&osType=ANDROID&signature=zeFGal/zqqJzY9%2BST2/RVzdhiwQ=&token=T0KEN
41
+ body:
42
+ encoding: US-ASCII
43
+ string: ''
44
+ headers:
45
+ Accept-Encoding:
46
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
47
+ Accept:
48
+ - "*/*"
49
+ User-Agent:
50
+ - Ruby
51
+ response:
52
+ status:
53
+ code: 200
54
+ message: OK
55
+ headers:
56
+ Server:
57
+ - nginx
58
+ Date:
59
+ - Sat, 20 May 2023 13:48:40 GMT
60
+ Content-Type:
61
+ - application/xml;charset=UTF-8
62
+ Content-Length:
63
+ - '2872'
64
+ Connection:
65
+ - keep-alive
66
+ X-Frame-Options:
67
+ - SAMEORIGIN
68
+ body:
69
+ encoding: UTF-8
70
+ string: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><response method="getSummaryData"><responseCode>0</responseCode><resultText>Successful
71
+ logic performing or data returning</resultText><subscriber msisdn="380630000000"><attribute
72
+ name="ICCID">89380062300016907xxx</attribute><attribute name="PUK">25159xxx</attribute><attribute
73
+ name="PUK2">00036xxx</attribute><attribute name="PIN2">9300</attribute><attribute
74
+ name="IMSI">25506109310xxxx</attribute><attribute name="PIN">70xx</attribute><attribute
75
+ name="SIM_TYPE">ESIM</attribute><attribute name="LINE_STATE">ACT/STD</attribute><attribute
76
+ name="USE_COMMON_MAIN">false</attribute><attribute name="IS_FISHKA">N</attribute><attribute
77
+ name="NEXT_FEE_CHARGING_DATE">28.05.23</attribute><attribute name="LANGUAGE_ID">ug</attribute><attribute
78
+ name="LINE_ACTIVATION_DATE">2010-03-02T11:28:07.000+02:00</attribute><attribute
79
+ name="LINE_SUSPEND_DATE">2024-04-29T00:00:00.000+03:00</attribute><attribute
80
+ name="DEVICE_LTE_SUPPORT">YES</attribute><balance code="Line_Main" amount="206.95"/><balance
81
+ code="Line_Bonus" amount="0.00"/><balance code="Line_Debt" amount="0.00"/><tariff><code>IND_PRE_INET_HEAT</code><name>Internet
82
+ Heat</name><description>&lt;ul&gt;&lt;li&gt;20GB of Internet&lt;/li&gt;&lt;li&gt;500
83
+ min to all numbers within Ukraine (landline and mobile, including lifecell)&lt;/li&gt;&lt;li&gt;Unlim
84
+ to Facebook, Instagram, Twitter&lt;/li&gt;&lt;li&gt;50GB in lifebox storage&lt;/li&gt;&lt;li&gt;+1GB
85
+ for every 30 min of outgoing calls from BiP Out&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;b&gt;Service
86
+ package cost for 4 weeks - 200 UAH&lt;/b&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;Tariffs
87
+ are quoted with all taxes.&lt;br&gt;</description><picture_url>https://m.lifecell.ua/uploads/medialibrary/2021/01/4SITE_internetHeat_EN.png</picture_url><webview_url>https://m.lifecell.ua/en/mobile/tariffs/internet-heat/</webview_url><short_description>&lt;html&gt;&lt;body&gt;&lt;p&gt;Hot
88
+ tariff for the internet&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</short_description><tariff_price_discount>200</tariff_price_discount><tariff_price_full>200</tariff_price_full><tariff_order_period>4
89
+ weeks</tariff_order_period></tariff><use_common_main>false</use_common_main></subscriber><applicationAttributes><attribute
90
+ name="REORDER_A">Yes</attribute><attribute name="REORDER_B">Yes</attribute><attribute
91
+ name="GIFT_B">Yes</attribute><attribute name="IS_HANDMADE_AVAILABLE">Yes</attribute><attribute
92
+ name="IS_SHAKE_AND_WIN_AVAILABLE">Yes</attribute><attribute name="SIMAGOTCHI">Yes</attribute><attribute
93
+ name="IS_GIFTS_POOL_AVAILABLE">Yes</attribute><attribute name="POSSIBILITY_DIYA_IDENTIFICATION">No</attribute><attribute
94
+ name="POSSIBILITY_DIYA_REGISTRATION">No</attribute><attribute name="IS_SMILE_BONUS_AVAILABLE">No</attribute><attribute
95
+ name="IS_BAYRAKTAR_AVAILABLE">No</attribute></applicationAttributes></response>
96
+ recorded_at: Sat, 20 May 2023 13:48:40 GMT
97
+ recorded_with: VCR 6.1.0
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+ require 'lifecell_api'
5
+
6
+ RSpec.describe Lifecell::API do
7
+ let(:msisdn) { '380630000000' }
8
+ let(:password) { 'passw0rd' }
9
+ let(:token) { 'T0KEN' }
10
+
11
+ it 'initialize' do
12
+ lifecell_api = Lifecell::API.new(msisdn: '380xxxxxxxxx', password: 'xxxxxx', lang: 'uk')
13
+ expect(lifecell_api).to be_a(Lifecell::API)
14
+ expect(lifecell_api.token).to be_nil
15
+ end
16
+
17
+ it 'sign_in', :vcr do
18
+ lifecell_api = Lifecell::API.new(msisdn:, password:, lang: 'uk')
19
+ lifecell_api.sign_in
20
+
21
+ expect(lifecell_api.token).to eq(token)
22
+ end
23
+
24
+ it 'summary_data', :vcr do
25
+ lifecell_api = Lifecell::API.new(msisdn:, password:, lang: 'uk')
26
+ lifecell_api.sign_in
27
+
28
+ expect(lifecell_api.token).to eq(token)
29
+
30
+ summary_data = lifecell_api.summary_data
31
+
32
+ expect(summary_data['subscriber']['tariff']['name']).to eq('Internet Heat')
33
+ end
34
+ end
@@ -0,0 +1,92 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'vcr'
4
+
5
+ require 'simplecov'
6
+ SimpleCov.start
7
+
8
+ RSpec.configure do |config|
9
+ config.expect_with :rspec do |expectations|
10
+ # This option will default to `true` in RSpec 4. It makes the `description`
11
+ # and `failure_message` of custom matchers include text for helper methods
12
+ # defined using `chain`, e.g.:
13
+ # be_bigger_than(2).and_smaller_than(4).description
14
+ # # => "be bigger than 2 and smaller than 4"
15
+ # ...rather than:
16
+ # # => "be bigger than 2"
17
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
18
+ end
19
+
20
+ # rspec-mocks config goes here. You can use an alternate test double
21
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
22
+ config.mock_with :rspec do |mocks|
23
+ # Prevents you from mocking or stubbing a method that does not exist on
24
+ # a real object. This is generally recommended, and will default to
25
+ # `true` in RSpec 4.
26
+ mocks.verify_partial_doubles = true
27
+ end
28
+
29
+ # This option will default to `:apply_to_host_groups` in RSpec 4 (and will
30
+ # have no way to turn it off -- the option exists only for backwards
31
+ # compatibility in RSpec 3). It causes shared context metadata to be
32
+ # inherited by the metadata hash of host groups and examples, rather than
33
+ # triggering implicit auto-inclusion in groups with matching metadata.
34
+ config.shared_context_metadata_behavior = :apply_to_host_groups
35
+
36
+ # The settings below are suggested to provide a good initial experience
37
+ # with RSpec, but feel free to customize to your heart's content.
38
+
39
+ # This allows you to limit a spec run to individual examples or groups
40
+ # you care about by tagging them with `:focus` metadata. When nothing
41
+ # is tagged with `:focus`, all examples get run. RSpec also provides
42
+ # aliases for `it`, `describe`, and `context` that include `:focus`
43
+ # metadata: `fit`, `fdescribe` and `fcontext`, respectively.
44
+ config.filter_run_when_matching :focus
45
+
46
+ # Allows RSpec to persist some state between runs in order to support
47
+ # the `--only-failures` and `--next-failure` CLI options. We recommend
48
+ # you configure your source control system to ignore this file.
49
+ config.example_status_persistence_file_path = 'spec/examples.txt'
50
+
51
+ # Limits the available syntax to the non-monkey patched syntax that is
52
+ # recommended. For more details, see:
53
+ # https://rspec.info/features/3-12/rspec-core/configuration/zero-monkey-patching-mode/
54
+ config.disable_monkey_patching!
55
+
56
+ # This setting enables warnings. It's recommended, but in some cases may
57
+ # be too noisy due to issues in dependencies.
58
+ config.warnings = true
59
+
60
+ # Many RSpec users commonly either run the entire suite or an individual
61
+ # file, and it's useful to allow more verbose output when running an
62
+ # individual spec file.
63
+ if config.files_to_run.one?
64
+ # Use the documentation formatter for detailed output,
65
+ # unless a formatter has already been configured
66
+ # (e.g. via a command-line flag).
67
+ config.default_formatter = 'doc'
68
+ end
69
+
70
+ # Print the 10 slowest examples and example groups at the
71
+ # end of the spec run, to help surface which specs are running
72
+ # particularly slow.
73
+ config.profile_examples = 10
74
+
75
+ # Run specs in random order to surface order dependencies. If you find an
76
+ # order dependency and want to debug it, you can fix the order by providing
77
+ # the seed, which is printed after each run.
78
+ # --seed 1234
79
+ config.order = :random
80
+
81
+ # Seed global randomization in this process using the `--seed` CLI option.
82
+ # Setting this allows you to use `--seed` to deterministically reproduce
83
+ # test failures related to randomization by passing the same `--seed` value
84
+ # as the one that triggered the failure.
85
+ Kernel.srand config.seed
86
+ end
87
+
88
+ VCR.configure do |config|
89
+ config.cassette_library_dir = 'spec/cassettes'
90
+ config.hook_into :webmock
91
+ config.configure_rspec_metadata!
92
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lifecell_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Maminov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-19 00:00:00.000000000 Z
11
+ date: 2023-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xml-simple
@@ -31,7 +31,11 @@ executables: []
31
31
  extensions: []
32
32
  extra_rdoc_files: []
33
33
  files:
34
+ - ".github/dependabot.yml"
35
+ - ".github/workflows/rubocop.yml"
36
+ - ".github/workflows/ruby.yml"
34
37
  - ".gitignore"
38
+ - ".rspec"
35
39
  - ".rubocop.yml"
36
40
  - Gemfile
37
41
  - LICENSE
@@ -42,6 +46,10 @@ files:
42
46
  - lib/lifecell_api/methods.rb
43
47
  - lib/lifecell_api/version.rb
44
48
  - lifecell_api.gemspec
49
+ - spec/cassettes/Lifecell_API/sign_in.yml
50
+ - spec/cassettes/Lifecell_API/summary_data.yml
51
+ - spec/lifecell_api/lifecell_api_spec.rb
52
+ - spec/spec_helper.rb
45
53
  homepage: https://github.com/mamantoha/lifecell_api
46
54
  licenses:
47
55
  - MIT
@@ -55,14 +63,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
55
63
  requirements:
56
64
  - - ">="
57
65
  - !ruby/object:Gem::Version
58
- version: 2.7.0
66
+ version: '3.2'
59
67
  required_rubygems_version: !ruby/object:Gem::Requirement
60
68
  requirements:
61
69
  - - ">="
62
70
  - !ruby/object:Gem::Version
63
71
  version: '0'
64
72
  requirements: []
65
- rubygems_version: 3.4.10
73
+ rubygems_version: 3.4.14
66
74
  signing_key:
67
75
  specification_version: 4
68
76
  summary: The Lifecell::API library is used for interactions with api.lifecell.com.ua