mutils 0.2.36 → 0.2.37

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: 1331c714748c7ecdc92258a4b37ad2ebddb23bff4a5a9858eab6bcc9a08fee0f
4
- data.tar.gz: 6a9850b4e1602f656c90ce2b3fa65bd1dc15639f4aad115e8295668a5ea0f305
3
+ metadata.gz: 926c4b4de85c53430599d8d3f0bedc06992bba7475f5bfb63c17c0149b9f5e7c
4
+ data.tar.gz: 510912f1df040bb65dc4b13d92c7e1e9c3cd976bd29a089dd87449bae7a58813
5
5
  SHA512:
6
- metadata.gz: 2af97f7e2f52f822568edf377dfa135347bd506374c27ece2c86c3b82c96780e6111e6723532192175e979cfcb8885219018d7851acb12f35744a35777513b65
7
- data.tar.gz: ffd8ded7613308b8a736ed8fe6eee83de98c183c34854d22fc30b03f438dc6e1cc71cc42df9f1a3de66d3a2e1d57dde75a01678e0214df9467a3077ca09fd522
6
+ metadata.gz: 93232e13da63e6c1dd76a44e0bbce37a0fd0ef030bca6b099c47e8529e4ea4522edcf0b5aaca07c19e9aaba9cf0c9febbfceef651544aadbf5170395c444dd64
7
+ data.tar.gz: d9fdd7f409e3c7d9dde57ed7a59504aca0145c2dc93f054cd9a6e75b390940f111fb827e352c7510b46864f37175abd266b0f40407b9c4414e6207cdd1baca75
@@ -3,11 +3,11 @@
3
3
  We love pull requests from everyone. By participating in this project, you
4
4
  agree to abide by the [code of conduct].
5
5
 
6
- [code of conduct]: https://github.com/niteshpurohit/mutils/blob/master/CODE_OF_CONDUCT.md
6
+ [code of conduct]: https://github.com/code-vedas/mutils/blob/master/CODE_OF_CONDUCT.md
7
7
 
8
8
  Fork, then clone the repo:
9
9
 
10
- git clone git@github.com:niteshpurohit/mutils.git
10
+ git clone git@github.com:code-vedas/mutils.git
11
11
 
12
12
  Set up your machine:
13
13
 
@@ -23,7 +23,7 @@ Make your change. Add tests for your change. Make the tests pass:
23
23
 
24
24
  Push to your fork and [submit a pull request][pr].
25
25
 
26
- [pr]: https://github.com/niteshpurohit/mutils/compare/
26
+ [pr]: https://github.com/code-vedas/mutils/compare/
27
27
 
28
28
  At this point you're waiting on us. We like to at least comment on pull requests
29
29
  within three business days (and, typically, one business day). We may suggest
@@ -1,20 +1,18 @@
1
- os:
2
- - linux
3
- - osx
4
1
  rvm:
5
2
  - 2.5
6
3
  - 2.6.3
7
4
  - 2.6.5
8
5
  - 2.7.0
9
6
  - 2.7.1
10
- - jruby-9.2
7
+ - jruby-9.2.5.0
8
+ - jruby-9.2.10.0
11
9
  sudo: false
12
10
  language: ruby
13
11
  cache: bundler
14
- before_install: gem install bundler -v 2.0.1
12
+ before_install:
13
+ - gem install bundler -v 2.0.1
14
+ - gem install rspec
15
+ script: bundle exec rspec
15
16
  branches:
16
17
  only: master
17
- matrix:
18
- allow_failures:
19
- - rvm: jruby-9.2
20
- fast_finish: true
18
+ bundler_args: --with=development,test --jobs=3 --retry=3
@@ -1,95 +1,114 @@
1
1
  # Changelog
2
2
 
3
- ## [v0.2.34](https://github.com/niteshpurohit/mutils/tree/v0.2.34) (2020-03-29)
3
+ ## [v0.2.36](https://github.com/code-vedas/mutils/tree/v0.2.36) (2020-04-14)
4
4
 
5
- [Full Changelog](https://github.com/niteshpurohit/mutils/compare/v0.2.33...v0.2.34)
5
+ [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.35...v0.2.36)
6
6
 
7
7
  **Merged pull requests:**
8
8
 
9
- - Feature/attribute can be optional [\#27](https://github.com/niteshpurohit/mutils/pull/27) ([niteshpurohit](https://github.com/niteshpurohit))
9
+ - Remove active support dep [\#34](https://github.com/code-vedas/mutils/pull/34) ([niteshpurohit](https://github.com/niteshpurohit))
10
+ - Conditional attributes and relations [\#32](https://github.com/code-vedas/mutils/pull/32) ([niteshpurohit](https://github.com/niteshpurohit))
11
+ - chore: add more ruby version and os to test [\#31](https://github.com/code-vedas/mutils/pull/31) ([niteshpurohit](https://github.com/niteshpurohit))
10
12
 
11
- ## [v0.2.33](https://github.com/niteshpurohit/mutils/tree/v0.2.33) (2020-03-29)
13
+ ## [v0.2.35](https://github.com/code-vedas/mutils/tree/v0.2.35) (2020-03-30)
12
14
 
13
- [Full Changelog](https://github.com/niteshpurohit/mutils/compare/v0.2.32...v0.2.33)
15
+ [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.34...v0.2.35)
14
16
 
15
17
  **Merged pull requests:**
16
18
 
17
- - Added new custom\_method in serializer to control if include method [\#26](https://github.com/niteshpurohit/mutils/pull/26) ([niteshpurohit](https://github.com/niteshpurohit))
18
- - Update CHANGELOG.md [\#25](https://github.com/niteshpurohit/mutils/pull/25) ([niteshpurohit](https://github.com/niteshpurohit))
19
- - Create .codeclimate.yml [\#24](https://github.com/niteshpurohit/mutils/pull/24) ([niteshpurohit](https://github.com/niteshpurohit))
20
- - changelog: v0.2.32 [\#22](https://github.com/niteshpurohit/mutils/pull/22) ([niteshpurohit](https://github.com/niteshpurohit))
19
+ - new option 'label' for relations [\#30](https://github.com/code-vedas/mutils/pull/30) ([niteshpurohit](https://github.com/niteshpurohit))
20
+ - added custom\_method and attribute example [\#29](https://github.com/code-vedas/mutils/pull/29) ([niteshpurohit](https://github.com/niteshpurohit))
21
+ - chore: update changelog [\#28](https://github.com/code-vedas/mutils/pull/28) ([niteshpurohit](https://github.com/niteshpurohit))
21
22
 
22
- ## [v0.2.32](https://github.com/niteshpurohit/mutils/tree/v0.2.32) (2020-03-18)
23
+ ## [v0.2.34](https://github.com/code-vedas/mutils/tree/v0.2.34) (2020-03-29)
23
24
 
24
- [Full Changelog](https://github.com/niteshpurohit/mutils/compare/v0.2.31...v0.2.32)
25
+ [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.33...v0.2.34)
25
26
 
26
27
  **Merged pull requests:**
27
28
 
28
- - Feature/improve performance [\#21](https://github.com/niteshpurohit/mutils/pull/21) ([niteshpurohit](https://github.com/niteshpurohit))
29
+ - Feature/attribute can be optional [\#27](https://github.com/code-vedas/mutils/pull/27) ([niteshpurohit](https://github.com/niteshpurohit))
29
30
 
30
- ## [v0.2.31](https://github.com/niteshpurohit/mutils/tree/v0.2.31) (2020-03-18)
31
+ ## [v0.2.33](https://github.com/code-vedas/mutils/tree/v0.2.33) (2020-03-29)
31
32
 
32
- [Full Changelog](https://github.com/niteshpurohit/mutils/compare/v0.2.30...v0.2.31)
33
+ [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.32...v0.2.33)
33
34
 
34
35
  **Merged pull requests:**
35
36
 
36
- - Update version.rb [\#20](https://github.com/niteshpurohit/mutils/pull/20) ([niteshpurohit](https://github.com/niteshpurohit))
37
- - Rake 13.0 [\#19](https://github.com/niteshpurohit/mutils/pull/19) ([niteshpurohit](https://github.com/niteshpurohit))
37
+ - Added new custom\_method in serializer to control if include method [\#26](https://github.com/code-vedas/mutils/pull/26) ([niteshpurohit](https://github.com/niteshpurohit))
38
+ - Update CHANGELOG.md [\#25](https://github.com/code-vedas/mutils/pull/25) ([niteshpurohit](https://github.com/niteshpurohit))
39
+ - Create .codeclimate.yml [\#24](https://github.com/code-vedas/mutils/pull/24) ([niteshpurohit](https://github.com/niteshpurohit))
40
+ - changelog: v0.2.32 [\#22](https://github.com/code-vedas/mutils/pull/22) ([niteshpurohit](https://github.com/niteshpurohit))
38
41
 
39
- ## [v0.2.30](https://github.com/niteshpurohit/mutils/tree/v0.2.30) (2020-03-17)
42
+ ## [v0.2.32](https://github.com/code-vedas/mutils/tree/v0.2.32) (2020-03-18)
40
43
 
41
- [Full Changelog](https://github.com/niteshpurohit/mutils/compare/v0.2.29...v0.2.30)
44
+ [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.31...v0.2.32)
42
45
 
43
46
  **Merged pull requests:**
44
47
 
45
- - Deps [\#18](https://github.com/niteshpurohit/mutils/pull/18) ([niteshpurohit](https://github.com/niteshpurohit))
48
+ - Feature/improve performance [\#21](https://github.com/code-vedas/mutils/pull/21) ([niteshpurohit](https://github.com/niteshpurohit))
46
49
 
47
- ## [v0.2.29](https://github.com/niteshpurohit/mutils/tree/v0.2.29) (2019-12-07)
50
+ ## [v0.2.31](https://github.com/code-vedas/mutils/tree/v0.2.31) (2020-03-18)
48
51
 
49
- [Full Changelog](https://github.com/niteshpurohit/mutils/compare/v0.2.28...v0.2.29)
52
+ [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.30...v0.2.31)
50
53
 
51
54
  **Merged pull requests:**
52
55
 
53
- - Scope Variable bug [\#14](https://github.com/niteshpurohit/mutils/pull/14) ([niteshpurohit](https://github.com/niteshpurohit))
56
+ - Update version.rb [\#20](https://github.com/code-vedas/mutils/pull/20) ([niteshpurohit](https://github.com/niteshpurohit))
57
+ - Rake 13.0 [\#19](https://github.com/code-vedas/mutils/pull/19) ([niteshpurohit](https://github.com/niteshpurohit))
54
58
 
55
- ## [v0.2.28](https://github.com/niteshpurohit/mutils/tree/v0.2.28) (2019-11-26)
59
+ ## [v0.2.30](https://github.com/code-vedas/mutils/tree/v0.2.30) (2020-03-17)
56
60
 
57
- [Full Changelog](https://github.com/niteshpurohit/mutils/compare/v0.2.27...v0.2.28)
61
+ [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.29...v0.2.30)
62
+
63
+ **Merged pull requests:**
64
+
65
+ - Deps [\#18](https://github.com/code-vedas/mutils/pull/18) ([niteshpurohit](https://github.com/niteshpurohit))
66
+
67
+ ## [v0.2.29](https://github.com/code-vedas/mutils/tree/v0.2.29) (2019-12-07)
68
+
69
+ [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.28...v0.2.29)
70
+
71
+ **Merged pull requests:**
72
+
73
+ - Scope Variable bug [\#14](https://github.com/code-vedas/mutils/pull/14) ([niteshpurohit](https://github.com/niteshpurohit))
74
+
75
+ ## [v0.2.28](https://github.com/code-vedas/mutils/tree/v0.2.28) (2019-11-26)
76
+
77
+ [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.27...v0.2.28)
58
78
 
59
79
  **Implemented enhancements:**
60
80
 
61
- - Feature/scoped generator [\#13](https://github.com/niteshpurohit/mutils/pull/13) ([niteshpurohit](https://github.com/niteshpurohit))
81
+ - Feature/scoped generator [\#13](https://github.com/code-vedas/mutils/pull/13) ([niteshpurohit](https://github.com/niteshpurohit))
62
82
 
63
- ## [v0.2.27](https://github.com/niteshpurohit/mutils/tree/v0.2.27) (2019-11-25)
83
+ ## [v0.2.27](https://github.com/code-vedas/mutils/tree/v0.2.27) (2019-11-25)
64
84
 
65
- [Full Changelog](https://github.com/niteshpurohit/mutils/compare/v0.2.26...v0.2.27)
85
+ [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.26...v0.2.27)
66
86
 
67
87
  **Implemented enhancements:**
68
88
 
69
- - feat: coveralls added [\#5](https://github.com/niteshpurohit/mutils/pull/5) ([niteshpurohit](https://github.com/niteshpurohit))
89
+ - feat: coveralls added [\#5](https://github.com/code-vedas/mutils/pull/5) ([niteshpurohit](https://github.com/niteshpurohit))
70
90
 
71
91
  **Merged pull requests:**
72
92
 
73
- - Update CHANGELOG.md [\#12](https://github.com/niteshpurohit/mutils/pull/12) ([niteshpurohit](https://github.com/niteshpurohit))
74
- - Update version.rb [\#11](https://github.com/niteshpurohit/mutils/pull/11) ([niteshpurohit](https://github.com/niteshpurohit))
75
- - Removing code smells [\#9](https://github.com/niteshpurohit/mutils/pull/9) ([niteshpurohit](https://github.com/niteshpurohit))
76
- - Update README.md [\#8](https://github.com/niteshpurohit/mutils/pull/8) ([niteshpurohit](https://github.com/niteshpurohit))
77
- - Update README.md [\#7](https://github.com/niteshpurohit/mutils/pull/7) ([niteshpurohit](https://github.com/niteshpurohit))
78
- - Update README.md [\#6](https://github.com/niteshpurohit/mutils/pull/6) ([niteshpurohit](https://github.com/niteshpurohit))
93
+ - Update CHANGELOG.md [\#12](https://github.com/code-vedas/mutils/pull/12) ([niteshpurohit](https://github.com/niteshpurohit))
94
+ - Update version.rb [\#11](https://github.com/code-vedas/mutils/pull/11) ([niteshpurohit](https://github.com/niteshpurohit))
95
+ - Removing code smells [\#9](https://github.com/code-vedas/mutils/pull/9) ([niteshpurohit](https://github.com/niteshpurohit))
96
+ - Update README.md [\#8](https://github.com/code-vedas/mutils/pull/8) ([niteshpurohit](https://github.com/niteshpurohit))
97
+ - Update README.md [\#7](https://github.com/code-vedas/mutils/pull/7) ([niteshpurohit](https://github.com/niteshpurohit))
98
+ - Update README.md [\#6](https://github.com/code-vedas/mutils/pull/6) ([niteshpurohit](https://github.com/niteshpurohit))
79
99
 
80
- ## [v0.2.26](https://github.com/niteshpurohit/mutils/tree/v0.2.26) (2019-11-24)
100
+ ## [v0.2.26](https://github.com/code-vedas/mutils/tree/v0.2.26) (2019-11-24)
81
101
 
82
- [Full Changelog](https://github.com/niteshpurohit/mutils/compare/v0.2.25...v0.2.26)
102
+ [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.25...v0.2.26)
83
103
 
84
- ## [v0.2.25](https://github.com/niteshpurohit/mutils/tree/v0.2.25) (2019-11-24)
104
+ ## [v0.2.25](https://github.com/code-vedas/mutils/tree/v0.2.25) (2019-11-24)
85
105
 
86
- [Full Changelog](https://github.com/niteshpurohit/mutils/compare/885f96959dd3701ac20ed0981b920be753c00db0...v0.2.25)
106
+ [Full Changelog](https://github.com/code-vedas/mutils/compare/885f96959dd3701ac20ed0981b920be753c00db0...v0.2.25)
87
107
 
88
108
  **Merged pull requests:**
89
109
 
90
- - Feature/improve concurrency [\#4](https://github.com/niteshpurohit/mutils/pull/4) ([niteshpurohit](https://github.com/niteshpurohit))
91
- - Testing Deploy [\#3](https://github.com/niteshpurohit/mutils/pull/3) ([niteshpurohit](https://github.com/niteshpurohit))
92
-
110
+ - Feature/improve concurrency [\#4](https://github.com/code-vedas/mutils/pull/4) ([niteshpurohit](https://github.com/niteshpurohit))
111
+ - Testing Deploy [\#3](https://github.com/code-vedas/mutils/pull/3) ([niteshpurohit](https://github.com/niteshpurohit))
93
112
 
94
113
 
95
114
  \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
@@ -17,6 +17,7 @@ GEM
17
17
  docile (1.3.2)
18
18
  dry-inflector (0.2.0)
19
19
  json (2.3.0)
20
+ json (2.3.0-java)
20
21
  rake (13.0.1)
21
22
  rspec (3.9.0)
22
23
  rspec-core (~> 3.9.0)
@@ -45,6 +46,7 @@ GEM
45
46
  sync
46
47
 
47
48
  PLATFORMS
49
+ java
48
50
  ruby
49
51
 
50
52
  DEPENDENCIES
data/README.md CHANGED
@@ -1,13 +1,34 @@
1
- [![Maintainability](https://api.codeclimate.com/v1/badges/2c937dd6d25937ec41bd/maintainability)](https://codeclimate.com/github/niteshpurohit/mutils/maintainability)
1
+ [![Maintainability](https://api.codeclimate.com/v1/badges/42e8a34f839ca0c5ec45/maintainability)](https://codeclimate.com/github/code-vedas/mutils/maintainability)
2
2
  ![](https://ruby-gem-downloads-badge.herokuapp.com/mutils?type=total&color=brightgreen)
3
3
  [![Gem Version](https://badge.fury.io/rb/mutils.svg)](https://badge.fury.io/rb/mutils)
4
- [![Coverage Status](https://coveralls.io/repos/github/niteshpurohit/mutils/badge.svg?branch=feature/coverall)](https://coveralls.io/github/niteshpurohit/mutils?branch=feature/coverall)
5
- [![Build Status](https://travis-ci.com/niteshpurohit/mutils.svg?branch=master)](https://travis-ci.com/niteshpurohit/mutils)
4
+ [![Coverage Status](https://coveralls.io/repos/github/Code-Vedas/mutils/badge.svg?branch=master)](https://coveralls.io/github/Code-Vedas/mutils?branch=master)
5
+ [![Build Status](https://travis-ci.com/code-vedas/mutils.svg?branch=master)](https://travis-ci.com/code-vedas/mutils)
6
6
  # Mutils
7
7
  ## Introduction
8
8
  `mutils` is collection of useful modules for `ruby on rails` which is tested and benchmarked against high load.
9
9
 
10
10
  These collection of modules are built by developer for developers :-)
11
+ # Table of Contents
12
+
13
+ * [Features](#features)
14
+ * [Installation](#installation)
15
+ * [Usage](#usage)
16
+ * [Rails Generator](#rails-generator)
17
+ * [Attributes](#attributes)
18
+ * [Relations](#relations)
19
+ * [Conditional Attributes](#conditional-attributes)
20
+ * [Conditional Relations](#conditional-relations)
21
+ * [Attributes Block](#attributes-blocks)
22
+ * [Attributes Block with Params](#attributes-blocks-with-params)
23
+ * [Custom Methods](#custom-methods)
24
+ * [Name Tag](#name-tag)
25
+ * [Sample Usage](#sample-usage)
26
+
27
+ ## Features
28
+ * Simple declaration syntax similar to Active Model Serializer
29
+ * Realtionships support `belongs_to', `has_many`, `has_one`
30
+ * Block style attributes with params
31
+
11
32
  ## Installation
12
33
 
13
34
  Add this line to your application's Gemfile:
@@ -22,16 +43,9 @@ Or install it yourself as:
22
43
 
23
44
  $ gem install mutils
24
45
 
25
- ## Modules
26
- | Sno | Name | Status |
27
- |:---: |:-----------------: |:------: |
28
- | 1 | Serializer - JSON | Done |
29
-
30
- ## Usage
31
- ### Serializer - JSON
32
- JSON Serializer for Active Models
46
+ ## Usage
33
47
 
34
- #### Generate Serializer by command
48
+ ### Rails Generator
35
49
  ```shell script
36
50
  rails g mutils:serializer User id first_name last_name email
37
51
 
@@ -49,15 +63,7 @@ class UserSerializer < Mutils::Serialization::BaseSerializer
49
63
  end
50
64
  ```
51
65
 
52
- #### Decorations Available
53
- 1. Attributes
54
- 2. Relations
55
- 3. Conditional Attributes
56
- 4. Conditional Relations
57
- 5. Custom Methods
58
- 6. name_tag
59
-
60
- ##### Attributes
66
+ ### Attributes
61
67
  Attributes are fields in the model itself. You can reference them by below example
62
68
  ```ruby
63
69
  # frozen_string_literal: true
@@ -69,7 +75,7 @@ class UserSerializer < Mutils::Serialization::BaseSerializer
69
75
  attribute :email, {always_include: true} ## this will allow to selectively include email
70
76
  end
71
77
  ```
72
- ##### Relations
78
+ ### Relations
73
79
  Relations such as `has_many`, `belongs_to`, `has_one` can be used as follows
74
80
  1. Every relation must be provided with their own serializer
75
81
  2. `always_include` option can be used to instruct `Serializer` to always include this relation
@@ -94,7 +100,7 @@ class UserSerializer < Mutils::Serialization::BaseSerializer
94
100
  end
95
101
  end
96
102
  ```
97
- ##### Conditional Attributes
103
+ ### Conditional Attributes
98
104
  Attributes are fields in the model itself. You can reference them by below example
99
105
  ```ruby
100
106
  # frozen_string_literal: true
@@ -106,7 +112,7 @@ class UserSerializer < Mutils::Serialization::BaseSerializer
106
112
  end
107
113
  ```
108
114
  in proc {|scope|}, scope is object which is being serialized
109
- ##### Conditional Relations
115
+ ### Conditional Relations
110
116
  Attributes are fields in the model itself. You can reference them by below example
111
117
  ```ruby
112
118
  # frozen_string_literal: true
@@ -119,7 +125,40 @@ class UserSerializer < Mutils::Serialization::BaseSerializer
119
125
  end
120
126
  ```
121
127
  in proc {|scope|}, scope is object which is being serialized
122
- ##### Custom Methods
128
+ ### Attributes Blocks
129
+ While writting attribute a block can be provided for useful transformations like `full_name` as shown below
130
+ ```ruby
131
+ # frozen_string_literal: true
132
+
133
+ # User Serializer
134
+ class UserSerializer < Mutils::Serialization::BaseSerializer
135
+ attributes :id, :first_name, :last_name, :email
136
+ attribute :full_name do |object|
137
+ "#{object.first_name} #{object.last_name}"
138
+ end
139
+ end
140
+ ```
141
+ ### Attributes Blocks with Params
142
+ While writting attribute a block can be provided for useful transformations like `full_name` as shown below
143
+ ```ruby
144
+ # frozen_string_literal: true
145
+
146
+ # User Serializer
147
+ class UserSerializer < Mutils::Serialization::BaseSerializer
148
+ attributes :id, :first_name, :last_name, :email
149
+ attribute :is_owner do |object,params|
150
+ params[:owner].id == object.id ? true:false
151
+ end
152
+ end
153
+ ```
154
+ ```ruby
155
+ # in controller
156
+
157
+ user = current_user
158
+ owner = owner_user
159
+ render json: UserSerializer.new(user,{params:{owner:owner}})
160
+ ```
161
+ ### Custom Methods
123
162
  Custom methods used in Serializer can be useful for cases as below.
124
163
  `scope` will be available to reference object in Serializer in below case its `user`
125
164
 
@@ -140,7 +179,7 @@ class UserSerializer < Mutils::Serialization::BaseSerializer
140
179
  end
141
180
  end
142
181
  ```
143
- ##### name_tag
182
+ ### Name Tag
144
183
  name_tag is used to provide custom name to serializer output keys for json
145
184
 
146
185
  **Options**
@@ -163,7 +202,7 @@ class UserSerializer < Mutils::Serialization::BaseSerializer
163
202
  end
164
203
  ```
165
204
 
166
- ## Usage: Use anywhere by
205
+ ### Sample Usage
167
206
 
168
207
  ```ruby
169
208
  user = User.first
@@ -194,4 +233,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
194
233
 
195
234
  ## Code of Conduct
196
235
 
197
- 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/niteshpurohit/mutils/blob/master/CODE_OF_CONDUCT.md).
236
+ 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).
@@ -11,7 +11,8 @@ module Mutils
11
11
  attr_accessor :serializer_name,
12
12
  :include_root,
13
13
  :relationships,
14
- :attributes_to_serialize
14
+ :attributes_to_serialize,
15
+ :attributes_to_serialize_blocks
15
16
  end
16
17
  end
17
18
  end
@@ -8,6 +8,7 @@ module Mutils
8
8
  def self.included(base)
9
9
  base.extend ClassMethods
10
10
  end
11
+
11
12
  # Module ClassMethods
12
13
  module ClassMethods
13
14
  def name_tag(name_tag, root = nil)
@@ -31,10 +32,16 @@ module Mutils
31
32
  end
32
33
  end
33
34
 
34
- def attribute(method_name, options = {})
35
+ def attribute(method_name, options = {}, &proc)
35
36
  raise "if: should be a Proc object for attribute #{method_name}" if options[:if] && (options[:if].class.to_s != 'Proc')
36
37
 
37
- add_single_attribute(method_name, options, 'attribute')
38
+ if proc.class.to_s == 'Proc'
39
+ self.attributes_to_serialize_blocks = {} if attributes_to_serialize_blocks.nil?
40
+ options[:block] = proc
41
+ attributes_to_serialize_blocks[method_name] = options
42
+ else
43
+ add_single_attribute(method_name, options, 'attribute')
44
+ end
38
45
  end
39
46
 
40
47
  def custom_method(method_name, options = {})
@@ -19,10 +19,19 @@ module Mutils
19
19
  end
20
20
 
21
21
  def hashed_result
22
- [fetch_attributes(self.class.attributes_to_serialize),
22
+ [fetch_block_attributes(self.class.attributes_to_serialize_blocks),
23
+ fetch_attributes(self.class.attributes_to_serialize),
23
24
  hash_relationships(self.class.relationships)].reduce(&:merge)
24
25
  end
25
26
 
27
+ def fetch_block_attributes(attributes)
28
+ hash = {}
29
+ attributes&.keys&.each do |key|
30
+ hash[key] = attributes[key][:block].call(scope, options[:params])
31
+ end
32
+ hash
33
+ end
34
+
26
35
  def fetch_attributes(attributes)
27
36
  hash = {}
28
37
  attributes&.keys&.each do |key|
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mutils
4
- VERSION = '0.2.36'
4
+ VERSION = '0.2.37'
5
5
  end
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
 
13
13
  spec.summary = 'mutils Utilities for rails app'
14
14
  spec.description = 'mutils Utilities for rails app'
15
- spec.homepage = 'https://github.com/niteshpurohit/mutils'
15
+ spec.homepage = 'https://github.com/code-vedas/mutils'
16
16
  spec.license = 'MIT'
17
17
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
18
18
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.require_paths = ['lib']
23
23
  spec.required_ruby_version = '>= 2.5.0'
24
24
  spec.required_rubygems_version = '>= 1.8.11'
25
- spec.add_runtime_dependency('dry-inflector')
25
+ spec.add_dependency('dry-inflector')
26
26
  spec.add_development_dependency 'bundler', '~> 2.0'
27
27
  spec.add_development_dependency 'coveralls'
28
28
  spec.add_development_dependency 'rake', '~> 13.0'
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency 'rspec-json_expectations'
31
31
 
32
32
  spec.metadata = {
33
- 'bug_tracker_uri' => 'https://github.com/niteshpurohit/mutils/issues',
34
- 'source_code_uri' => "https://github.com/niteshpurohit/mutils/tree/v#{Mutils::VERSION}"
33
+ 'bug_tracker_uri' => 'https://github.com/code-vedas/mutils/issues',
34
+ 'source_code_uri' => "https://github.com/code-vedas/mutils/tree/v#{Mutils::VERSION}"
35
35
  }
36
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mutils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.36
4
+ version: 0.2.37
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nitesh Purohit
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-14 00:00:00.000000000 Z
11
+ date: 2020-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-inflector
@@ -113,7 +113,6 @@ files:
113
113
  - ".rspec"
114
114
  - ".rubocop.yml"
115
115
  - ".rubocop_todo.yml"
116
- - ".ruby-version"
117
116
  - ".travis.yml"
118
117
  - CHANGELOG.md
119
118
  - CODE_OF_CONDUCT.md
@@ -136,12 +135,12 @@ files:
136
135
  - lib/mutils/serialization/serialization_results.rb
137
136
  - lib/mutils/version.rb
138
137
  - mutils.gemspec
139
- homepage: https://github.com/niteshpurohit/mutils
138
+ homepage: https://github.com/code-vedas/mutils
140
139
  licenses:
141
140
  - MIT
142
141
  metadata:
143
- bug_tracker_uri: https://github.com/niteshpurohit/mutils/issues
144
- source_code_uri: https://github.com/niteshpurohit/mutils/tree/v0.2.36
142
+ bug_tracker_uri: https://github.com/code-vedas/mutils/issues
143
+ source_code_uri: https://github.com/code-vedas/mutils/tree/v0.2.37
145
144
  post_install_message:
146
145
  rdoc_options: []
147
146
  require_paths:
@@ -1 +0,0 @@
1
- 2.7.0