mutils 1.0.0 → 1.1.3

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: e38e7ca1f83b872f6a72819355f44ef30a1de7b6c3756abd27e3ec66e256b90a
4
- data.tar.gz: a3267a83c8a82770d84f7636f3f8b19aa5039eabcfc6b2953b605981d21e1d6b
3
+ metadata.gz: 4af2ef0147adcbbbd24128d3af1214bad8f13c379f8ec411a11691e11dc8010b
4
+ data.tar.gz: fdb0af64961644ac7b433e8c24de95895ac62a8da7f638b6cda52042ce44956c
5
5
  SHA512:
6
- metadata.gz: 2a423ea8de2ccf77982fdfec8a9dd9b164a42b0da5b2aa4664889d1e13bae2eba384344bc25c7a24ec8267218a98170c0f7b92c7695926cb72a8b2d6ad695d9b
7
- data.tar.gz: 3f1f7b51833b2cb57d8ad2da72aebbca7799ac9f86f61380ab2a9cce5af15bc642591fe5b483d78054a37b4e9ff8b5cbcfe4776537bd8c7da650b83a8ba59679
6
+ metadata.gz: '008315c5d7101af58c4c5efd49e555f962d33097f25b3aef286a96b941025b761e55f644a13fe6776d831cd9c2f7bbd0da0edb6d2e49700b513c94db06e0a6ed'
7
+ data.tar.gz: 2b049ce4370955401074e41a970fbdd1f4921d211860cb1d82491815118ce937678f0f8650e90e8fde4bc5f34fc60f81681886a615f1269848ec400ffdf4dbe0
@@ -0,0 +1,10 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "bundler"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "daily"
7
+ - package-ecosystem: "npm"
8
+ directory: "/"
9
+ schedule:
10
+ interval: "daily"
data/.gitignore CHANGED
@@ -11,3 +11,4 @@
11
11
  .rspec_status
12
12
  .idea/*
13
13
  *.gem
14
+ /node_modules
@@ -0,0 +1,7 @@
1
+ {
2
+ "husky": {
3
+ "hooks": {
4
+ "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
5
+ }
6
+ }
7
+ }
@@ -12,7 +12,18 @@ cache: bundler
12
12
  before_install:
13
13
  - gem install bundler -v 2.0.1
14
14
  - gem install rspec
15
- script: bundle exec rspec
15
+ - nvm use 11
16
+ - npm install
17
+ script: bundle exec rubocop lib && bundle exec rspec
16
18
  branches:
17
19
  only: master
18
- bundler_args: --with=development,test --jobs=3 --retry=3
20
+ bundler_args: --with=development,test --jobs=3 --retry=3
21
+ jobs:
22
+ include:
23
+ - stage: release
24
+ rvm: 2.6.5
25
+ script: npx semantic-release
26
+ stages:
27
+ - test
28
+ - name: release
29
+ if: (NOT type IN (pull_request)) AND (branch = master)
@@ -1,5 +1,39 @@
1
- # Changelog
2
- ## [v1.0.0](https://github.com/code-vedas/mutils/tree/v0.2.36) (2020-04-17)
1
+ ## [1.1.3](https://github.com/Code-Vedas/mutils/compare/v1.1.2...v1.1.3) (2020-10-18)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * Gemfile to reduce vulnerabilities ([#65](https://github.com/Code-Vedas/mutils/issues/65)) ([49b5ae2](https://github.com/Code-Vedas/mutils/commit/49b5ae2ba795d16976425ddbaf1e1c372a940c1f))
7
+
8
+ ## [1.1.2](https://github.com/Code-Vedas/mutils/compare/v1.1.1...v1.1.2) (2020-10-15)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **coveralls:** gemfile to reduce vulnerabilities ([#64](https://github.com/Code-Vedas/mutils/issues/64)) ([7d4e592](https://github.com/Code-Vedas/mutils/commit/7d4e59214d5c9aced1c4beb1a6b9f929367d84da))
14
+
15
+ ## [1.1.1](https://github.com/Code-Vedas/mutils/compare/v1.1.0...v1.1.1) (2020-10-05)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * **params:** always send hash in params ([7d71b6d](https://github.com/Code-Vedas/mutils/commit/7d71b6d2c89f39883745a40e5472c444b5673e8b))
21
+
22
+ # [1.1.0](https://github.com/Code-Vedas/mutils/compare/v1.0.1...v1.1.0) (2020-08-15)
23
+
24
+
25
+ ### Features
26
+
27
+ * **params:** conditional if:Proc get params as second attribute ([55a3b08](https://github.com/Code-Vedas/mutils/commit/55a3b08fee52c0dbef2b22c6e4f468389f8c53a4))
28
+
29
+ ## [1.0.1](https://github.com/Code-Vedas/mutils/compare/v1.0.0...v1.0.1) (2020-07-24)
30
+
31
+
32
+ ### Bug Fixes
33
+
34
+ * **semantic-release:** enable semantic-release ([aa9c28f](https://github.com/Code-Vedas/mutils/commit/aa9c28fb8da7fcd1915a189bda22f8421a566eee))
35
+
36
+ ## [1.0.0](https://github.com/code-vedas/mutils/tree/v0.2.36) (2020-04-17)
3
37
 
4
38
  [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.36...v1.0.0)
5
39
 
@@ -12,7 +46,7 @@
12
46
  - Code refactored
13
47
  - Using cache for expensive operations
14
48
 
15
- ## [v0.2.36](https://github.com/code-vedas/mutils/tree/v0.2.36) (2020-04-14)
49
+ ## [0.2.36](https://github.com/code-vedas/mutils/tree/v0.2.36) (2020-04-14)
16
50
 
17
51
  [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.35...v0.2.36)
18
52
 
@@ -22,7 +56,7 @@
22
56
  - Conditional attributes and relations [\#32](https://github.com/code-vedas/mutils/pull/32) ([niteshpurohit](https://github.com/niteshpurohit))
23
57
  - chore: add more ruby version and os to test [\#31](https://github.com/code-vedas/mutils/pull/31) ([niteshpurohit](https://github.com/niteshpurohit))
24
58
 
25
- ## [v0.2.35](https://github.com/code-vedas/mutils/tree/v0.2.35) (2020-03-30)
59
+ ## [0.2.35](https://github.com/code-vedas/mutils/tree/v0.2.35) (2020-03-30)
26
60
 
27
61
  [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.34...v0.2.35)
28
62
 
@@ -32,7 +66,7 @@
32
66
  - added custom\_method and attribute example [\#29](https://github.com/code-vedas/mutils/pull/29) ([niteshpurohit](https://github.com/niteshpurohit))
33
67
  - chore: update changelog [\#28](https://github.com/code-vedas/mutils/pull/28) ([niteshpurohit](https://github.com/niteshpurohit))
34
68
 
35
- ## [v0.2.34](https://github.com/code-vedas/mutils/tree/v0.2.34) (2020-03-29)
69
+ ## [0.2.34](https://github.com/code-vedas/mutils/tree/v0.2.34) (2020-03-29)
36
70
 
37
71
  [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.33...v0.2.34)
38
72
 
@@ -40,7 +74,7 @@
40
74
 
41
75
  - Feature/attribute can be optional [\#27](https://github.com/code-vedas/mutils/pull/27) ([niteshpurohit](https://github.com/niteshpurohit))
42
76
 
43
- ## [v0.2.33](https://github.com/code-vedas/mutils/tree/v0.2.33) (2020-03-29)
77
+ ## [0.2.33](https://github.com/code-vedas/mutils/tree/v0.2.33) (2020-03-29)
44
78
 
45
79
  [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.32...v0.2.33)
46
80
 
@@ -51,7 +85,7 @@
51
85
  - Create .codeclimate.yml [\#24](https://github.com/code-vedas/mutils/pull/24) ([niteshpurohit](https://github.com/niteshpurohit))
52
86
  - changelog: v0.2.32 [\#22](https://github.com/code-vedas/mutils/pull/22) ([niteshpurohit](https://github.com/niteshpurohit))
53
87
 
54
- ## [v0.2.32](https://github.com/code-vedas/mutils/tree/v0.2.32) (2020-03-18)
88
+ ## [0.2.32](https://github.com/code-vedas/mutils/tree/v0.2.32) (2020-03-18)
55
89
 
56
90
  [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.31...v0.2.32)
57
91
 
@@ -59,7 +93,7 @@
59
93
 
60
94
  - Feature/improve performance [\#21](https://github.com/code-vedas/mutils/pull/21) ([niteshpurohit](https://github.com/niteshpurohit))
61
95
 
62
- ## [v0.2.31](https://github.com/code-vedas/mutils/tree/v0.2.31) (2020-03-18)
96
+ ## [0.2.31](https://github.com/code-vedas/mutils/tree/v0.2.31) (2020-03-18)
63
97
 
64
98
  [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.30...v0.2.31)
65
99
 
@@ -68,7 +102,7 @@
68
102
  - Update version.rb [\#20](https://github.com/code-vedas/mutils/pull/20) ([niteshpurohit](https://github.com/niteshpurohit))
69
103
  - Rake 13.0 [\#19](https://github.com/code-vedas/mutils/pull/19) ([niteshpurohit](https://github.com/niteshpurohit))
70
104
 
71
- ## [v0.2.30](https://github.com/code-vedas/mutils/tree/v0.2.30) (2020-03-17)
105
+ ## [0.2.30](https://github.com/code-vedas/mutils/tree/v0.2.30) (2020-03-17)
72
106
 
73
107
  [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.29...v0.2.30)
74
108
 
@@ -76,7 +110,7 @@
76
110
 
77
111
  - Deps [\#18](https://github.com/code-vedas/mutils/pull/18) ([niteshpurohit](https://github.com/niteshpurohit))
78
112
 
79
- ## [v0.2.29](https://github.com/code-vedas/mutils/tree/v0.2.29) (2019-12-07)
113
+ ## [0.2.29](https://github.com/code-vedas/mutils/tree/v0.2.29) (2019-12-07)
80
114
 
81
115
  [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.28...v0.2.29)
82
116
 
@@ -84,7 +118,7 @@
84
118
 
85
119
  - Scope Variable bug [\#14](https://github.com/code-vedas/mutils/pull/14) ([niteshpurohit](https://github.com/niteshpurohit))
86
120
 
87
- ## [v0.2.28](https://github.com/code-vedas/mutils/tree/v0.2.28) (2019-11-26)
121
+ ## [0.2.28](https://github.com/code-vedas/mutils/tree/v0.2.28) (2019-11-26)
88
122
 
89
123
  [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.27...v0.2.28)
90
124
 
@@ -92,7 +126,7 @@
92
126
 
93
127
  - Feature/scoped generator [\#13](https://github.com/code-vedas/mutils/pull/13) ([niteshpurohit](https://github.com/niteshpurohit))
94
128
 
95
- ## [v0.2.27](https://github.com/code-vedas/mutils/tree/v0.2.27) (2019-11-25)
129
+ ## [0.2.27](https://github.com/code-vedas/mutils/tree/v0.2.27) (2019-11-25)
96
130
 
97
131
  [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.26...v0.2.27)
98
132
 
@@ -109,15 +143,15 @@
109
143
  - Update README.md [\#7](https://github.com/code-vedas/mutils/pull/7) ([niteshpurohit](https://github.com/niteshpurohit))
110
144
  - Update README.md [\#6](https://github.com/code-vedas/mutils/pull/6) ([niteshpurohit](https://github.com/niteshpurohit))
111
145
 
112
- ## [v0.2.26](https://github.com/code-vedas/mutils/tree/v0.2.26) (2019-11-24)
146
+ ## [0.2.26](https://github.com/code-vedas/mutils/tree/v0.2.26) (2019-11-24)
113
147
 
114
148
  [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.25...v0.2.26)
115
149
 
116
- ## [v0.2.25](https://github.com/code-vedas/mutils/tree/v0.2.25) (2019-11-24)
150
+ ## [0.2.25](https://github.com/code-vedas/mutils/tree/v0.2.25) (2019-11-24)
117
151
 
118
152
  [Full Changelog](https://github.com/code-vedas/mutils/compare/885f96959dd3701ac20ed0981b920be753c00db0...v0.2.25)
119
153
 
120
154
  **Merged pull requests:**
121
155
 
122
156
  - Feature/improve concurrency [\#4](https://github.com/code-vedas/mutils/pull/4) ([niteshpurohit](https://github.com/niteshpurohit))
123
- - Testing Deploy [\#3](https://github.com/code-vedas/mutils/pull/3) ([niteshpurohit](https://github.com/niteshpurohit))
157
+ - Testing Deploy [\#3](https://github.com/code-vedas/mutils/pull/3) ([niteshpurohit](https://github.com/niteshpurohit))
data/Gemfile CHANGED
@@ -3,4 +3,10 @@
3
3
  source 'https://rubygems.org'
4
4
 
5
5
  # Specify your gem's dependencies in mutils.gemspec
6
+ gem 'coveralls', '>= 0.8.23'
7
+ gem 'pre-commit', require: false
8
+ gem 'rspec'
9
+ gem 'rspec-benchmark'
10
+ gem 'rspec-json_expectations'
11
+ gem 'rubocop'
6
12
  gemspec
@@ -1,12 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mutils (1.0.0)
4
+ mutils (1.1.2)
5
5
  dry-inflector
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
+ ast (2.4.1)
10
11
  benchmark-malloc (0.2.0)
11
12
  benchmark-perf (0.6.0)
12
13
  benchmark-trend (0.4.0)
@@ -21,7 +22,16 @@ GEM
21
22
  dry-inflector (0.2.0)
22
23
  json (2.3.0)
23
24
  json (2.3.0-java)
25
+ parallel (1.19.2)
26
+ parser (2.7.1.4)
27
+ ast (~> 2.4.1)
28
+ pluginator (1.5.0)
29
+ pre-commit (0.39.0)
30
+ pluginator (~> 1.5)
31
+ rainbow (3.0.0)
24
32
  rake (13.0.1)
33
+ regexp_parser (1.7.1)
34
+ rexml (3.2.4)
25
35
  rspec (3.9.0)
26
36
  rspec-core (~> 3.9.0)
27
37
  rspec-expectations (~> 3.9.0)
@@ -41,6 +51,18 @@ GEM
41
51
  diff-lcs (>= 1.2.0, < 2.0)
42
52
  rspec-support (~> 3.9.0)
43
53
  rspec-support (3.9.2)
54
+ rubocop (0.89.1)
55
+ parallel (~> 1.10)
56
+ parser (>= 2.7.1.1)
57
+ rainbow (>= 2.2.2, < 4.0)
58
+ regexp_parser (>= 1.7)
59
+ rexml
60
+ rubocop-ast (>= 0.3.0, < 1.0)
61
+ ruby-progressbar (~> 1.7)
62
+ unicode-display_width (>= 1.4.0, < 2.0)
63
+ rubocop-ast (0.3.0)
64
+ parser (>= 2.7.1.4)
65
+ ruby-progressbar (1.10.1)
44
66
  simplecov (0.16.1)
45
67
  docile (~> 1.1)
46
68
  json (>= 1.8, < 3)
@@ -52,6 +74,7 @@ GEM
52
74
  thor (1.0.1)
53
75
  tins (1.24.1)
54
76
  sync
77
+ unicode-display_width (1.7.0)
55
78
 
56
79
  PLATFORMS
57
80
  java
@@ -59,12 +82,14 @@ PLATFORMS
59
82
 
60
83
  DEPENDENCIES
61
84
  bundler (~> 2.0)
62
- coveralls
85
+ coveralls (>= 0.8.23)
63
86
  mutils!
87
+ pre-commit
64
88
  rake (~> 13.0)
65
89
  rspec
66
90
  rspec-benchmark
67
91
  rspec-json_expectations
92
+ rubocop
68
93
 
69
94
  BUNDLED WITH
70
95
  2.1.4
data/README.md CHANGED
@@ -26,7 +26,7 @@ These collection of modules are built by developer for developers :-)
26
26
 
27
27
  ## Features
28
28
  * Simple declaration syntax similar to Active Model Serializer
29
- * Realtionships support `belongs_to', `has_many`, `has_one`
29
+ * Realtionships support `belongs_to`, `has_many`, `has_one`
30
30
  * Block style attributes with params
31
31
 
32
32
  ## Installation
@@ -89,7 +89,7 @@ class UserSerializer < Mutils::Serialization::BaseSerializer
89
89
  attributes :id, :first_name, :last_name, :email
90
90
 
91
91
  belongs_to :company, serializer: CompanySerializer, always_include: true
92
- ##OR
92
+ ## OR
93
93
  belongs_to :company, serializer: CompanySerializer, always_include: true, label: 'organization' ##<== important to give singular name
94
94
 
95
95
  has_many :comments, serializer: CommentSerializer
@@ -101,7 +101,11 @@ class UserSerializer < Mutils::Serialization::BaseSerializer
101
101
  end
102
102
  ```
103
103
  ### Conditional Attributes
104
- Attributes are fields in the model itself. You can reference them by below example
104
+ Serializer can have conditional attributes with `if: Proc`
105
+ `if: Proc` block can receive `scope` and `params` as arguments
106
+
107
+ - __in proc {|scope|}__, scope is object which is being serialized
108
+ - __in proc {|scope,params|}__, scope is object which is being serialized and params is hash given to Serializer as second arguments in {params:anything}
105
109
  ```ruby
106
110
  # frozen_string_literal: true
107
111
 
@@ -109,11 +113,20 @@ Attributes are fields in the model itself. You can reference them by below examp
109
113
  class UserSerializer < Mutils::Serialization::BaseSerializer
110
114
  attributes :id, :first_name, :last_name
111
115
  attribute :email, if: proc { |scope| scope.name == 'mutils' } ## Email will only serialize if user's name is 'mutils'
116
+ # OR with Params
117
+ attribute :email, if: proc { |scope,params| params && params[:show_email] == true } ## Email will only serialize if params[:show_email] is true
112
118
  end
119
+
120
+ UserSerializer.new(user) # Without params
121
+ UserSerializer.new(user,{params:{show_email:true}}) # With params
113
122
  ```
114
- in proc {|scope|}, scope is object which is being serialized
123
+
115
124
  ### Conditional Relations
116
- Attributes are fields in the model itself. You can reference them by below example
125
+ Serializer can have conditional relations with `if: Proc`
126
+ `if: Proc` block can receive `scope` and `params` as arguments
127
+
128
+ - __in proc {|scope|}__, scope is object which is being serialized
129
+ - __in proc {|scope,params|}__, scope is object which is being serialized and params is hash given to Serializer as second arguments in {params:anything}
117
130
  ```ruby
118
131
  # frozen_string_literal: true
119
132
 
@@ -122,9 +135,15 @@ class UserSerializer < Mutils::Serialization::BaseSerializer
122
135
  attributes :id, :first_name, :last_name
123
136
  has_many :comments, serializer: CommentSerializer, if: proc { |scope| scope.name == 'mutils' } ## comments will only serialize if user's name is 'mutils'
124
137
  belongs_to :account, serializer: AccountSerializer, if: proc { |scope| scope.name != 'mutils' } ## account will only serialize if user's name is not 'mutils'
138
+ # OR with Params
139
+ belongs_to :account, serializer: AccountSerializer, if: proc { |scope,params| params && params[:show_account] == true } ## account will only serialize if params[:show_account] is true
125
140
  end
141
+
142
+ UserSerializer.new(user) # Without params
143
+ UserSerializer.new(user,{params:{show_account:true}}) # With params
144
+
126
145
  ```
127
- in proc {|scope|}, scope is object which is being serialized
146
+
128
147
  ### Attributes Blocks
129
148
  While writting attribute a block can be provided for useful transformations like `full_name` as shown below
130
149
  ```ruby
@@ -209,13 +228,13 @@ user = User.first
209
228
  options = {includes: [:comments,:account]}
210
229
  UserSerializer.new(user,options).to_h
211
230
  ```
212
- ###or
231
+ ### or
213
232
  ```ruby
214
233
  users = User.all
215
234
  options = {includes: [:account]}
216
235
  UserSerializer.new(users,options).to_json
217
236
  ```
218
- ###or in controllers
237
+ ### or in controllers
219
238
  ```ruby
220
239
  users = User.all
221
240
  options = {includes: [:account]}
@@ -234,3 +253,7 @@ The gem is available as open source under the terms of the [MIT License](https:/
234
253
  ## Code of Conduct
235
254
 
236
255
  Everyone interacting in the Mutils project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/code-vedas/mutils/blob/master/CODE_OF_CONDUCT.md).
256
+
257
+ ## Security
258
+
259
+ For security refer to [security](https://github.com/Code-Vedas/mutils/blob/master/SECURITY.md) document.
@@ -0,0 +1,13 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ Versions currently being supported with security updates.
6
+
7
+ | Version | Supported |
8
+ | ------- | ------------------ |
9
+ | 1.x.x | :white_check_mark: |
10
+
11
+ ## Reporting a Vulnerability
12
+
13
+ Create an issue or email at security@codevedas.com
data/Version ADDED
@@ -0,0 +1 @@
1
+ v1.1.3
@@ -0,0 +1 @@
1
+ module.exports = {extends: ['@commitlint/config-angular']};
@@ -0,0 +1,10 @@
1
+ #!/bin/bash
2
+
3
+ set -euo pipefail
4
+
5
+ mkdir -p $HOME/.gem
6
+ touch $HOME/.gem/credentials
7
+ chmod 0600 $HOME/.gem/credentials
8
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
9
+ gem build *.gemspec
10
+ gem push *.gem
@@ -9,7 +9,7 @@ module Mutils
9
9
  module Attributes
10
10
  def fetch_block_attributes(attributes, result_hash)
11
11
  attributes&.each do |key, s_options|
12
- result_hash[key] = s_options[:block].call(scope, options[:params])
12
+ result_hash[key] = s_options[:block].call(scope, options[:params] || {})
13
13
  end
14
14
  end
15
15
 
@@ -29,7 +29,7 @@ module Mutils
29
29
  end
30
30
 
31
31
  def check_if_included(s_options, key)
32
- return s_options[:if].call(scope) unless s_options[:if].nil? || scope_is_collection?
32
+ return s_options[:if].call(scope, options[:params] || {}) unless s_options[:if].nil? || scope_is_collection?
33
33
 
34
34
  s_options[:always_include] || options[:includes]&.include?(key)
35
35
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mutils
4
- VERSION = '1.0.0'
4
+ VERSION = File.read('Version').split("\n").first.gsub('v', '')
5
5
  end
@@ -24,11 +24,8 @@ Gem::Specification.new do |spec|
24
24
  spec.required_rubygems_version = '>= 1.8.11'
25
25
  spec.add_dependency('dry-inflector')
26
26
  spec.add_development_dependency 'bundler', '~> 2.0'
27
- spec.add_development_dependency 'coveralls'
28
27
  spec.add_development_dependency 'rake', '~> 13.0'
29
- spec.add_development_dependency 'rspec'
30
- spec.add_development_dependency 'rspec-benchmark'
31
- spec.add_development_dependency 'rspec-json_expectations'
28
+
32
29
 
33
30
  spec.metadata = {
34
31
  'bug_tracker_uri' => 'https://github.com/code-vedas/mutils/issues',