mini_serializer 0.1.9 → 0.1.10

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: 949f733bc82600ffad8a78605b6eca7e3b393abf1f100fab81f2d14ff0ff11de
4
- data.tar.gz: b7f23efcbfd9198950840a013574f71174cd6b112317a5b40bfc613af3bb277b
3
+ metadata.gz: a2e2cbe75ecd3623daaafc5668d74d6816995a3bbdfbdaed96bb24d931460743
4
+ data.tar.gz: 6f39cdda960613c7c8a442db6f59421f1c4f9f93db70894c435ffa95fdfef645
5
5
  SHA512:
6
- metadata.gz: f26b87606e60f1ef07dbc4d3bac7fefe48abb09d9911dcb66303b046bbfe7e437f793949fc2908c9b4661f43bb526736ac8eb71db1858410725e867c24c85fd9
7
- data.tar.gz: 04f28a24f85ba6f09499e98b1e7f4d6a960315e23c0bad6cbc1fd0bab0f1bd978aa825d208e3baf595a07fecff26ef96d3873a43af1c46a2927d13c9f3c779a5
6
+ metadata.gz: 6a03950edca1b6f3c9d05fe811506fd96d754b5deb10e91654ce800397a69bd2dc7456df3241a181be7f3040071bf179d47af9b246d4bcbbabe496883f113f0c
7
+ data.tar.gz: 6a536d22c9c4b35eb543d89dfbd9ae1506627f8b4627ba0777decadffbfe3e766b12e7fba306e86d9b10a68fc267cf39cae1e06e862c360340272829dd0a2552
@@ -1,3 +1,3 @@
1
1
  module MiniSerializer
2
- VERSION = "0.1.9".freeze
2
+ VERSION = "0.1.10".freeze
3
3
  end
@@ -1,132 +1,135 @@
1
1
  require "mini_serializer/version"
2
2
 
3
3
  module MiniSerializer
4
- class Serializer
5
-
6
- def initialize(object_main,except_params={})
7
- @wams_has_one=[]
8
- @wams_has_many=[]
9
- @wams_association_object=[]
10
- @wams_association_for_to_json={}
11
- @wams_main_object=object_main
12
- @wams_foreign_object={}
13
- if !except_params.empty?
14
- @wams_except_params_main_object=except_params[:except]
15
- else
16
- @wams_except_params_main_object={}
17
- end
4
+ class Serializer
5
+
6
+ def initialize(object_main,except_params={})
7
+ @wams_has_one=[]
8
+ @wams_has_many=[]
9
+ @wams_association_object=[]
10
+ @wams_association_for_to_json={}
11
+ @wams_main_object=object_main
12
+ @wams_foreign_object={}
13
+ if !except_params.empty?
14
+ @wams_except_params_main_object=except_params[:except]
15
+ else
16
+ @wams_except_params_main_object={}
17
+ end
18
18
 
19
- end
19
+ end
20
20
 
21
- def add_has_many(object,except_methods=[])
22
- wams_has_many<< [object,except_methods]
23
- end
21
+ def add_has_many(object,except_methods=[])
22
+ wams_has_many<< [object,except_methods]
23
+ end
24
24
 
25
- def add_has_one(object,except_methods=[])
26
- wams_has_one<<[object,except_methods]
27
- end
25
+ def add_has_one(object,except_methods=[])
26
+ wams_has_one<<[object,except_methods]
27
+ end
28
28
 
29
- def get_params_included_to_json(with_except:false)
30
- fetch_association_objects
31
- if with_except
32
- {include:wams_association_for_to_json,except:wams_except_params_main_object}
33
- else
34
- {include:wams_association_for_to_json}
29
+ def get_params_included_to_json(with_except:false)
30
+ fetch_association_objects
31
+ if with_except
32
+ {include:wams_association_for_to_json,except:wams_except_params_main_object}
33
+ else
34
+ {include:wams_association_for_to_json}
35
+ end
35
36
  end
36
- end
37
37
 
38
- def add_foreign_object(objects,custom_name,include_params,except_params=[]) # ezafe kardane object khareji be object asli
38
+ def add_foreign_object(objects,custom_name,include_params,except_params=[]) # ezafe kardane object khareji be object asli
39
39
 
40
- if include_params.any?
41
- if include_params.kind_of?(Hash)
42
- param_for_include=include_params.keys
43
- elsif (include_params.kind_of?(Array))
40
+ if include_params.any?
41
+ if include_params.kind_of?(Hash)
42
+ param_for_include=include_params.keys
43
+ elsif (include_params.kind_of?(Array))
44
44
 
45
- param_for_include=include_params
45
+ param_for_include=include_params
46
+ end
47
+ objects=objects.includes(param_for_include)
46
48
  end
47
- puts param_for_include
48
- objects=objects.includes(param_for_include)
49
- end
50
-
51
- if except_params.empty?
52
- wams_foreign_object[custom_name]=objects
53
- else
54
- wams_foreign_object[custom_name]=objects.as_json(except:except_params,include:include_params)
55
- end
56
49
 
57
- end
50
+ if except_params.empty?
51
+ wams_foreign_object[custom_name]=objects
52
+ else
53
+ wams_foreign_object[custom_name]=objects.as_json(except:except_params,include:include_params)
54
+ end
58
55
 
59
- def json_serializer(object=nil)
60
- if object.nil?
61
- included_data=includes_to_serializer
62
56
  end
63
57
 
