uploadcare-api_struct 1.1.0 → 1.2.0

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: 00624dc327d5d28cfee17012a7a6f9514a72c7212b58871b78ffcc4608c9820b
4
- data.tar.gz: 200c504dfba5f8959646ac9d1882e192edf0b599c8b67597842b078afe3899b6
3
+ metadata.gz: 8eb2b7c045a0c990be3854fab41ea556c8d5dfa5070d425fa757c2ba8cf2d6e5
4
+ data.tar.gz: 64e2f2575e71e1d7d4fdfccd8bcc132953bcca92a304f04d4867bdd7ff5731ec
5
5
  SHA512:
6
- metadata.gz: 0f8b9924f429d8c8f33f253798075eee09b741ebc3d3f71084e65569dc5a4c28e7df9699f1e9039c8cfc2a03c1eb568403a938c23b76960820775243a3b80e66
7
- data.tar.gz: 10319b1df78a8f4540370b1846146ce2b2988eae55516123e28486844a8e16d322e2d495d6095468552c7650d91967ab31bcf2019e2e1ef6f4a40a96d1adfd2d
6
+ metadata.gz: 07fb630c0daf616f86bd2a0bb17e988edda456977ddb28437dc27db1df5da24bbf769436a0b4aaf46894d172ce644a59d391c85d42078a13301f0402e996767c
7
+ data.tar.gz: 875e932142896e08827d77d8c964a1cccbf3eb324fb5016ed9ed78faa5dfd0df6d0d41e0c9fa3bd41a3e26e7dd3b5009786ca367cadf050492b34b77fb77064c
@@ -0,0 +1,20 @@
1
+ name: Publish Gem
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - v*
7
+ jobs:
8
+ build:
9
+ runs-on: ubuntu-latest
10
+
11
+ steps:
12
+ - uses: actions/checkout@v3
13
+
14
+ - name: Release Gem
15
+ if: contains(github.ref, 'refs/tags/v')
16
+ uses: cadwallion/publish-rubygems-action@master
17
+ env:
18
+ GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
19
+ RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
20
+ RELEASE_COMMAND: rake release
@@ -0,0 +1,55 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Test
9
+
10
+ on: [push, pull_request]
11
+
12
+ jobs:
13
+ test:
14
+
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ matrix:
18
+ ruby-version:
19
+ - 3.0
20
+ - 3.1
21
+ - 3.2
22
+ - 3.3
23
+ steps:
24
+ - uses: actions/checkout@v2
25
+ - name: Set up Ruby
26
+ uses: ruby/setup-ruby@v1
27
+ with:
28
+ bundler: 2.4
29
+ ruby-version: ${{ matrix.ruby-version }}
30
+ bundler-cache: true
31
+ - name: Run tests
32
+ run: bundle exec rake
33
+ env:
34
+ UPLOADCARE_PUBLIC_KEY: demopublickey
35
+ UPLOADCARE_SECRET_KEY: demoprivatekey
36
+
37
+ style-check:
38
+ runs-on: ubuntu-latest
39
+ continue-on-error: true
40
+ strategy:
41
+ matrix:
42
+ ruby-version:
43
+ - 3.0
44
+ - 3.3
45
+ steps:
46
+ - uses: actions/checkout@v2
47
+ - name: Set up Ruby
48
+ uses: ruby/setup-ruby@v1
49
+ with:
50
+ ruby-version: ${{ matrix.ruby-version }}
51
+ bundler-cache: true
52
+ - name: Install Rubocop
53
+ run: gem install rubocop
54
+ - name: Check codestyle
55
+ run: rubocop
data/.gitignore CHANGED
@@ -16,3 +16,4 @@ vendor/bundle
16
16
  .ruby-version
17
17
  project_files
18
18
  *.gem
19
+ Gemfile.lock
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # v1.2.0 2024-03-17
2
+
3
+ ## Changed
4
+
5
+ * Drop support for ruby versions < 3.x.
6
+ * Fix warnings from `Hashie::Mash` on commonly used size value on entities.
7
+
1
8
  # v1.0.1 2018-11-27
2
9
 
3
10
  ## Fixed
data/README.md CHANGED
@@ -2,16 +2,22 @@
2
2
 
3
3
  **ApiStruct** consists of two main interfaces: `ApiStruct::Client` and `ApiStruct::Entity`. The `ApiStruct::Client` class is aimed at using the same interface for describing requests to different APIs. The `ApiStruct::Entity` enables you to use *ApiStruct* clients in ORM-like style.
4
4
 
5
- [![Gem Version](https://badge.fury.io/rb/api_struct.svg)](https://badge.fury.io/rb/api_struct)
5
+ [![Gem Version](https://badge.fury.io/rb/uploadcare-api_struct.svg)](https://badge.fury.io/rb/uploadcare-api_struct)
6
6
  ![Maintainability](https://api.codeclimate.com/v1/badges/dc07c83ccbcaaebc6c44/maintainability)
7
- [![CircleCI](https://circleci.com/gh/uploadcare/uploadcare-api_struct/tree/master.svg?style=svg)](https://circleci.com/gh/uploadcare/uploadcare-api_struct/tree/master)
7
+ [![Build Status][actions-img]][actions-badge]
8
+ [![Coverage Status][coverals-img]][coverals]
9
+
10
+ [actions-badge]: https://github.com/uploadcare/uploadcare-api_struct/actions/workflows/test.yml
11
+ [actions-img]: https://github.com/uploadcare/uploadcare-api_struct/actions/workflows/test.yml/badge.svg
12
+ [coverals-img]: https://coveralls.io/repos/github/uploadcare/uploadcare-api_struct/badge.svg?branch=master
13
+ [coverals]: https://coveralls.io/github/uploadcare/uploadcare-api_struct?branch=master
8
14
 
9
15
  ## Installation
10
16
 
11
17
  Add this line to your application's Gemfile:
12
18
 
13
19
  ```ruby
14
- gem 'api_struct'
20
+ gem 'uploadcare-api_struct'
15
21
  ```
16
22
 
17
23
  And then execute:
@@ -20,7 +26,7 @@ And then execute:
20
26
 
21
27
  Or install it yourself as:
22
28
 
23
- $ gem install api_struct
29
+ $ gem install uploadcare-api_struct
24
30
 
25
31
  ## Usage
26
32
 
@@ -28,7 +28,7 @@ module ApiStruct
28
28
  def entity?(attr, options)
29
29
  entity_attributes << attr.to_sym
30
30
  define_method attr.to_s do
31
- return unless entity[attr]
31
+ return false unless entity[attr]
32
32
  self.class.convert_to_entity(entity[attr], options[:as])
33
33
  end
34
34
  end
@@ -60,10 +60,14 @@ module ApiStruct
60
60
 
61
61
  attr_reader :entity, :entity_status
62
62
 
63
+ class EntityMash < Hashie::Mash
64
+ disable_warnings :size
65
+ end
66
+
63
67
  # rubocop:disable Style/OptionalBooleanParameter
64
68
  def initialize(entity, entity_status = true)
65
69
  raise EntityError, "#{entity} must be Hash" unless entity.is_a?(Hash)
66
- @entity = Hashie::Mash.new(extract_attributes(entity))
70
+ @entity = EntityMash.new(extract_attributes(entity))
67
71
  @entity_status = entity_status
68
72
  __setobj__(@entity)
69
73
  end
@@ -1,3 +1,3 @@
1
1
  module ApiStruct
2
- VERSION = '1.1.0'
2
+ VERSION = '1.2.0'
3
3
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uploadcare-api_struct
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - bezrukavyi
8
8
  - andy1341
9
9
  - kirillshevch
10
- autorequire:
10
+ autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2023-03-15 00:00:00.000000000 Z
13
+ date: 2024-03-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: dry-monads
@@ -217,13 +217,13 @@ executables: []
217
217
  extensions: []
218
218
  extra_rdoc_files: []
219
219
  files:
220
- - ".circleci/config.yml"
220
+ - ".github/workflows/gem-push.yml"
221
+ - ".github/workflows/test.yml"
221
222
  - ".gitignore"
222
223
  - ".rspec"
223
224
  - ".rubocop.yml"
224
225
  - CHANGELOG.md
225
226
  - Gemfile
226
- - Gemfile.lock
227
227
  - LICENSE.txt
228
228
  - README.md
229
229
  - Rakefile
@@ -261,7 +261,7 @@ homepage: https://github.com/uploadcare/uploadcare-api_struct
261
261
  licenses:
262
262
  - MIT
263
263
  metadata: {}
264
- post_install_message:
264
+ post_install_message:
265
265
  rdoc_options: []
266
266
  require_paths:
267
267
  - lib
@@ -276,8 +276,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
276
276
  - !ruby/object:Gem::Version
277
277
  version: '0'
278
278
  requirements: []
279
- rubygems_version: 3.1.6
280
- signing_key:
279
+ rubygems_version: 3.5.3
280
+ signing_key:
281
281
  specification_version: 4
282
282
  summary: API wrapper builder with response serialization
283
283
  test_files: []
data/.circleci/config.yml DELETED
@@ -1,25 +0,0 @@
1
- version: 2
2
- jobs:
3
- build:
4
- docker:
5
- - image: circleci/ruby:3.2-node
6
-
7
- steps:
8
- - checkout
9
-
10
- - restore_cache:
11
- keys:
12
- - api-struct-bundle-v2-{{ checksum "api_struct.gemspec" }}
13
-
14
- - run:
15
- name: Bundle Install
16
- command: bundle check || bundle install
17
-
18
- - save_cache:
19
- key: api-struct-bundle-v2-{{ checksum "api_struct.gemspec" }}
20
- paths:
21
- - vendor/bundle
22
-
23
- - run:
24
- name: Run Rspec
25
- command: bundle exec rspec
data/Gemfile.lock DELETED
@@ -1,123 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- api_struct (1.1.0)
5
- dry-configurable (~> 1.0)
6
- dry-inflector (~> 1.0)
7
- dry-monads (~> 1.6)
8
- hashie (~> 5.0)
9
- http (~> 5.1)
10
-
11
- GEM
12
- remote: https://rubygems.org/
13
- specs:
14
- addressable (2.8.1)
15
- public_suffix (>= 2.0.2, < 6.0)
16
- ast (2.4.2)
17
- byebug (11.1.3)
18
- coderay (1.1.3)
19
- concurrent-ruby (1.2.2)
20
- crack (0.4.5)
21
- rexml
22
- diff-lcs (1.5.0)
23
- domain_name (0.5.20190701)
24
- unf (>= 0.0.5, < 1.0.0)
25
- dry-configurable (1.0.1)
26
- dry-core (~> 1.0, < 2)
27
- zeitwerk (~> 2.6)
28
- dry-core (1.0.0)
29
- concurrent-ruby (~> 1.0)
30
- zeitwerk (~> 2.6)
31
- dry-inflector (1.0.0)
32
- dry-monads (1.6.0)
33
- concurrent-ruby (~> 1.0)
34
- dry-core (~> 1.0, < 2)
35
- zeitwerk (~> 2.6)
36
- ffaker (2.21.0)
37
- ffi (1.15.5)
38
- ffi-compiler (1.0.1)
39
- ffi (>= 1.0.0)
40
- rake
41
- hashdiff (1.0.1)
42
- hashie (5.0.0)
43
- http (5.1.1)
44
- addressable (~> 2.8)
45
- http-cookie (~> 1.0)
46
- http-form_data (~> 2.2)
47
- llhttp-ffi (~> 0.4.0)
48
- http-cookie (1.0.5)
49
- domain_name (~> 0.5)
50
- http-form_data (2.3.0)
51
- json (2.6.3)
52
- llhttp-ffi (0.4.0)
53
- ffi-compiler (~> 1.0)
54
- rake (~> 13.0)
55
- method_source (1.0.0)
56
- parallel (1.22.1)
57
- parser (3.2.1.1)
58
- ast (~> 2.4.1)
59
- pry (0.14.2)
60
- coderay (~> 1.1)
61
- method_source (~> 1.0)
62
- pry-byebug (3.10.1)
63
- byebug (~> 11.0)
64
- pry (>= 0.13, < 0.15)
65
- public_suffix (5.0.1)
66
- rainbow (3.1.1)
67
- rake (13.0.6)
68
- regexp_parser (2.7.0)
69
- rexml (3.2.5)
70
- rspec (3.12.0)
71
- rspec-core (~> 3.12.0)
72
- rspec-expectations (~> 3.12.0)
73
- rspec-mocks (~> 3.12.0)
74
- rspec-core (3.12.1)
75
- rspec-support (~> 3.12.0)
76
- rspec-expectations (3.12.2)
77
- diff-lcs (>= 1.2.0, < 2.0)
78
- rspec-support (~> 3.12.0)
79
- rspec-mocks (3.12.4)
80
- diff-lcs (>= 1.2.0, < 2.0)
81
- rspec-support (~> 3.12.0)
82
- rspec-support (3.12.0)
83
- rubocop (1.48.1)
84
- json (~> 2.3)
85
- parallel (~> 1.10)
86
- parser (>= 3.2.0.0)
87
- rainbow (>= 2.2.2, < 4.0)
88
- regexp_parser (>= 1.8, < 3.0)
89
- rexml (>= 3.2.5, < 4.0)
90
- rubocop-ast (>= 1.26.0, < 2.0)
91
- ruby-progressbar (~> 1.7)
92
- unicode-display_width (>= 2.4.0, < 3.0)
93
- rubocop-ast (1.27.0)
94
- parser (>= 3.2.1.0)
95
- ruby-progressbar (1.13.0)
96
- unf (0.1.4)
97
- unf_ext
98
- unf_ext (0.0.8.2)
99
- unicode-display_width (2.4.2)
100
- vcr (6.1.0)
101
- webmock (3.18.1)
102
- addressable (>= 2.8.0)
103
- crack (>= 0.3.2)
104
- hashdiff (>= 0.4.0, < 2.0.0)
105
- zeitwerk (2.6.7)
106
-
107
- PLATFORMS
108
- ruby
109
-
110
- DEPENDENCIES
111
- api_struct!
112
- bundler (~> 2.4)
113
- byebug (~> 11.1)
114
- ffaker (~> 2.21)
115
- pry-byebug (~> 3.10)
116
- rake (~> 13.0)
117
- rspec (~> 3.12)
118
- rubocop (~> 1.48)
119
- vcr (~> 6.1)
120
- webmock (~> 3.18)
121
-
122
- BUNDLED WITH
123
- 2.4.8