Class: KirguduBase::BaseModel
Class Method Summary
collapse
Instance Method Summary
collapse
unclonable_properties_set, unclonable_property
before_query, filters_set_before_query
Class Method Details
.apply_filters_to_query(query, filters = {}) ⇒ Object
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
# File 'app/models/kirgudu_base/base_model.rb', line 114
def self.apply_filters_to_query(query, filters = {})
filters ||= {}
self.filters_set_before_query.each do |filter_before_query|
query = self.send(filter_before_query.to_sym, query, filters)
raise "'before_query' filter error. Method: '#{filter_before_query}' returned broken query (not ActiveRecord::Relation)." unless query && query.is_a?(::ActiveRecord::Relation)
end
query = query.with_keyword(filters[:keyword]) if self.respond_to?(:with_keyword)
per_page = filters[:per_page].to_i rescue nil
if per_page
per_page = 99999 if per_page <= 0
page_number = filters[:page].to_i rescue nil
page_number = 1 if page_number.nil? || page_number <= 0
query = query.page(page_number).per_page(per_page)
end
query.order(filters[:order] || "name asc")
end
|
.belongs_to_module?(modul) ⇒ Boolean
63
64
65
|
# File 'app/models/kirgudu_base/base_model.rb', line 63
def self.belongs_to_module?(modul)
::ChupakabraTools::ClassHelper.class_belong_to_module(modul, self)
end
|
139
140
141
|
# File 'app/models/kirgudu_base/base_model.rb', line 139
def self.for_form_params
"#{self.to_s.underscore.gsub('/', '_')}".to_sym
end
|
.for_sql_order_by(name, direction = nil) ⇒ Object
148
149
150
151
152
153
154
155
156
|
# File 'app/models/kirgudu_base/base_model.rb', line 148
def self.for_sql_order_by(name, direction = nil)
if name.nil?
raise "Class. Ordery By Colum Name is Null"
end
direction = direction.to_sym if direction
direction ||= :asc
"#{self.table_name}.#{name} #{direction == :asc ? 'asc' : 'desc'}"
end
|
.for_sql_order_by_inverted(name, direction = nil) ⇒ Object
158
159
160
161
162
|
# File 'app/models/kirgudu_base/base_model.rb', line 158
def self.for_sql_order_by_inverted(name, direction = nil)
direction = direction.to_sym if direction
direction ||= :asc
self.for_sql_order_by(name, direction == :asc ? :desc : :asc)
end
|
.get_entries(query, filters, options = {}) ⇒ Object
METHODS MOVED FROM DataRetriever ######################################
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
# File 'app/models/kirgudu_base/base_model.rb', line 84
def self.get_entries(query, filters, options = {})
raise "Query must be nil or ActiveRecord::Relation" if query && !query.is_a?(::ActiveRecord::Relation)
options ||= {}
options.symbolize_keys!
filters ||= {}
filters.symbolize_keys!
filters[:per_page] = options[:per_page] if options[:per_page]
filters[:page] = options[:page] if options[:page]
self.apply_filters_to_query(query || self, filters)
end
|
.get_entry_by_id(id, filters, options = {}) ⇒ Object
109
110
111
112
|
# File 'app/models/kirgudu_base/base_model.rb', line 109
def self.get_entry_by_id(id, filters, options={})
options ||= {}
self.get_entries(nil, filters, options).where(id: id).first
end
|
.get_entry_name(controller, id, options = {}) ⇒ Object
101
102
103
104
105
106
107
|
# File 'app/models/kirgudu_base/base_model.rb', line 101
def self.get_entry_name(controller, id, options={})
options ||= {}
found_text_value = nil
entry = self.get_entry_by_id(controller, id, options)
found_text_value = entry.to_s if entry
found_text_value
end
|
.is_subclass?(parent_class) ⇒ Boolean
72
73
74
75
|
# File 'app/models/kirgudu_base/base_model.rb', line 72
def self.is_subclass?(parent_class)
::ChupakabraTools::ClassHelper.class_is_subclass_of(parent_class, self)
end
|
.to_i18n ⇒ Object
58
59
60
|
# File 'app/models/kirgudu_base/base_model.rb', line 58
def self.to_i18n
::ChupakabraTools::ClassHelper.class_to_i18n(self)
end
|
Instance Method Details
#as_json(options = {}) ⇒ Object
179
180
181
182
|
# File 'app/models/kirgudu_base/base_model.rb', line 179
def as_json(options = {})
super(merge_options_for_json(options, new_options = self.options_for_json))
end
|
#belongs_to_module?(modul) ⇒ Boolean
67
68
69
|
# File 'app/models/kirgudu_base/base_model.rb', line 67
def belongs_to_module?(modul)
self.class.belongs_to_module?(modul)
end
|
143
144
145
|
# File 'app/models/kirgudu_base/base_model.rb', line 143
def for_form_params
self.class.for_model_params
end
|
#for_sql_order_by(name, direction = nil) ⇒ Object
164
165
166
|
# File 'app/models/kirgudu_base/base_model.rb', line 164
def for_sql_order_by(name, direction = nil)
self.class.for_sql_order_by(name, direction)
end
|
#for_sql_order_by_inverted(name, direction = nil) ⇒ Object
168
169
170
|
# File 'app/models/kirgudu_base/base_model.rb', line 168
def for_sql_order_by_inverted(name, direction = nil)
self.class.for_sql_order_by_inverted(name, direction)
end
|
#i18n_yes_no_label(value) ⇒ Object
29
30
31
|
# File 'app/models/kirgudu_base/base_model.rb', line 29
def i18n_yes_no_label(value)
I18n.t("kirgudu_base.common.labels.yes_no.#{value ? "yes" : "no"}")
end
|
#is_active_label ⇒ Object
34
35
36
|
# File 'app/models/kirgudu_base/base_model.rb', line 34
def is_active_label
self.i18n_yes_no_label(self.is_active) if self.respond_to?(:is_active)
end
|
#is_html_label ⇒ Object
38
39
40
|
# File 'app/models/kirgudu_base/base_model.rb', line 38
def is_html_label
self.i18n_yes_no_label(self.is_html) if self.respond_to?(:is_html)
end
|
#is_subclass?(parent_class) ⇒ Boolean
77
78
79
|
# File 'app/models/kirgudu_base/base_model.rb', line 77
def is_subclass?(parent_class)
self.class.is_subclass?(parent_class)
end
|
#mass_assign(data, options = {}) ⇒ Object
208
209
210
211
212
213
214
215
|
# File 'app/models/kirgudu_base/base_model.rb', line 208
def mass_assign(data, options = {})
if data && data.is_a?(Hash)
data.each_pair do |key, value|
method_name = "#{key}="
self.send(method_name, value) if self.respond_to?(method_name)
end
end
end
|
#merge_options_for_json(old_options = {}, new_options = {}) ⇒ Object
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
|
# File 'app/models/kirgudu_base/base_model.rb', line 184
def merge_options_for_json(old_options = {}, new_options = {})
(old_options || {}).merge(new_options || {}) do |key, old_val, new_val|
if key == :except || key == :methods || key == :only
result_value = []
if old_val.is_a?(Array)
old_val.each { |v| result_value << v }
else
result_value << old_val
end
if new_val.is_a?(Array)
new_val.each { |v| result_value << v }
else
result_value << new_val
end
result_value.compact!
result_value.uniq
else
new_val
end
end
end
|
#name_for_breadcrumbs ⇒ Object
42
43
44
|
# File 'app/models/kirgudu_base/base_model.rb', line 42
def name_for_breadcrumbs
self.name
end
|
#set_options_for_json(properties = {}) ⇒ Object
173
174
175
176
|
# File 'app/models/kirgudu_base/base_model.rb', line 173
def set_options_for_json(properties = {})
self.options_for_json ||= {}
self.options_for_json.merge!(properties || {})
end
|
#to_i18n ⇒ Object
def clone
self.class.new(self.attributes.except(self.class.unclonable_properties_set))
end
54
55
56
|
# File 'app/models/kirgudu_base/base_model.rb', line 54
def to_i18n
self.class.to_i18n
end
|
#to_s ⇒ Object
46
47
48
|
# File 'app/models/kirgudu_base/base_model.rb', line 46
def to_s
self.name
end
|