mutils 0.2.37 → 1.0.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: 926c4b4de85c53430599d8d3f0bedc06992bba7475f5bfb63c17c0149b9f5e7c
4
- data.tar.gz: 510912f1df040bb65dc4b13d92c7e1e9c3cd976bd29a089dd87449bae7a58813
3
+ metadata.gz: e38e7ca1f83b872f6a72819355f44ef30a1de7b6c3756abd27e3ec66e256b90a
4
+ data.tar.gz: a3267a83c8a82770d84f7636f3f8b19aa5039eabcfc6b2953b605981d21e1d6b
5
5
  SHA512:
6
- metadata.gz: 93232e13da63e6c1dd76a44e0bbce37a0fd0ef030bca6b099c47e8529e4ea4522edcf0b5aaca07c19e9aaba9cf0c9febbfceef651544aadbf5170395c444dd64
7
- data.tar.gz: d9fdd7f409e3c7d9dde57ed7a59504aca0145c2dc93f054cd9a6e75b390940f111fb827e352c7510b46864f37175abd266b0f40407b9c4414e6207cdd1baca75
6
+ metadata.gz: 2a423ea8de2ccf77982fdfec8a9dd9b164a42b0da5b2aa4664889d1e13bae2eba384344bc25c7a24ec8267218a98170c0f7b92c7695926cb72a8b2d6ad695d9b
7
+ data.tar.gz: 3f1f7b51833b2cb57d8ad2da72aebbca7799ac9f86f61380ab2a9cce5af15bc642591fe5b483d78054a37b4e9ff8b5cbcfe4776537bd8c7da650b83a8ba59679
data/.rspec CHANGED
@@ -1,3 +1,2 @@
1
- --format documentation
2
1
  --color
3
2
  --require spec_helper
@@ -4,5 +4,4 @@ AllCops:
4
4
  TargetRubyVersion: "2.5.0"
5
5
  Exclude:
6
6
  - 'spec/**/*'
7
- - 'test/**/*'
8
- - 'benchmark/benchmark-serializer-json.rb'
7
+ - 'test/**/*'
@@ -37,6 +37,8 @@ Layout/LineLength:
37
37
  Max: 608
38
38
  Metrics/MethodLength:
39
39
  Max: 20
40
+ Metrics/PerceivedComplexity:
41
+ Max: 7
40
42
  Metrics/AbcSize:
41
43
  Max: 22
42
44
  Style/HashEachMethods:
@@ -1,4 +1,16 @@
1
1
  # Changelog
2
+ ## [v1.0.0](https://github.com/code-vedas/mutils/tree/v0.2.36) (2020-04-17)
3
+
4
+ [Full Changelog](https://github.com/code-vedas/mutils/compare/v0.2.36...v1.0.0)
5
+
6
+ **First Stable release: Features**
7
+ - Performance upto 35i/s under load
8
+ - Observed 35-40 MB of memory usage
9
+ - Fully featured JSON serializer similar to Active Serializer but with more power and speed.
10
+
11
+ **Changes:**
12
+ - Code refactored
13
+ - Using cache for expensive operations
2
14
 
3
15
  ## [v0.2.36](https://github.com/code-vedas/mutils/tree/v0.2.36) (2020-04-14)
4
16
 
@@ -108,7 +120,4 @@
108
120
  **Merged pull requests:**
109
121
 
110
122
  - 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))
112
-
113
-
114
- \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
123
+ - Testing Deploy [\#3](https://github.com/code-vedas/mutils/pull/3) ([niteshpurohit](https://github.com/niteshpurohit))
@@ -1,12 +1,15 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mutils (0.2.36)
4
+ mutils (1.0.0)
5
5
  dry-inflector
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
+ benchmark-malloc (0.2.0)
11
+ benchmark-perf (0.6.0)
12
+ benchmark-trend (0.4.0)
10
13
  coveralls (0.8.23)
11
14
  json (>= 1.8, < 3)
12
15
  simplecov (~> 0.16.1)
@@ -23,6 +26,11 @@ GEM
23
26
  rspec-core (~> 3.9.0)
24
27
  rspec-expectations (~> 3.9.0)
25
28
  rspec-mocks (~> 3.9.0)
29
+ rspec-benchmark (0.6.0)
30
+ benchmark-malloc (~> 0.2)
31
+ benchmark-perf (~> 0.6)
32
+ benchmark-trend (~> 0.4)
33
+ rspec (>= 3.0)
26
34
  rspec-core (3.9.1)
27
35
  rspec-support (~> 3.9.1)
28
36
  rspec-expectations (3.9.1)
@@ -55,6 +63,7 @@ DEPENDENCIES
55
63
  mutils!
56
64
  rake (~> 13.0)
57
65
  rspec
66
+ rspec-benchmark
58
67
  rspec-json_expectations
59
68
 
60
69
  BUNDLED WITH
@@ -3,6 +3,7 @@
3
3
  require 'dry/inflector'
4
4
  require_relative 'mutils/version'
5
5
  require_relative 'mutils/lib/helper'
6
+ require_relative 'mutils/lib/result_hash'
6
7
  require_relative 'mutils/serialization/serialization_results'
7
8
  require_relative 'mutils/serialization/serialization_includes'
8
9
  require_relative 'mutils/serialization/serialization_methods'
@@ -4,20 +4,30 @@ require 'singleton'
4
4
  # module Mutils
5
5
  module Mutils
6
6
  module Lib
7
- # BaseSerializer: inherit this class to get Serializer functionality
7
+ # Helper: caching expensive repetitive operations
8
8
  class Helper
9
9
  include Singleton
10
10
 
11
11
  def initialize
12
12
  self.inflector_object = Dry::Inflector.new
13
+ self.pluralize_cache = {}
14
+ self.underscore_cache = {}
15
+ self.constantize_cache = {}
13
16
  end
14
17
 
15
18
  def underscore(string)
16
- inflector_object.underscore string
19
+ underscore_cache[string] = inflector_object.underscore string unless underscore_cache[string]
20
+ underscore_cache[string]
17
21
  end
18
22
 
19
23
  def pluralize(string)
20
- inflector_object.pluralize string
24
+ pluralize_cache[string] = inflector_object.pluralize string unless pluralize_cache[string]
25
+ pluralize_cache[string]
26
+ end
27
+
28
+ def constantize(string)
29
+ constantize_cache[string] = Object.const_get string unless constantize_cache[string]
30
+ constantize_cache[string]
21
31
  end
22
32
 
23
33
  def collection?(object)
@@ -26,7 +36,7 @@ module Mutils
26
36
 
27
37
  private
28
38
 
29
- attr_accessor :inflector_object
39
+ attr_accessor :inflector_object, :pluralize_cache, :underscore_cache, :constantize_cache
30
40
  end
31
41
  end
32
42
  end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ # module Mutils
4
+ module Mutils
5
+ module Lib
6
+ # ResultHash: Store result using this class.
7
+ class ResultHash
8
+ def initialize
9
+ self._hash = {}
10
+ end
11
+
12
+ def []=(key, value)
13
+ _hash[key] = value
14
+ end
15
+
16
+ def hash
17
+ _hash
18
+ end
19
+
20
+ private
21
+
22
+ attr_accessor :_hash
23
+ end
24
+ end
25
+ end
@@ -33,14 +33,6 @@ module Mutils
33
33
  JSON.generate(as_json, options)
34
34
  end
35
35
 
36
- def to_xml(_options = {})
37
- to_h.to_xml(root: class_name, skip_instruct: true, indent: 2)
38
- end
39
-
40
- def as_xml(_options = {})
41
- to_xml
42
- end
43
-
44
36
  private
45
37
 
46
38
  attr_writer :scope
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Module Mutils
4
+ module Mutils
5
+ # Module SerializationCore
6
+ module Serialization
7
+ # Module Methods
8
+ module Methods
9
+ # Module Attributes
10
+ module Attributes
11
+ def attributes(*attributes_list)
12
+ parse_attributes_methods(attributes_list, false)
13
+ end
14
+
15
+ def custom_methods(*attributes_list)
16
+ parse_attributes_methods(attributes_list, true)
17
+ end
18
+
19
+ def parse_attributes_methods(list, is_method)
20
+ self.attributes_to_serialize = {} if attributes_to_serialize.nil?
21
+ list&.each do |attr|
22
+ value = { method: is_method, always_include: true }
23
+ attributes_to_serialize[attr] = value
24
+ end
25
+ end
26
+
27
+ def attribute(method_name, options = {}, &proc)
28
+ raise "if: should be a Proc object for attribute #{method_name}" if options[:if] && !options[:if].instance_of?(Proc)
29
+
30
+ if proc.instance_of? Proc
31
+ self.attributes_to_serialize_blocks = {} if attributes_to_serialize_blocks.nil?
32
+ options[:block] = proc
33
+ attributes_to_serialize_blocks[method_name] = options
34
+ else
35
+ add_single_attribute(method_name, options, false)
36
+ end
37
+ end
38
+
39
+ def custom_method(method_name, options = {})
40
+ add_single_attribute(method_name, options, true)
41
+ end
42
+
43
+ def add_single_attribute(method_name, options, is_method)
44
+ self.attributes_to_serialize = {} if attributes_to_serialize.nil?
45
+ always_include = options[:always_include].nil? ? false : options[:always_include]
46
+ value = { method: is_method, always_include: always_include, if: options[:if] }
47
+ attributes_to_serialize[method_name] = value
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Module Mutils
4
+ module Mutils
5
+ # Module SerializationCore
6
+ module Serialization
7
+ # Module Methods
8
+ module Methods
9
+ # Module Main
10
+ module Main
11
+ def name_tag(name_tag, root = nil)
12
+ self.serializer_name = name_tag
13
+ self.include_root = root
14
+ end
15
+
16
+ def class_exists?(class_name)
17
+ klass = begin
18
+ Mutils::Lib::Helper.instance.constantize(class_name.to_s)
19
+ rescue StandardError
20
+ nil
21
+ end
22
+ klass && defined?(klass) && klass.is_a?(Class)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Module Mutils
4
+ module Mutils
5
+ # Module SerializationCore
6
+ module Serialization
7
+ # Module Methods
8
+ module Methods
9
+ # Module Relations
10
+ module Relations
11
+ def relationship(relationship_name, options = {})
12
+ raise "if: should be a Proc object for attribute #{relationship_name}" if options[:if] && !options[:if].instance_of?(Proc)
13
+
14
+ options = prepare_options(relationship_name, options, __callee__)
15
+ self.relationships = {} if relationships.nil?
16
+ relationships[relationship_name] = options
17
+ end
18
+
19
+ alias belongs_to relationship
20
+ alias has_many relationship
21
+ alias has_one relationship
22
+
23
+ def prepare_options(relationship_name, options, option_name)
24
+ class_name = options[:serializer]
25
+ if class_name.nil?
26
+ raise "Serializer is Required for belongs_to :#{relationship_name}." \
27
+ "\nDefine it like:\n#{option_name} :#{relationship_name}, " \
28
+ 'serializer: SERIALIZER_CLASS'
29
+ end
30
+ raise "Serializer class not defined for relationship: #{relationship_name}" unless class_exists? class_name
31
+
32
+ options[:serializer] = class_name.to_s
33
+ options[:always_include] = options[:always_include].nil? ? false : options[:always_include]
34
+ options[:label] = Lib::Helper.instance.underscore options[:label] || relationship_name
35
+ options
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Module Mutils
4
+ module Mutils
5
+ module Serialization
6
+ # Module Results
7
+ module Results
8
+ # Module Attributes
9
+ module Attributes
10
+ def fetch_block_attributes(attributes, result_hash)
11
+ attributes&.each do |key, s_options|
12
+ result_hash[key] = s_options[:block].call(scope, options[:params])
13
+ end
14
+ end
15
+
16
+ def fetch_attributes(attributes, result_hash)
17
+ attributes&.each do |key, s_options|
18
+ check_if_included(s_options, key) && (result_hash[key] = s_options[:method] ? send(key) : scope.send(key))
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Module Mutils
4
+ module Mutils
5
+ module Serialization
6
+ # Module Results
7
+ module Results
8
+ # Module Attributes
9
+ module Main
10
+ def generate_hash
11
+ if scope
12
+ if scope_is_collection?
13
+ options[:child] = true
14
+ scope.map { |inner_scope| self.class.new(inner_scope, options).generate_hash }
15
+ else
16
+ hashed_result(Lib::ResultHash.new)
17
+ end
18
+ else
19
+ {}
20
+ end
21
+ end
22
+
23
+ def hashed_result(result_hash)
24
+ fetch_block_attributes(self.class.attributes_to_serialize_blocks, result_hash)
25
+ fetch_attributes(self.class.attributes_to_serialize, result_hash)
26
+ hash_relationships(self.class.relationships, result_hash)
27
+
28
+ result_hash.hash
29
+ end
30
+
31
+ def check_if_included(s_options, key)
32
+ return s_options[:if].call(scope) unless s_options[:if].nil? || scope_is_collection?
33
+
34
+ s_options[:always_include] || options[:includes]&.include?(key)
35
+ end
36
+
37
+ def scope_is_collection?
38
+ Lib::Helper.instance.collection? scope
39
+ end
40
+
41
+ def class_name
42
+ if scope_is_collection?
43
+ Lib::Helper.instance.pluralize(format_class_name(scope[0]))
44
+ else
45
+ format_class_name(scope)
46
+ end
47
+ end
48
+
49
+ def format_class_name(object)
50
+ if self.class.serializer_name&.length&.positive?
51
+ self.class.serializer_name
52
+ else
53
+ object.class.to_s.downcase
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Module Mutils
4
+ module Mutils
5
+ module Serialization
6
+ # Module Results
7
+ module Results
8
+ # Module Relations
9
+ module Relations
10
+ def hash_relationships(relationships_array, result_hash)
11
+ relationships = relationships_array&.compact
12
+ relationships&.each do |key, s_options|
13
+ object = scope.send(key)
14
+ name = s_options[:label]
15
+ Lib::Helper.instance.collection?(object) && (name = Lib::Helper.instance.pluralize(name))
16
+ name = name.to_sym
17
+ check_if_included(s_options, key) && (result_hash[name] = Lib::Helper.instance.constantize(s_options[:serializer]).new(object).to_h)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,90 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'methods/main'
4
+ require_relative 'methods/relations'
5
+ require_relative 'methods/attributes'
3
6
  # Module Mutils
4
7
  module Mutils
5
8
  module Serialization
6
9
  # Module SerializationCore
7
10
  module SerializationMethods
8
11
  def self.included(base)
9
- base.extend ClassMethods
10
- end
11
-
12
- # Module ClassMethods
13
- module ClassMethods
14
- def name_tag(name_tag, root = nil)
15
- self.serializer_name = name_tag
16
- self.include_root = root
17
- end
18
-
19
- def attributes(*attributes_list)
20
- parse_attributes_methods(attributes_list, 'attributes')
21
- end
22
-
23
- def custom_methods(*attributes_list)
24
- parse_attributes_methods(attributes_list, 'method')
25
- end
26
-
27
- def parse_attributes_methods(list, type)
28
- self.attributes_to_serialize = {} if attributes_to_serialize.nil?
29
- list&.each do |attr|
30
- value = { method: type == 'method', always_include: true }
31
- attributes_to_serialize[attr] = value
32
- end
33
- end
34
-
35
- def attribute(method_name, options = {}, &proc)
36
- raise "if: should be a Proc object for attribute #{method_name}" if options[:if] && (options[:if].class.to_s != 'Proc')
37
-
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
45
- end
46
-
47
- def custom_method(method_name, options = {})
48
- add_single_attribute(method_name, options, 'method')
49
- end
50
-
51
- def add_single_attribute(method_name, options, type)
52
- self.attributes_to_serialize = {} if attributes_to_serialize.nil?
53
- always_include = options[:always_include].nil? ? false : options[:always_include]
54
- value = { method: type == 'method', always_include: always_include, if: options[:if] }
55
- attributes_to_serialize[method_name] = value
56
- end
57
-
58
- def relationship(relationship_name, options = {})
59
- options = prepare_options(relationship_name, options, __callee__)
60
- self.relationships = {} if relationships.nil?
61
- relationships[relationship_name] = options
62
- end
63
-
64
- alias belongs_to relationship
65
- alias has_many relationship
66
- alias has_one relationship
67
-
68
- def prepare_options(relationship_name, options, option_name)
69
- class_name = options[:serializer]
70
- if class_name.nil?
71
- raise "Serializer is Required for belongs_to :#{relationship_name}." \
72
- "\nDefine it like:\n#{option_name} :#{relationship_name}, " \
73
- 'serializer: SERIALIZER_CLASS'
74
- end
75
- raise "Serializer class not defined for relationship: #{relationship_name}" unless class_exists? class_name
76
- raise "if: should be a Proc object for attribute #{relationship_name}" if options[:if] && (options[:if].class.to_s != 'Proc')
77
-
78
- options[:serializer] = Object.const_get class_name.to_s
79
- options[:option_name] = option_name
80
- options[:label] = options[:label]
81
- options
82
- end
83
-
84
- def class_exists?(class_name)
85
- klass = Object.const_get class_name.to_s rescue nil
86
- klass && defined?(klass) && klass.is_a?(Class)
87
- end
12
+ base.extend Methods::Main
13
+ base.extend Methods::Attributes
14
+ base.extend Methods::Relations
88
15
  end
89
16
  end
90
17
  end
@@ -1,87 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'results/main'
4
+ require_relative 'results/attributes'
5
+ require_relative 'results/relations'
3
6
  # Module Mutils
4
7
  module Mutils
5
8
  module Serialization
6
9
  # Module SerializationResults
7
10
  module SerializationResults
8
- def generate_hash
9
- if scope
10
- if scope_is_collection?
11
- options[:child] = true
12
- scope.map { |inner_scope| self.class.new(inner_scope, options).generate_hash }
13
- else
14
- hashed_result
15
- end
16
- else
17
- {}
18
- end
19
- end
20
-
21
- def hashed_result
22
- [fetch_block_attributes(self.class.attributes_to_serialize_blocks),
23
- fetch_attributes(self.class.attributes_to_serialize),
24
- hash_relationships(self.class.relationships)].reduce(&:merge)
25
- end
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
-
35
- def fetch_attributes(attributes)
36
- hash = {}
37
- attributes&.keys&.each do |key|
38
- check_if_included(attributes, key) && (hash[key] = attributes[key][:method] ? send(key) : scope.send(key))
39
- end
40
- hash
41
- end
42
-
43
- def hash_relationships(relationships_array)
44
- relationships = relationships_array&.compact
45
- hash = {}
46
- relationships&.keys&.each do |key|
47
- object = scope.send(key)
48
- name = key
49
- if (label = relationships[key][:label])
50
- name = Lib::Helper.instance.underscore label
51
- Lib::Helper.instance.collection?(object) && (name = Lib::Helper.instance.pluralize(name))
52
- name = name.to_sym
53
- end
54
- check_if_included(relationships, key) && (hash[name] = relationships[key][:serializer].new(object).to_h)
55
- end
56
- hash
57
- end
58
-
59
- def check_if_included(relationships, key)
60
- return relationships[key][:if].call(scope) unless relationships[key][:if].nil? || scope_is_collection?
61
-
62
- always_include = relationships[key][:always_include] == true
63
- always_include || options[:includes]&.include?(key)
64
- end
65
-
66
- def scope_is_collection?
67
- Lib::Helper.instance.collection? scope
68
- end
69
-
70
- def class_name
71
- if scope_is_collection?
72
- Lib::Helper.name.pluralize(format_class_name(scope[0]))
73
- else
74
- format_class_name(scope)
75
- end
76
- end
77
-
78
- def format_class_name(object)
79
- if self.class.serializer_name&.length&.positive?
80
- self.class.serializer_name
81
- else
82
- object.class.to_s.downcase
83
- end
84
- end
11
+ include Mutils::Serialization::Results::Main
12
+ include Mutils::Serialization::Results::Attributes
13
+ include Mutils::Serialization::Results::Relations
85
14
  end
86
15
  end
87
16
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mutils
4
- VERSION = '0.2.37'
4
+ VERSION = '1.0.0'
5
5
  end
@@ -27,6 +27,7 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency 'coveralls'
28
28
  spec.add_development_dependency 'rake', '~> 13.0'
29
29
  spec.add_development_dependency 'rspec'
30
+ spec.add_development_dependency 'rspec-benchmark'
30
31
  spec.add_development_dependency 'rspec-json_expectations'
31
32
 
32
33
  spec.metadata = {
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.37
4
+ version: 1.0.0
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-15 00:00:00.000000000 Z
11
+ date: 2020-04-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-inflector
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec-benchmark
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rspec-json_expectations
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -119,7 +133,6 @@ files:
119
133
  - Gemfile
120
134
  - Gemfile.lock
121
135
  - LICENSE.txt
122
- - Makefile
123
136
  - README.md
124
137
  - Rakefile
125
138
  - bin/console
@@ -129,7 +142,14 @@ files:
129
142
  - lib/generators/mutils/templates/serializer.rb.tt
130
143
  - lib/mutils.rb
131
144
  - lib/mutils/lib/helper.rb
145
+ - lib/mutils/lib/result_hash.rb
132
146
  - lib/mutils/serialization/base_serializer.rb
147
+ - lib/mutils/serialization/methods/attributes.rb
148
+ - lib/mutils/serialization/methods/main.rb
149
+ - lib/mutils/serialization/methods/relations.rb
150
+ - lib/mutils/serialization/results/attributes.rb
151
+ - lib/mutils/serialization/results/main.rb
152
+ - lib/mutils/serialization/results/relations.rb
133
153
  - lib/mutils/serialization/serialization_includes.rb
134
154
  - lib/mutils/serialization/serialization_methods.rb
135
155
  - lib/mutils/serialization/serialization_results.rb
@@ -140,7 +160,7 @@ licenses:
140
160
  - MIT
141
161
  metadata:
142
162
  bug_tracker_uri: https://github.com/code-vedas/mutils/issues
143
- source_code_uri: https://github.com/code-vedas/mutils/tree/v0.2.37
163
+ source_code_uri: https://github.com/code-vedas/mutils/tree/v1.0.0
144
164
  post_install_message:
145
165
  rdoc_options: []
146
166
  require_paths:
data/Makefile DELETED
@@ -1,8 +0,0 @@
1
- changelog:
2
- github_changelog_generator --user niteshpurohit --project mutils
3
- build:
4
- bundle exec rake build
5
- release: build
6
- git add .
7
- git commit -am '$(MESSAGE)'
8
- bundle exec rake release