64
- if !wams_except_params_main_object.empty? # have except params for main object
65
-
66
- if !object.nil? # have object for proccess
67
- response_data= object.as_json({include:wams_association_for_to_json,except:wams_except_params_main_object})
68
- else # haven't object for proccess
69
- response_data= included_data.as_json({include:wams_association_for_to_json,except:wams_except_params_main_object})
58
+ def json_serializer(object=nil)
59
+ if object.nil?
60
+ included_data=includes_to_serializer
70
61
  end
71
62
 
72
- else
63
+ if !wams_except_params_main_object.empty? # have except params for main object
64
+
65
+ if !object.nil? # have object for proccess
66
+ response_data= object.as_json({include:wams_association_for_to_json,except:wams_except_params_main_object})
67
+ else # haven't object for proccess
68
+ response_data= included_data.as_json({include:wams_association_for_to_json,except:wams_except_params_main_object})
69
+ end
73
70
 
74
- if !object.nil?
75
- response_data= object.as_json({include:wams_association_for_to_json})
76
71
  else
77
- response_data= included_data.as_json({include:wams_association_for_to_json})
72
+
73
+ if !object.nil?
74
+ response_data= object.as_json({include:wams_association_for_to_json})
75
+ else
76
+ response_data= included_data.as_json({include:wams_association_for_to_json})
77
+ end
78
78
  end
79
- end
80
- if wams_foreign_object.any? # when use method foreign_object
81
- if wams_main_object.kind_of?(Class)
82
- name_main_object=wams_main_object.to_s.downcase.pluralize
79
+ if wams_foreign_object.any? # when use method foreign_object
80
+ if wams_main_object.kind_of?(Class)
81
+ name_main_object=wams_main_object.to_s.downcase.pluralize
82
+ else
83
+ name_main_object=wams_main_object.klass.name.downcase.pluralize
84
+ end
85
+ return {"#{name_main_object}": response_data,included:wams_foreign_object}
86
+
83
87
  else
84
- name_main_object=wams_main_object.klass.name.downcase.pluralize
88
+ response_data
85
89
  end
86
- return {"#{name_main_object}": response_data,included:wams_foreign_object}
87
90
 
88
- else
89
- response_data
91
+ # example output : wams_association_for_to_json is {'house_images':{except: [:id,:house_id]} }
90
92
  end
91
93
 
92
- # example output : wams_association_for_to_json is {'house_images':{except: [:id,:house_id]} }
93
- end
94
+ def get_object_included
95
+ return includes_to_serializer
96
+ end
94
97
 
95
- def get_object_included
96
- return includes_to_serializer
97
- end
98
+ private
99
+ attr_accessor :wams_has_many,:wams_has_one ,:wams_association_object,
100
+ :wams_except_params,:wams_main_object,:wams_association_for_to_json,
101
+ :wams_except_params_main_object,:wams_foreign_object
98
102
 
99
- private
100
- attr_accessor :wams_has_many,:wams_has_one ,:wams_association_object,
101
- :wams_except_params,:wams_main_object,:wams_association_for_to_json,
102
- :wams_except_params_main_object,:wams_foreign_object
103
+ def includes_to_serializer
104
+ data_with_includes=nil
105
+ fetch_association_objects
103
106
 
104
- def includes_to_serializer
105
- data_with_includes=nil
106
- fetch_association_objects
107
- if wams_has_many.any?
108
- data_with_includes= wams_main_object.includes(wams_association_object)
109
- end
110
- if wams_has_one.any?
111
- data_with_includes.merge! wams_main_object.includes(wams_association_object)
112
- end
113
- if wams_has_one.empty? && wams_has_one.empty? # when main object not any has_one and has_many
114
- return wams_main_object # return main object
115
- end
116
- return data_with_includes
117
- end
107
+ if wams_has_many.any?
118
108
 
119
- def fetch_association_objects
120
- wams_has_many.map do |object_asoc,except_params|
121
- wams_association_for_to_json[object_asoc]={except: except_params} # for to_json hash
122
- wams_association_object<<object_asoc # for included (relation record)
109
+ data_with_includes= wams_main_object.includes(wams_association_object)
110
+ end
111
+ if wams_has_one.any?
112
+ data_with_includes.merge! wams_main_object.includes(wams_association_object)
113
+ end
114
+
115
+ if wams_has_one.empty? && wams_has_many.empty? # when main object not any has_one and has_many
116
+ return wams_main_object # return main object
117
+ end
118
+
119
+ return data_with_includes
123
120
  end
124
121
 
125
- wams_has_one.map do |object_asoc,except_params|
126
- wams_association_for_to_json[object_asoc]={except: except_params} # for to_json hash
127
- wams_association_object<<object_asoc # for included (relation record)
122
+ def fetch_association_objects
123
+ wams_has_many.map do |object_asoc,except_params|
124
+ wams_association_for_to_json[object_asoc]={except: except_params} # for to_json hash
125
+ wams_association_object<<object_asoc # for included (relation record)
126
+ end
127
+
128
+ wams_has_one.map do |object_asoc,except_params|
129
+ wams_association_for_to_json[object_asoc]={except: except_params} # for to_json hash
130
+ wams_association_object<<object_asoc # for included (relation record)
131
+ end
128
132
  end
129
- end
130
133
 
131
- end
132
- end
134
+ end
135
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mini_serializer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - mahdi alizadeh
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-24 00:00:00.000000000 Z
11
+ date: 2018-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler