drg_cms 0.6.0.3 → 0.6.0.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/app/assets/javascripts/drg_cms/drg_cms.js +259 -102
- data/app/assets/javascripts/drg_cms_cms.js +1 -1
- data/app/assets/stylesheets/drg_cms/drg_cms.css +314 -142
- data/app/assets/stylesheets/drg_cms/select-multiple.css +11 -2
- data/app/controllers/cmsedit_controller.rb +313 -236
- data/app/controllers/dc_application_controller.rb +29 -4
- data/app/controllers/dc_common_controller.rb +19 -16
- data/app/{controllers → controls}/browse_models_control.rb +0 -0
- data/app/{controllers → controls}/dc_page_control.rb +24 -8
- data/app/controls/dc_poll_result_control.rb +88 -0
- data/app/{controllers → controls}/design_element_settings_control.rb +0 -0
- data/app/forms/all_options.yml +11 -3
- data/app/forms/cms_menu.yml +22 -18
- data/app/forms/dc_design.yml +6 -3
- data/app/forms/dc_filter.yml +3 -6
- data/app/forms/dc_poll_result.yml +74 -0
- data/app/forms/dc_poll_result_export.yml +35 -0
- data/app/helpers/cmsedit_edit_helper.rb +471 -0
- data/app/helpers/cmsedit_helper.rb +151 -821
- data/app/helpers/cmsedit_index_helper.rb +567 -0
- data/app/helpers/dc_application_helper.rb +48 -31
- data/app/models/{dc_dummy.rb → __dc_dummy.rb} +0 -0
- data/app/models/dc_filter.rb +12 -5
- data/app/models/dc_memory.rb +8 -1
- data/app/models/dc_poll.rb +38 -19
- data/app/models/dc_poll_result.rb +44 -0
- data/app/models/dc_temp.rb +137 -0
- data/app/models/drgcms_form_fields/action.rb +61 -0
- data/app/models/drgcms_form_fields/comment.rb +8 -4
- data/app/models/drgcms_form_fields/date_picker.rb +7 -6
- data/app/models/drgcms_form_fields/date_select.rb +1 -1
- data/app/models/drgcms_form_fields/datetime_picker.rb +8 -7
- data/app/models/drgcms_form_fields/datetime_select.rb +1 -1
- data/app/models/drgcms_form_fields/drgcms_field.rb +39 -7
- data/app/models/drgcms_form_fields/embedded.rb +7 -2
- data/app/models/drgcms_form_fields/file_field.rb +52 -0
- data/app/models/drgcms_form_fields/html_field.rb +1 -1
- data/app/models/drgcms_form_fields/multitext_autocomplete.rb +7 -4
- data/app/models/drgcms_form_fields/number_field.rb +15 -6
- data/app/models/drgcms_form_fields/radio.rb +91 -0
- data/app/models/drgcms_form_fields/readonly.rb +1 -1
- data/app/models/drgcms_form_fields/select.rb +14 -2
- data/app/models/drgcms_form_fields/text_area.rb +1 -1
- data/app/models/drgcms_form_fields/text_autocomplete.rb +1 -1
- data/app/models/drgcms_form_fields/text_field.rb +1 -1
- data/app/models/drgcms_form_fields/text_with_select.rb +6 -3
- data/app/models/drgcms_form_fields/tree_select.rb +11 -3
- data/app/renderers/dc_poll_renderer.rb +29 -11
- data/app/views/cmsedit/{remove_edit_stuff.js.erb → __remove_edit_stuff.js.erb} +0 -0
- data/app/views/cmsedit/{show.html.erb → __show.html.erb} +0 -0
- data/app/views/cmsedit/_edit_stuff.html.erb +2 -4
- data/app/views/cmsedit/_form.html.erb +4 -3
- data/app/views/cmsedit/_result.html.erb +2 -3
- data/app/views/cmsedit/edit.html.erb +2 -1
- data/app/views/cmsedit/index.html.erb +6 -1
- data/app/views/cmsedit/new.html.erb +1 -1
- data/config/locales/drgcms_en.yml +7 -0
- data/config/locales/drgcms_sl.yml +8 -1
- data/config/locales/models_en.yml +13 -4
- data/config/locales/models_sl.yml +13 -2
- data/drg_cms.gemspec +1 -1
- data/lib/drg_cms.rb +1 -0
- data/lib/drg_cms/version.rb +1 -1
- data/lib/generators/new_drg_form/new_drg_form_generator.rb +7 -2
- metadata +20 -13
- data/app/assets/stylesheets/drg_cms/__jquery-ui.css +0 -339
- data/test/fixtures/drg_cms_test_data.rb +0 -87
@@ -98,6 +98,7 @@ def dc_render(renderer, opts={})
|
|
98
98
|
#
|
99
99
|
opts[:edit_mode] = session[:edit_mode]
|
100
100
|
opts[:editparams] = {}
|
101
|
+
|
101
102
|
opts = @options.merge(opts) # merge options with parameters passed on site, page, design ...
|
102
103
|
opts.symbolize_keys! # this makes lots of things easier
|
103
104
|
# Create renderer object
|
@@ -260,7 +261,7 @@ end
|
|
260
261
|
def dc_table_title(text, result_set=nil)
|
261
262
|
c = %Q[<div class="dc-title">#{text}]
|
262
263
|
if result_set and result_set.respond_to?(:current_page)
|
263
|
-
c << %Q[<div class="dc-paginate">#{paginate(result_set, :params => {:
|
264
|
+
c << %Q[<div class="dc-paginate">#{paginate(result_set, :params => {action: 'index', clear: 'no'})}</div>]
|
264
265
|
end
|
265
266
|
c << '<div style="clear: both;"></div></div>'
|
266
267
|
c.html_safe
|
@@ -273,6 +274,7 @@ end
|
|
273
274
|
# String. HTML code for title.
|
274
275
|
############################################################################
|
275
276
|
def dc_edit_title()
|
277
|
+
session[:form_processing] = "form:title:"
|
276
278
|
title = @form['form']['title']
|
277
279
|
# defined as form:title:edit
|
278
280
|
if title and title['edit'] and !@form['readonly']
|
@@ -299,6 +301,7 @@ end
|
|
299
301
|
# String. HTML code for title.
|
300
302
|
############################################################################
|
301
303
|
def dc_new_title()
|
304
|
+
session[:form_processing] = "form:title:"
|
302
305
|
title = @form['form']['title']
|
303
306
|
# defined as form:title:new
|
304
307
|
if title and title['new']
|
@@ -351,6 +354,21 @@ def dc_submit_tag(caption, icon, parms, rest={})
|
|
351
354
|
html = icon_image || ''
|
352
355
|
html << submit_tag(t(caption, caption), parms)
|
353
356
|
end
|
357
|
+
|
358
|
+
############################################################################
|
359
|
+
# Returns icon code if icon is specified
|
360
|
+
############################################################################
|
361
|
+
def dc_icon_for_link(icon)
|
362
|
+
return nil unless icon
|
363
|
+
if icon.match(/\./)
|
364
|
+
_origin.image_tag(icon, class: 'dc-link-img dc-animate')
|
365
|
+
elsif icon.match('<i')
|
366
|
+
icon
|
367
|
+
else
|
368
|
+
_origin.fa_icon(icon)
|
369
|
+
end
|
370
|
+
end
|
371
|
+
|
354
372
|
############################################################################
|
355
373
|
# Similar to rails link_to, but also takes care of link icon, translation, ...
|
356
374
|
############################################################################
|
@@ -365,16 +383,7 @@ def dc_link_to(caption, icon, parms, rest={})
|
|
365
383
|
icon_pos = parms.delete('icon_pos') || 'first'
|
366
384
|
end
|
367
385
|
#
|
368
|
-
|
369
|
-
icon_image = if icon.match(/\./)
|
370
|
-
_origin.image_tag(icon, class: 'dc-link-img dc-animate')
|
371
|
-
elsif icon.match('<i')
|
372
|
-
icon
|
373
|
-
else
|
374
|
-
_origin.fa_icon(icon)
|
375
|
-
end
|
376
|
-
end
|
377
|
-
#
|
386
|
+
icon_image = dc_icon_for_link(icon)
|
378
387
|
if caption
|
379
388
|
caption = t(caption, caption)
|
380
389
|
icon_image << ' ' if icon_image
|
@@ -391,23 +400,31 @@ end
|
|
391
400
|
# String. HTML code formatted for display.
|
392
401
|
####################################################################
|
393
402
|
def dc_flash_messages()
|
394
|
-
err
|
395
|
-
war
|
396
|
-
inf
|
397
|
-
note
|
403
|
+
err = _origin.flash[:error]
|
404
|
+
war = _origin.flash[:warning]
|
405
|
+
inf = _origin.flash[:info]
|
406
|
+
note = _origin.flash[:note]
|
407
|
+
html = ''
|
398
408
|
unless err.nil? and war.nil? and inf.nil? and note.nil?
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
c << note if note
|
409
|
+
html << "<div class=\"dc-form-error\">#{err}</div>" if err
|
410
|
+
html << "<div class=\"dc-form-warning\">#{war}</div>" if war
|
411
|
+
html << "<div class=\"dc-form-info\">#{inf}</div>" if inf
|
412
|
+
html << note if note
|
404
413
|
_origin.flash[:error] = nil
|
405
414
|
_origin.flash[:warning] = nil
|
406
415
|
_origin.flash[:info] = nil
|
407
416
|
_origin.flash[:note] = nil
|
408
|
-
|
409
|
-
c.html_safe
|
410
417
|
end
|
418
|
+
# Update fields on the form
|
419
|
+
if _origin.flash[:update]
|
420
|
+
html << "<div class=\"dc-form-updates\">\n"
|
421
|
+
_origin.flash[:update].each do |field, value|
|
422
|
+
html << %Q[<div data-field="#{field}" data-value="#{value}"></div>\n]
|
423
|
+
end
|
424
|
+
html << '</div>'
|
425
|
+
_origin.flash[:update] = nil
|
426
|
+
end
|
427
|
+
html.html_safe
|
411
428
|
end
|
412
429
|
|
413
430
|
########################################################################
|
@@ -772,9 +789,11 @@ end
|
|
772
789
|
############################################################################
|
773
790
|
def dc_name4_id(model, field, field_name, id=nil)
|
774
791
|
return '' if id.nil?
|
775
|
-
field_name
|
792
|
+
field_name = (field_name || 'id').strip.to_sym
|
793
|
+
field = field.strip.to_sym
|
794
|
+
|
776
795
|
model = model.strip.classify.constantize if model.class == String
|
777
|
-
rec = Mongoid::QueryCache.cache { model.find_by(field_name
|
796
|
+
rec = Mongoid::QueryCache.cache { model.find_by(field_name => id) }
|
778
797
|
rec.nil? ? '' : (rec.send(field) rescue 'not defined')
|
779
798
|
end
|
780
799
|
|
@@ -794,7 +813,7 @@ end
|
|
794
813
|
# name: active
|
795
814
|
# eval: dc_icon4_boolean
|
796
815
|
############################################################################
|
797
|
-
def dc_icon4_boolean(value)
|
816
|
+
def dc_icon4_boolean(value=false)
|
798
817
|
dc_dont?(value, true) ? fa_icon('square-o lg') : fa_icon('check-square-o lg')
|
799
818
|
end
|
800
819
|
|
@@ -1313,7 +1332,7 @@ def dc_internal_var(object, var_name)
|
|
1313
1332
|
'VARIABLE: UNKNOWN OBJECT'
|
1314
1333
|
end
|
1315
1334
|
rescue Exception => e
|
1316
|
-
|
1335
|
+
logger.error "Method dc_internal_var. Runtime error. #{e.message}"
|
1317
1336
|
'VARIABLE: ERROR'
|
1318
1337
|
end
|
1319
1338
|
end
|
@@ -1428,11 +1447,9 @@ end
|
|
1428
1447
|
# [String] alt_image_name
|
1429
1448
|
#######################################################################
|
1430
1449
|
def dc_img_alt(file_name, text=nil)
|
1431
|
-
|
1432
|
-
|
1433
|
-
|
1434
|
-
end
|
1435
|
-
text
|
1450
|
+
return text unless text.blank?
|
1451
|
+
name = File.basename(file_name.to_s)
|
1452
|
+
name[0,name.index('.')].downcase rescue name
|
1436
1453
|
end
|
1437
1454
|
|
1438
1455
|
|
File without changes
|
data/app/models/dc_filter.rb
CHANGED
@@ -144,11 +144,18 @@ def self.get_filter_field(parent)
|
|
144
144
|
klas = DrgcmsFormFields::const_get(klas_string) rescue nil
|
145
145
|
return '' if klas.nil?
|
146
146
|
# return data from object and create html code to display field
|
147
|
-
object = klas.new(parent, nil, field).render
|
148
|
-
|
149
|
-
|
150
|
-
parent.
|
151
|
-
|
147
|
+
object = klas.new(parent, nil, field).render rescue nil
|
148
|
+
# Error. Forget filter and return
|
149
|
+
if object.nil?
|
150
|
+
parent.session[ parent.form['table'] ][:filter] = nil
|
151
|
+
return ''
|
152
|
+
end
|
153
|
+
js = object.js.blank? ? '' : parent.javascript_tag(object.js)
|
154
|
+
%Q[<li class="no-background">
|
155
|
+
<span class="filter_field" data-url="#{url}">#{object.html}
|
156
|
+
#{parent.fa_icon('search lg', class: 'record_filter_field_icon')}
|
157
|
+
#{js}</span>
|
158
|
+
</li>]
|
152
159
|
end
|
153
160
|
|
154
161
|
######################################################################
|
data/app/models/dc_memory.rb
CHANGED
@@ -74,12 +74,19 @@ def initialize(parms = {})
|
|
74
74
|
end
|
75
75
|
|
76
76
|
########################################################################
|
77
|
-
#
|
77
|
+
# Return id field
|
78
78
|
########################################################################
|
79
79
|
def id()
|
80
80
|
@internals['id']
|
81
81
|
end
|
82
82
|
|
83
|
+
########################################################################
|
84
|
+
# Respond_to should always return true.
|
85
|
+
########################################################################
|
86
|
+
def id=(value)
|
87
|
+
@internals['id'] = value
|
88
|
+
end
|
89
|
+
|
83
90
|
########################################################################
|
84
91
|
# Respond_to should always return true.
|
85
92
|
########################################################################
|
data/app/models/dc_poll.rb
CHANGED
@@ -51,26 +51,45 @@
|
|
51
51
|
# as DcSimpleItem embedded structure or as DRG CMS form YAML style entered into form field.
|
52
52
|
########################################################################
|
53
53
|
class DcPoll
|
54
|
-
|
55
|
-
|
54
|
+
|
55
|
+
include Mongoid::Document
|
56
|
+
include Mongoid::Timestamps
|
56
57
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
58
|
+
field :name, type: String, default: ''
|
59
|
+
field :title, type: String, default: ''
|
60
|
+
field :sub_text, type: String, default: ''
|
61
|
+
field :pre_display, type: String
|
62
|
+
field :operation, type: String
|
63
|
+
field :parameters, type: String
|
64
|
+
field :display, type: String, default: '1'
|
65
|
+
field :css, type: String
|
66
|
+
field :form, type: String
|
67
|
+
field :valid_from, type: DateTime
|
68
|
+
field :valid_to, type: DateTime
|
69
|
+
field :captcha_type, type: String
|
70
|
+
field :active, type: Boolean, default: true
|
71
|
+
field :created_by, type: BSON::ObjectId
|
72
|
+
field :updated_by, type: BSON::ObjectId
|
72
73
|
|
73
|
-
|
74
|
+
index( { name: 1 }, { unique: true } )
|
74
75
|
|
75
|
-
|
76
|
+
embeds_many :dc_poll_items
|
77
|
+
|
78
|
+
########################################################################
|
79
|
+
# Save poll results to DcPollResults collection
|
80
|
+
#
|
81
|
+
# Params:
|
82
|
+
# data : Hash : Records hash (params[:record])
|
83
|
+
########################################################################
|
84
|
+
def save_results(data)
|
85
|
+
h = {}
|
86
|
+
items = self.form.blank? ? self.dc_poll_items : YAML.load(self.form.gsub(' ',' '))
|
87
|
+
items.each do |item|
|
88
|
+
next if %w(hidden_field submit_tag link_to comment).include?(item.type)
|
89
|
+
next if item.try(:options).match('hidden')
|
90
|
+
h[ item['name'] ] = data[ item['name'] ]
|
91
|
+
end
|
92
|
+
DcPollResult.create(dc_poll_id: self.id, data: h.to_yaml)
|
93
|
+
end
|
94
|
+
|
76
95
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (c) 2020+ Damjan Rems
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
# a copy of this software and associated documentation files (the
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
# the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#++
|
23
|
+
|
24
|
+
########################################################################
|
25
|
+
# == Schema information
|
26
|
+
#
|
27
|
+
# Collection name: dc_poll_results : Pools results saved
|
28
|
+
#
|
29
|
+
# _id BSON::ObjectId _id
|
30
|
+
# dc_poll_id BSON::ObjectId poll id
|
31
|
+
# data String Data saved as YAML
|
32
|
+
#
|
33
|
+
# Results of polls saved as YAML structure.
|
34
|
+
########################################################################
|
35
|
+
class DcPollResult
|
36
|
+
include Mongoid::Document
|
37
|
+
include Mongoid::Timestamps
|
38
|
+
|
39
|
+
field :data, type: String
|
40
|
+
belongs_to :dc_poll
|
41
|
+
|
42
|
+
index( { dc_poll_id: 1 } )
|
43
|
+
|
44
|
+
end
|
@@ -0,0 +1,137 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (c) 2020+ Damjan Rems
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
# a copy of this software and associated documentation files (the
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
# the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#++
|
23
|
+
|
24
|
+
########################################################################
|
25
|
+
# == Schema information
|
26
|
+
#
|
27
|
+
# Collection name: dc_temp : Collection used for temporary saving of any models data
|
28
|
+
#
|
29
|
+
# dc_temp collection has only two fields. Key and Data hash. Data must be populated
|
30
|
+
# prior to for display best in dc_new_record callback.
|
31
|
+
#
|
32
|
+
########################################################################
|
33
|
+
class DcTemp
|
34
|
+
include Mongoid::Document
|
35
|
+
include Mongoid::Timestamps
|
36
|
+
field :key, type: String
|
37
|
+
field :data, type: Hash, default: {}
|
38
|
+
field :active, type: Time, default: Time.now
|
39
|
+
|
40
|
+
index key: 1
|
41
|
+
|
42
|
+
########################################################################
|
43
|
+
# Initilize object
|
44
|
+
########################################################################
|
45
|
+
def initialize(parms = {})
|
46
|
+
super()
|
47
|
+
parms.stringify_keys!
|
48
|
+
self.key = parms.delete('key') if parms['key']
|
49
|
+
self.key = parms.delete('active') if parms['active']
|
50
|
+
parms.each { |k, value| self.data[k] = value }
|
51
|
+
end
|
52
|
+
|
53
|
+
########################################################################
|
54
|
+
#
|
55
|
+
########################################################################
|
56
|
+
def __id()
|
57
|
+
self.data['id']
|
58
|
+
end
|
59
|
+
|
60
|
+
########################################################################
|
61
|
+
# Respond_to should always return true.
|
62
|
+
########################################################################
|
63
|
+
def respond_to?(a=nil,b=nil)
|
64
|
+
true
|
65
|
+
end
|
66
|
+
|
67
|
+
########################################################################
|
68
|
+
# Redefine send method. Send is used to assign or access value by cmsedit controller.
|
69
|
+
########################################################################
|
70
|
+
def send(field,value=nil)
|
71
|
+
return super(field) if field.is_a? Symbol
|
72
|
+
field = field.to_s
|
73
|
+
if field.match('=')
|
74
|
+
field.chomp!('=')
|
75
|
+
self.data[field] = value
|
76
|
+
else
|
77
|
+
self.data[field]
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
########################################################################
|
82
|
+
# Redefine [] method to act similar as send method
|
83
|
+
########################################################################
|
84
|
+
def [](field)
|
85
|
+
self.data[field.to_s]
|
86
|
+
end
|
87
|
+
|
88
|
+
########################################################################
|
89
|
+
# Redefine [] method to act similar as send method
|
90
|
+
########################################################################
|
91
|
+
def []=(field, value)
|
92
|
+
self.data[field.to_s] = value
|
93
|
+
end
|
94
|
+
|
95
|
+
########################################################################
|
96
|
+
# For debugging purposes
|
97
|
+
########################################################################
|
98
|
+
def to_s
|
99
|
+
"DcTemp: @key=#{self.key} @data=#{self.data.inspect}"
|
100
|
+
end
|
101
|
+
|
102
|
+
########################################################################
|
103
|
+
# Method missing will return value if value defined by m parameter is saved to
|
104
|
+
# @internals array or will save field value to @internals hash if m matches '='.
|
105
|
+
########################################################################
|
106
|
+
def method_missing(m, *args, &block) #:nodoc:
|
107
|
+
m = m.to_s
|
108
|
+
if m.match('=')
|
109
|
+
m.chomp!('=')
|
110
|
+
self.data[m] = args.first
|
111
|
+
else
|
112
|
+
self.data[m]
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
########################################################################
|
117
|
+
# Remove all documents with specified key from dc_temp collection
|
118
|
+
########################################################################
|
119
|
+
def self.clear(key)
|
120
|
+
self.where(key: key).delete
|
121
|
+
end
|
122
|
+
|
123
|
+
########################################################################
|
124
|
+
# Prepare dc_temp for data. It first checks if data associated with the key is to
|
125
|
+
# be deleted and then yields block code.
|
126
|
+
#
|
127
|
+
# Returns: Query for the data associated with the key
|
128
|
+
########################################################################
|
129
|
+
def self.prepare(key:, clear: nil)
|
130
|
+
unless %w(no false 0).include?(clear.to_s.strip.downcase)
|
131
|
+
self.clear(key)
|
132
|
+
yield
|
133
|
+
end
|
134
|
+
self.where(key: key)
|
135
|
+
end
|
136
|
+
|
137
|
+
end
|