bestchange-api 0.4 → 0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 99363eb68e71e5ca12cf33f1fb63560b320274402f1d5c0c0e7417f573929263
4
- data.tar.gz: 5a1aa1d8806d507cf324256815252f11e83a53fbbc679e7c8aefa0fc5705398e
3
+ metadata.gz: f8da60c9f91d2fac5ff9899af64181c5715b668baa92dd5789dfcf508a92a286
4
+ data.tar.gz: c8259d19fd314094146ad62d60507ca4eb3279af5d481105fb6e57aac929dd57
5
5
  SHA512:
6
- metadata.gz: 1370a2573f45154957c215a8994d03445650dca1fefab070059148369f22c57d1fd33c58d78d6b3cc06d2cb55cfabb0269ce06a81055e3fd9ce375ac61f568cc
7
- data.tar.gz: de6f4885b1d02238392a11d49f90cf24821195e3767d476faf93689d409a894f5f3098e7b1ac1fdd8723e1f0968c560882bf9509a6f332218d205d4a021ec9d0
6
+ metadata.gz: 3fc1081e2b6e436b0fc1659dae92a3c48396d51ee562310d6a0433979a576e173c7025fa19aed0b3941a020e889a26f4beef94b13c68af6cad27ef43bcee3b50
7
+ data.tar.gz: 5c891ca4e54319a4a542472daea41fcf00d349f5c4e130854e9650259029c04f31a1ca375ccb9d2fab1156dd1c114235e166db240fca0eae8726bfc58601dcdb
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Change log
2
2
 
3
+ ## [0.6]
4
+ Pass zip entry via before_extract block
5
+
6
+ ## [0.5]
7
+ Add before_extract block
8
+
3
9
  ## [0.4]
4
10
  Do not delete already existed files
5
11
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bestchange-api (0.3)
4
+ bestchange-api (0.5)
5
5
  rubyzip (= 2.3.2)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -1,3 +1,4 @@
1
+
1
2
  # bestchange-api
2
3
 
3
4
  bestchange-api is a simple library for getting data from Bestchange aggregator
@@ -19,6 +20,7 @@ Or install it yourself as:
19
20
  $ gem install bestchange-api
20
21
 
21
22
  ## Usage
23
+ [Bestchange api description](https://github.com/karpinovsky/bestchange-api/blob/master/API_DOC.txt)
22
24
 
23
25
  Add your own configuration or use the default one
24
26
 
@@ -35,8 +37,15 @@ Fetch data
35
37
  ```ruby
36
38
  Bestchange::Api.get_files(['bm_rates.dat']) # => [File]
37
39
  ```
40
+ ### &before_extract
41
+ You can also pass a block that will be called before `Zip::Entry#extract`. It might be helpful if you need to remove existed files or change files destination for example
42
+ ```ruby
43
+ before_extract = ->(_zip_entry, pathname) do
44
+ pathname.delete if pathname.exist?
45
+ end
38
46
 
39
- **NOTE**: API documentation is described here [API_DOC.txt](https://github.com/karpinovsky/bestchange-api/blob/master/API_DOC.txt)
47
+ Bestchange::Api.get_files(['bm_rates.dat'], &before_extract)
48
+ ```
40
49
 
41
50
  ## License
42
51
 
@@ -10,21 +10,21 @@ module Bestchange
10
10
  module Api
11
11
  extend self
12
12
 
13
- def get_files(filenames)
13
+ def get_files(filenames, &before_extract)
14
14
  Timeout.timeout(Bestchange.configuration.timeout) do
15
- fetch_files(filenames)
15
+ fetch_files(filenames, &before_extract)
16
16
  end
17
17
  end
18
18
 
19
19
  private
20
20
 
21
- def fetch_files(filenames)
21
+ def fetch_files(filenames, &before_extract)
22
22
  response = make_request
23
23
 
24
24
  archive = Tempfile.new(ARCHIVE_DATA_FILENAME, encoding: ARCHIVE_DATA_ENCODING)
25
25
  archive.write(response)
26
26
 
27
- extract_files(archive, filenames)
27
+ extract_files('info.zip', filenames, &before_extract)
28
28
  ensure
29
29
  archive.close if defined?(archive)
30
30
  end
@@ -33,13 +33,15 @@ module Bestchange
33
33
  Net::HTTP.get(URI(BASE_URI))
34
34
  end
35
35
 
36
- def extract_files(archive, filenames)
36
+ def extract_files(archive, filenames, &before_extract)
37
37
  Zip::File.open(archive) do |zip_file|
38
38
  filenames.map do |filename|
39
39
  entry = zip_file.find_entry(filename)
40
40
 
41
41
  pathname = Pathname.new(Bestchange.configuration.dir).join(filename)
42
42
 
43
+ before_extract&.call(entry, pathname)
44
+
43
45
  zip_file.extract(entry, pathname)
44
46
 
45
47
  pathname.open
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bestchange
4
- VERSION = '0.4'
4
+ VERSION = '0.6'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bestchange-api
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.4'
4
+ version: '0.6'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kirill Karpinovsky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-11 00:00:00.000000000 Z
11
+ date: 2023-03-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip