mutils 1.3.5 → 1.3.6
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 +4 -4
- data/{LICENSE.txt → LICENSE} +6 -6
- data/README.md +88 -48
- data/bin/reek +26 -0
- data/bin/rspec +4 -0
- data/bin/rubocop +4 -0
- data/lib/mutils/serialization/methods/attributes.rb +1 -3
- data/lib/mutils/serialization/methods/relations.rb +26 -11
- data/lib/mutils/version.rb +1 -1
- metadata +23 -41
- data/.codeclimate.yml +0 -4
- data/.github/FUNDING.yml +0 -1
- data/.github/ISSUE_TEMPLATE/bug_report.md +0 -46
- data/.github/ISSUE_TEMPLATE/documentation_issue.md +0 -29
- data/.github/ISSUE_TEMPLATE/feature_request.md +0 -37
- data/.github/ISSUE_TEMPLATE/question_or_help.md +0 -25
- data/.github/ISSUE_TEMPLATE/report_a_security_vulnerability.md +0 -74
- data/.github/ISSUE_TEMPLATE/translations.md +0 -51
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -52
- data/.github/dependabot.yml +0 -11
- data/.github/release-drafter.yml +0 -148
- data/.github/workflows/ci.yml +0 -45
- data/.github/workflows/codeql.yml +0 -64
- data/.github/workflows/release-drafter.yml +0 -27
- data/.github/workflows/release.yml +0 -43
- data/.gitignore +0 -15
- data/.jrubyrc +0 -1
- data/.releaserc +0 -64
- data/.rspec +0 -2
- data/.rubocop.yml +0 -13
- data/.ruby-version +0 -1
- data/CHANGELOG.md +0 -316
- data/CODE_OF_CONDUCT.md +0 -74
- data/Gemfile +0 -18
- data/Gemfile.lock +0 -131
- data/SECURITY.md +0 -13
- data/Version +0 -1
- data/mutils.gemspec +0 -32
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 98a4047fe721fbd198edb5e606223a3699ba2222d0f6319b634615f875320068
|
|
4
|
+
data.tar.gz: 286e141ad7ddf09093e172d7ed218029e37799ffbf75bb2a810ffd6bd35560d0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7a20addb48d632c80dea073b0265dbfda78f94afa084bcdb2c87db0eabb7aaa05792e8e458250c3f7e18145189867fc3b40a3fd21ccf36cc613894cc8081a818
|
|
7
|
+
data.tar.gz: 868e8a0399312495e8cc427b98681644dc9bac978d3c5489470cc9d302a70386b6a874a5c18c2b4066e86b0ba294d74f5e7d0273816bf3cdbaf0580128ccbf22
|
data/{LICENSE.txt → LICENSE}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2019
|
|
3
|
+
Copyright (c) 2019-present Codevedas Inc. and the Mutils Authors
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -9,13 +9,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
9
9
|
copies of the Software, and to permit persons to whom the Software is
|
|
10
10
|
furnished to do so, subject to the following conditions:
|
|
11
11
|
|
|
12
|
-
The above copyright notice and this permission notice shall be included in
|
|
13
|
-
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
14
|
|
|
15
15
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
16
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
17
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
-
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
data/README.md
CHANGED
|
@@ -1,51 +1,62 @@
|
|
|
1
|
+
# Mutils
|
|
2
|
+
|
|
1
3
|
[](https://codeclimate.com/github/code-vedas/mutils/maintainability)
|
|
2
|
-

|
|
4
|
+

|
|
3
5
|
[](https://badge.fury.io/rb/mutils)
|
|
4
6
|
[](https://badge.coveralls.io/github/Code-Vedas/mutils?branch=master)
|
|
5
7
|
|
|
6
|
-
# Mutils
|
|
7
8
|
## Introduction
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
9
|
+
|
|
10
|
+
`mutils` is a collection of useful helpers for Ruby and Rails applications.
|
|
11
|
+
|
|
12
|
+
Serialization is one of the features available today, and the gem is intended to grow into a broader utility toolkit over time.
|
|
13
|
+
|
|
14
|
+
## Table of Contents
|
|
15
|
+
|
|
16
|
+
- [Features](#features)
|
|
17
|
+
- [Installation](#installation)
|
|
18
|
+
- [Usage](#usage)
|
|
19
|
+
- [Rails Generator](#rails-generator)
|
|
20
|
+
- [Attributes](#attributes)
|
|
21
|
+
- [Relations](#relations)
|
|
22
|
+
- [Conditional Attributes](#conditional-attributes)
|
|
23
|
+
- [Conditional Relations](#conditional-relations)
|
|
24
|
+
- [Attributes Block](#attributes-blocks)
|
|
25
|
+
- [Attributes Block with Params](#attributes-blocks-with-params)
|
|
26
|
+
- [Custom Methods](#custom-methods)
|
|
27
|
+
- [Name Tag](#name-tag)
|
|
28
|
+
- [Sample Usage](#sample-usage)
|
|
26
29
|
|
|
27
30
|
## Features
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
|
|
32
|
+
- Simple declaration syntax similar to Active Model Serializer
|
|
33
|
+
- Relationships support `belongs_to`, `has_many`, `has_one`
|
|
34
|
+
- Block style attributes with params
|
|
31
35
|
|
|
32
36
|
## Installation
|
|
33
37
|
|
|
34
38
|
Add this line to your application's Gemfile:
|
|
39
|
+
|
|
35
40
|
```ruby
|
|
36
41
|
gem 'mutils'
|
|
37
42
|
```
|
|
43
|
+
|
|
38
44
|
And then execute:
|
|
39
45
|
|
|
40
|
-
|
|
46
|
+
```bash
|
|
47
|
+
bundle install
|
|
48
|
+
```
|
|
41
49
|
|
|
42
50
|
Or install it yourself as:
|
|
43
51
|
|
|
44
|
-
|
|
52
|
+
```bash
|
|
53
|
+
gem install mutils
|
|
54
|
+
```
|
|
45
55
|
|
|
46
|
-
## Usage
|
|
56
|
+
## Usage
|
|
47
57
|
|
|
48
58
|
### Rails Generator
|
|
59
|
+
|
|
49
60
|
```shell script
|
|
50
61
|
rails g mutils:serializer User id first_name last_name email
|
|
51
62
|
|
|
@@ -53,7 +64,9 @@ OUTPUT
|
|
|
53
64
|
Running via Spring preloader in process xxxxx
|
|
54
65
|
create app/serializers/user_serializer.rb
|
|
55
66
|
```
|
|
67
|
+
|
|
56
68
|
You will get serializer in app/serializers/user_serializer.rb
|
|
69
|
+
|
|
57
70
|
```ruby
|
|
58
71
|
# frozen_string_literal: true
|
|
59
72
|
|
|
@@ -64,7 +77,9 @@ end
|
|
|
64
77
|
```
|
|
65
78
|
|
|
66
79
|
### Attributes
|
|
80
|
+
|
|
67
81
|
Attributes are fields in the model itself. You can reference them by below example
|
|
82
|
+
|
|
68
83
|
```ruby
|
|
69
84
|
# frozen_string_literal: true
|
|
70
85
|
|
|
@@ -77,37 +92,44 @@ class UserSerializer < Mutils::Serialization::BaseSerializer
|
|
|
77
92
|
attribute :email, &:email ## this will call email attribute from User
|
|
78
93
|
end
|
|
79
94
|
```
|
|
95
|
+
|
|
80
96
|
### Relations
|
|
97
|
+
|
|
81
98
|
Relations such as `has_many`, `belongs_to`, `has_one` can be used as follows
|
|
99
|
+
|
|
82
100
|
1. Every relation must be provided with their own serializer
|
|
83
101
|
2. `always_include` option can be used to instruct `Serializer` to always include this relation
|
|
84
102
|
3. `always_include` by default is disabled, relations which are not `always_include` can be included while using the serializer. Refer to next section for this usage
|
|
85
103
|
4. `label` option can be used to override model class name while serializing
|
|
104
|
+
|
|
86
105
|
```ruby
|
|
87
106
|
# frozen_string_literal: true
|
|
88
107
|
|
|
89
108
|
# User Serializer
|
|
90
109
|
class UserSerializer < Mutils::Serialization::BaseSerializer
|
|
91
110
|
attributes :id, :first_name, :last_name, :email
|
|
92
|
-
|
|
111
|
+
|
|
93
112
|
belongs_to :company, serializer: CompanySerializer, always_include: true
|
|
94
113
|
## OR
|
|
95
114
|
belongs_to :company, serializer: CompanySerializer, always_include: true, label: 'organization' ##<== important to give singular name
|
|
96
|
-
|
|
115
|
+
|
|
97
116
|
has_many :comments, serializer: CommentSerializer
|
|
98
117
|
has_one :account, serializer: AccountSerializer
|
|
99
|
-
|
|
118
|
+
|
|
100
119
|
def full_name
|
|
101
120
|
"#{scope.first_name} #{scope.last_name}"
|
|
102
121
|
end
|
|
103
122
|
end
|
|
104
123
|
```
|
|
124
|
+
|
|
105
125
|
### Conditional Attributes
|
|
106
|
-
|
|
126
|
+
|
|
127
|
+
Serializer can have conditional attributes with `if: Proc`
|
|
107
128
|
`if: Proc` block can receive `scope` and `params` as arguments
|
|
108
129
|
|
|
109
|
-
-
|
|
110
|
-
-
|
|
130
|
+
- **in proc {|scope|}**, scope is object which is being serialized
|
|
131
|
+
- **in proc {|scope,params|}**, scope is object which is being serialized and params is hash given to Serializer as second arguments in {params:anything}
|
|
132
|
+
|
|
111
133
|
```ruby
|
|
112
134
|
# frozen_string_literal: true
|
|
113
135
|
|
|
@@ -124,11 +146,13 @@ UserSerializer.new(user,{params:{show_email:true}}) # With params
|
|
|
124
146
|
```
|
|
125
147
|
|
|
126
148
|
### Conditional Relations
|
|
127
|
-
|
|
149
|
+
|
|
150
|
+
Serializer can have conditional relations with `if: Proc`
|
|
128
151
|
`if: Proc` block can receive `scope` and `params` as arguments
|
|
129
152
|
|
|
130
|
-
-
|
|
131
|
-
-
|
|
153
|
+
- **in proc {|scope|}**, scope is object which is being serialized
|
|
154
|
+
- **in proc {|scope,params|}**, scope is object which is being serialized and params is hash given to Serializer as second arguments in {params:anything}
|
|
155
|
+
|
|
132
156
|
```ruby
|
|
133
157
|
# frozen_string_literal: true
|
|
134
158
|
|
|
@@ -145,9 +169,11 @@ UserSerializer.new(user) # Without params
|
|
|
145
169
|
UserSerializer.new(user,{params:{show_account:true}}) # With params
|
|
146
170
|
|
|
147
171
|
```
|
|
148
|
-
|
|
172
|
+
|
|
149
173
|
### Attributes Blocks
|
|
150
|
-
|
|
174
|
+
|
|
175
|
+
While writing attribute a block can be provided for useful transformations like `full_name` as shown below
|
|
176
|
+
|
|
151
177
|
```ruby
|
|
152
178
|
# frozen_string_literal: true
|
|
153
179
|
|
|
@@ -159,8 +185,11 @@ class UserSerializer < Mutils::Serialization::BaseSerializer
|
|
|
159
185
|
end
|
|
160
186
|
end
|
|
161
187
|
```
|
|
188
|
+
|
|
162
189
|
### Attributes Blocks with Params
|
|
163
|
-
|
|
190
|
+
|
|
191
|
+
While writing attribute a block can be provided for useful transformations like `full_name` as shown below
|
|
192
|
+
|
|
164
193
|
```ruby
|
|
165
194
|
# frozen_string_literal: true
|
|
166
195
|
|
|
@@ -172,6 +201,7 @@ class UserSerializer < Mutils::Serialization::BaseSerializer
|
|
|
172
201
|
end
|
|
173
202
|
end
|
|
174
203
|
```
|
|
204
|
+
|
|
175
205
|
```ruby
|
|
176
206
|
# in controller
|
|
177
207
|
|
|
@@ -179,7 +209,9 @@ user = current_user
|
|
|
179
209
|
owner = owner_user
|
|
180
210
|
render json: UserSerializer.new(user,{params:{owner:owner}})
|
|
181
211
|
```
|
|
212
|
+
|
|
182
213
|
### Custom Methods
|
|
214
|
+
|
|
183
215
|
Custom methods used in Serializer can be useful for cases as below.
|
|
184
216
|
`scope` will be available to reference object in Serializer in below case its `user`
|
|
185
217
|
|
|
@@ -193,21 +225,25 @@ class UserSerializer < Mutils::Serialization::BaseSerializer
|
|
|
193
225
|
custom_methods :full_name
|
|
194
226
|
## OR
|
|
195
227
|
custom_method :full_name, {always_include: true} ## this will allow to selectively include full_name
|
|
196
|
-
###
|
|
197
|
-
|
|
228
|
+
###
|
|
229
|
+
|
|
198
230
|
def full_name
|
|
199
231
|
"#{scope.first_name} #{scope.last_name}"
|
|
200
232
|
end
|
|
201
233
|
end
|
|
202
234
|
```
|
|
235
|
+
|
|
203
236
|
### Name Tag
|
|
237
|
+
|
|
204
238
|
name_tag is used to provide custom name to serializer output keys for json
|
|
205
239
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
240
|
+
#### Options
|
|
241
|
+
|
|
242
|
+
- `name_tag 'Person', true` # Include Person or People in JSON serialization as root, true|false this only implies to root serializer
|
|
243
|
+
- `name_tag 'Person', false` # not Include Person or People in JSON serialization as root, true|false this only implies to root serializer
|
|
244
|
+
- `name_tag 'Person'` # same as `name_tag 'Person', false`
|
|
245
|
+
- without name_tag, actual class name of scope object inside serializer will be used
|
|
246
|
+
|
|
211
247
|
```ruby
|
|
212
248
|
# frozen_string_literal: true
|
|
213
249
|
|
|
@@ -216,7 +252,7 @@ class UserSerializer < Mutils::Serialization::BaseSerializer
|
|
|
216
252
|
name_tag 'Person', true
|
|
217
253
|
attributes :id, :first_name, :last_name, :email
|
|
218
254
|
custom_methods :full_name
|
|
219
|
-
|
|
255
|
+
|
|
220
256
|
def full_name
|
|
221
257
|
"#{scope.first_name} #{scope.last_name}"
|
|
222
258
|
end
|
|
@@ -230,13 +266,17 @@ user = User.first
|
|
|
230
266
|
options = {includes: [:comments,:account]}
|
|
231
267
|
UserSerializer.new(user,options).to_h
|
|
232
268
|
```
|
|
233
|
-
|
|
269
|
+
|
|
270
|
+
#### Or
|
|
271
|
+
|
|
234
272
|
```ruby
|
|
235
273
|
users = User.all
|
|
236
274
|
options = {includes: [:account]}
|
|
237
275
|
UserSerializer.new(users,options).to_json
|
|
238
276
|
```
|
|
239
|
-
|
|
277
|
+
|
|
278
|
+
#### Or In Controllers
|
|
279
|
+
|
|
240
280
|
```ruby
|
|
241
281
|
users = User.all
|
|
242
282
|
options = {includes: [:account]}
|
data/bin/reek
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
# Copyright Codevedas Inc. 2019-present
|
|
5
|
+
#
|
|
6
|
+
# This source code is licensed under the MIT license found in the
|
|
7
|
+
# LICENSE file in the root directory of this source tree.
|
|
8
|
+
require 'pty'
|
|
9
|
+
|
|
10
|
+
root_dir = File.expand_path('..', __dir__)
|
|
11
|
+
Dir.chdir(root_dir)
|
|
12
|
+
|
|
13
|
+
command = ['bundle', 'exec', 'reek', *ARGV]
|
|
14
|
+
output = +''
|
|
15
|
+
status = nil
|
|
16
|
+
|
|
17
|
+
PTY.spawn(*command) do |reader, _writer, pid|
|
|
18
|
+
reader.each { |line| output << line }
|
|
19
|
+
rescue Errno::EIO
|
|
20
|
+
nil
|
|
21
|
+
ensure
|
|
22
|
+
_, status = Process.wait2(pid)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
print(output.gsub("\r\n", "\n"))
|
|
26
|
+
exit(status.exitstatus || 1)
|
data/bin/rspec
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
+
# Copyright Codevedas Inc. 2019-present
|
|
5
|
+
#
|
|
6
|
+
# This source code is licensed under the MIT license found in the
|
|
7
|
+
# LICENSE file in the root directory of this source tree.
|
|
4
8
|
#
|
|
5
9
|
# This file was generated by Bundler.
|
|
6
10
|
#
|
data/bin/rubocop
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
+
# Copyright Codevedas Inc. 2019-present
|
|
5
|
+
#
|
|
6
|
+
# This source code is licensed under the MIT license found in the
|
|
7
|
+
# LICENSE file in the root directory of this source tree.
|
|
4
8
|
#
|
|
5
9
|
# This file was generated by Bundler.
|
|
6
10
|
#
|
|
@@ -25,9 +25,7 @@ module Mutils
|
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def attribute(method_name, options = {}, &proc)
|
|
28
|
-
if options[:if] && !options[:if].instance_of?(Proc)
|
|
29
|
-
raise "if: should be a Proc object for attribute #{method_name}"
|
|
30
|
-
end
|
|
28
|
+
raise "if: should be a Proc object for attribute #{method_name}" if options[:if] && !options[:if].instance_of?(Proc)
|
|
31
29
|
|
|
32
30
|
if proc.instance_of? Proc
|
|
33
31
|
self.attributes_to_serialize_blocks = {} if attributes_to_serialize_blocks.nil?
|
|
@@ -9,9 +9,7 @@ module Mutils
|
|
|
9
9
|
# Module Relations
|
|
10
10
|
module Relations
|
|
11
11
|
def relationship(relationship_name, options = {})
|
|
12
|
-
if options[:if] && !options[:if].instance_of?(Proc)
|
|
13
|
-
raise "if: should be a Proc object for attribute #{relationship_name}"
|
|
14
|
-
end
|
|
12
|
+
raise "if: should be a Proc object for relationship #{relationship_name}" if options[:if] && !options[:if].instance_of?(Proc)
|
|
15
13
|
|
|
16
14
|
options = prepare_options(relationship_name, options, __callee__)
|
|
17
15
|
self.relationships = {} if relationships.nil?
|
|
@@ -23,18 +21,35 @@ module Mutils
|
|
|
23
21
|
alias has_one relationship
|
|
24
22
|
|
|
25
23
|
def prepare_options(relationship_name, options, option_name)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
serializer, always_include, label = options.values_at(:serializer, :always_include, :label)
|
|
25
|
+
serializer = fetch_serializer!(relationship_name, serializer, option_name)
|
|
26
|
+
|
|
27
|
+
options.merge(
|
|
28
|
+
serializer: serializer.to_s,
|
|
29
|
+
always_include: default_always_include(always_include),
|
|
30
|
+
label: relation_label(label, relationship_name)
|
|
31
|
+
)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
private
|
|
35
|
+
|
|
36
|
+
def fetch_serializer!(relationship_name, serializer, option_name)
|
|
37
|
+
if serializer.nil?
|
|
38
|
+
raise "Serializer is Required for #{option_name} :#{relationship_name}." \
|
|
29
39
|
"\nDefine it like:\n#{option_name} :#{relationship_name}, " \
|
|
30
40
|
'serializer: SERIALIZER_CLASS'
|
|
31
41
|
end
|
|
32
|
-
raise "Serializer class not defined for relationship: #{relationship_name}" unless class_exists?
|
|
42
|
+
raise "Serializer class not defined for relationship: #{relationship_name}" unless class_exists? serializer
|
|
43
|
+
|
|
44
|
+
serializer
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def default_always_include(always_include)
|
|
48
|
+
always_include.nil? ? false : always_include
|
|
49
|
+
end
|
|
33
50
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
options[:label] = Lib::Helper.instance.underscore options[:label] || relationship_name
|
|
37
|
-
options
|
|
51
|
+
def relation_label(label, relationship_name)
|
|
52
|
+
Lib::Helper.instance.underscore(label || relationship_name)
|
|
38
53
|
end
|
|
39
54
|
end
|
|
40
55
|
end
|
data/lib/mutils/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mutils
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nitesh Purohit
|
|
8
|
-
|
|
8
|
+
- Codevedas Inc.
|
|
9
|
+
bindir: bin
|
|
9
10
|
cert_chain: []
|
|
10
11
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
@@ -13,54 +14,31 @@ dependencies:
|
|
|
13
14
|
name: dry-inflector
|
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
|
15
16
|
requirements:
|
|
16
|
-
- - "
|
|
17
|
+
- - "~>"
|
|
17
18
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: '
|
|
19
|
+
version: '1.3'
|
|
19
20
|
type: :runtime
|
|
20
21
|
prerelease: false
|
|
21
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
23
|
requirements:
|
|
23
|
-
- - "
|
|
24
|
+
- - "~>"
|
|
24
25
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: '
|
|
26
|
-
description:
|
|
26
|
+
version: '1.3'
|
|
27
|
+
description: |
|
|
28
|
+
Mutils is a general-purpose Ruby helper gem for application development.
|
|
29
|
+
It currently includes a lightweight serialization toolkit and is designed to grow with additional reusable helpers over time.
|
|
27
30
|
email:
|
|
28
31
|
- nitesh.purohit.it@gmail.com
|
|
32
|
+
- team@codevedas.com
|
|
29
33
|
executables: []
|
|
30
34
|
extensions: []
|
|
31
35
|
extra_rdoc_files: []
|
|
32
36
|
files:
|
|
33
|
-
-
|
|
34
|
-
- ".github/FUNDING.yml"
|
|
35
|
-
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
|
36
|
-
- ".github/ISSUE_TEMPLATE/documentation_issue.md"
|
|
37
|
-
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
|
38
|
-
- ".github/ISSUE_TEMPLATE/question_or_help.md"
|
|
39
|
-
- ".github/ISSUE_TEMPLATE/report_a_security_vulnerability.md"
|
|
40
|
-
- ".github/ISSUE_TEMPLATE/translations.md"
|
|
41
|
-
- ".github/PULL_REQUEST_TEMPLATE.md"
|
|
42
|
-
- ".github/dependabot.yml"
|
|
43
|
-
- ".github/release-drafter.yml"
|
|
44
|
-
- ".github/workflows/ci.yml"
|
|
45
|
-
- ".github/workflows/codeql.yml"
|
|
46
|
-
- ".github/workflows/release-drafter.yml"
|
|
47
|
-
- ".github/workflows/release.yml"
|
|
48
|
-
- ".gitignore"
|
|
49
|
-
- ".jrubyrc"
|
|
50
|
-
- ".releaserc"
|
|
51
|
-
- ".rspec"
|
|
52
|
-
- ".rubocop.yml"
|
|
53
|
-
- ".ruby-version"
|
|
54
|
-
- CHANGELOG.md
|
|
55
|
-
- CODE_OF_CONDUCT.md
|
|
56
|
-
- Gemfile
|
|
57
|
-
- Gemfile.lock
|
|
58
|
-
- LICENSE.txt
|
|
37
|
+
- LICENSE
|
|
59
38
|
- README.md
|
|
60
39
|
- Rakefile
|
|
61
|
-
- SECURITY.md
|
|
62
|
-
- Version
|
|
63
40
|
- bin/console
|
|
41
|
+
- bin/reek
|
|
64
42
|
- bin/rspec
|
|
65
43
|
- bin/rubocop
|
|
66
44
|
- bin/setup
|
|
@@ -81,14 +59,18 @@ files:
|
|
|
81
59
|
- lib/mutils/serialization/serialization_methods.rb
|
|
82
60
|
- lib/mutils/serialization/serialization_results.rb
|
|
83
61
|
- lib/mutils/version.rb
|
|
84
|
-
-
|
|
85
|
-
homepage: https://github.com/code-vedas/mutils
|
|
62
|
+
homepage: https://github.com/Code-Vedas/mutils
|
|
86
63
|
licenses:
|
|
87
64
|
- MIT
|
|
88
65
|
metadata:
|
|
89
|
-
bug_tracker_uri: https://github.com/
|
|
66
|
+
bug_tracker_uri: https://github.com/Code-Vedas/mutils/issues
|
|
67
|
+
changelog_uri: https://github.com/Code-Vedas/mutils/blob/main/CHANGELOG.md
|
|
68
|
+
documentation_uri: https://mutils.codevedas.com
|
|
69
|
+
homepage_uri: https://github.com/Code-Vedas/mutils
|
|
90
70
|
source_code_uri: https://github.com/Code-Vedas/mutils.git
|
|
91
|
-
|
|
71
|
+
funding_uri: https://github.com/sponsors/Code-Vedas
|
|
72
|
+
support_uri: https://mutils.codevedas.com
|
|
73
|
+
rubygems_uri: https://rubygems.org/gems/mutils
|
|
92
74
|
rubygems_mfa_required: 'true'
|
|
93
75
|
rdoc_options: []
|
|
94
76
|
require_paths:
|
|
@@ -104,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
104
86
|
- !ruby/object:Gem::Version
|
|
105
87
|
version: '0'
|
|
106
88
|
requirements: []
|
|
107
|
-
rubygems_version:
|
|
89
|
+
rubygems_version: 3.6.9
|
|
108
90
|
specification_version: 4
|
|
109
|
-
summary:
|
|
91
|
+
summary: General-purpose Ruby helpers for application development
|
|
110
92
|
test_files: []
|
data/.codeclimate.yml
DELETED
data/.github/FUNDING.yml
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
github: [Code-Vedas]
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Bug Report
|
|
3
|
-
about: Create a report to help us improve
|
|
4
|
-
title: "[BUG] Briefly describe the issue"
|
|
5
|
-
labels: bug
|
|
6
|
-
assignees: ""
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Bug Report
|
|
10
|
-
|
|
11
|
-
### Description:
|
|
12
|
-
|
|
13
|
-
[Provide a clear and concise description of the bug.]
|
|
14
|
-
|
|
15
|
-
### Steps to Reproduce:
|
|
16
|
-
|
|
17
|
-
1. [First step]
|
|
18
|
-
2. [Second step]
|
|
19
|
-
3. [Third step]
|
|
20
|
-
- [If applicable]
|
|
21
|
-
|
|
22
|
-
### Expected Behavior:
|
|
23
|
-
|
|
24
|
-
[Describe what you expected to happen.]
|
|
25
|
-
|
|
26
|
-
### Actual Behavior:
|
|
27
|
-
|
|
28
|
-
[Describe what actually happened.]
|
|
29
|
-
|
|
30
|
-
### Screenshots or Additional Information:
|
|
31
|
-
|
|
32
|
-
[If applicable, add screenshots or other information to help illustrate the issue.]
|
|
33
|
-
|
|
34
|
-
### Environment:
|
|
35
|
-
|
|
36
|
-
- Operating System: [e.g., Windows, macOS, Linux]
|
|
37
|
-
- Browser (if applicable): [e.g., Chrome, Firefox, Safari]
|
|
38
|
-
- Version: [e.g., 1.0.0]
|
|
39
|
-
|
|
40
|
-
### Checklist:
|
|
41
|
-
|
|
42
|
-
- [ ] I have searched for a similar issue and didn't find any duplicates.
|
|
43
|
-
- [ ] I have included all the required information.
|
|
44
|
-
- [ ] I have tagged the issue with the label "bug."
|
|
45
|
-
|
|
46
|
-
<!-- Feel free to add any additional details or context that might be helpful in resolving the issue. -->
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Documentation Issue
|
|
3
|
-
about: Report an issue with project documentation
|
|
4
|
-
title: "[DOCS] Briefly describe the documentation issue"
|
|
5
|
-
labels: documentation
|
|
6
|
-
assignees: ""
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Documentation Issue
|
|
10
|
-
|
|
11
|
-
### Description:
|
|
12
|
-
|
|
13
|
-
[Provide a clear and concise description of the documentation issue.]
|
|
14
|
-
|
|
15
|
-
### Affected Documentation:
|
|
16
|
-
|
|
17
|
-
[Specify the affected section(s) or page(s) of the documentation.]
|
|
18
|
-
|
|
19
|
-
### Suggested Improvement:
|
|
20
|
-
|
|
21
|
-
[If you have a suggestion for improving the documentation, please describe it here.]
|
|
22
|
-
|
|
23
|
-
### Checklist:
|
|
24
|
-
|
|
25
|
-
- [ ] I have searched for similar documentation issues and found none.
|
|
26
|
-
- [ ] I have included all the required information.
|
|
27
|
-
- [ ] I have tagged the issue with the label "documentation."
|
|
28
|
-
|
|
29
|
-
<!-- Feel free to add any additional details that might help in understanding or resolving the documentation issue. -->
|