dom-rb 0.1.2 → 0.1.3

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
  SHA1:
3
- metadata.gz: 4094aecbbafbb4c2a1dd1ef9fdc792654ee33ae6
4
- data.tar.gz: e559c378becd4619c814853b4450ecbcb79a8d1b
3
+ metadata.gz: a45ec1b37800175c10637af2132159e857134034
4
+ data.tar.gz: 686553f3bb65c377133c71f81a81f9934f8625ae
5
5
  SHA512:
6
- metadata.gz: cd0d3f612e5d765e75aae4739cfb80a9a95520b58222062f4d498b3a674da96e1ecff2d64afa8eb507f18f17cf1c671226dc53971db6f51e73ccbb1450c913f0
7
- data.tar.gz: 56c46eff3826114066929e5ffa50e0176c3716735a182d253649c78f85e76866b99970073d547b6cf7067f64fd7c52d94ff0c5073e294ec945310aa8ab47db7a
6
+ metadata.gz: 1b2f054907109c9a38fd298a89df5c5678ce7cedac4fb280446bd7df3187dd0eba7f3f827efd264c0ac8cca76e1fa40786bccf8a9b7cb41a382cdc8fa9c18739
7
+ data.tar.gz: 8e6acd49fec6b390b79fbc8c2d7e62e90f8a0a59d2ee8730881a8f56729d061373b8e616060411169e65db37890abd0a4b0017f3278fc0be95ba735b277b9a79
@@ -1,4 +1,5 @@
1
1
  require 'opal-browser'
2
+ require 'dom/debug'
2
3
 
3
4
  # Add binding management to Browser::DOM::Node
4
5
 
@@ -25,6 +26,8 @@ end
25
26
  class Browser
26
27
  class DOM
27
28
  class Node
29
+ include CSR::DOM::Debug
30
+
28
31
  def as_native
29
32
  @native
30
33
  end
@@ -33,7 +36,7 @@ class Browser
33
36
  def check_jquery
34
37
  %x(
35
38
  if (typeof jQuery === 'undefined') {
36
- throw new Error('Bootstrap\'s JavaScript requires jQuery')
39
+ throw new Error('Bootstrap\'s JavaScript requires jQuery');
37
40
  }
38
41
  )
39
42
  end
@@ -41,7 +44,7 @@ class Browser
41
44
  def check_bootstrap
42
45
  %x(
43
46
  if (typeof($.fn.tooltip) === 'undefined') {
44
- throw new Error('Bootstrap.js not loaded')
47
+ throw new Error('Bootstrap.js not loaded');
45
48
  }
46
49
  )
47
50
  end
@@ -57,13 +60,30 @@ class Browser
57
60
  # 4. 'destroy'
58
61
  # see http://getbootstrap.com/javascript/#tooltips
59
62
  def tooltip(arg=nil)
63
+ if String === arg
64
+ arg = {
65
+ title: arg,
66
+ trigger: 'hover focus',
67
+ }
68
+ end
69
+ debug 0, ->{[__FILE__, __LINE__, __method__, "arg=#{arg}"]}
60
70
  check_bootstrap
71
+ debug 0, ->{[__FILE__, __LINE__, __method__, "@native=#{@native}"]}
61
72
  `$(#@native).tooltip(#{arg.to_n})`
73
+ debug 0, ->{[__FILE__, __LINE__, __method__]}
62
74
  end
63
75
 
64
76
  def popover(arg=nil)
77
+ debug 0, ->{[__FILE__, __LINE__, __method__]}
78
+ if String === arg
79
+ arg = {
80
+ title: arg,
81
+ trigger: 'hover focus',
82
+ }
83
+ end
65
84
  check_bootstrap
66
85
  `$(#@native).popover(#{arg.to_n})`
86
+ debug 0, ->{[__FILE__, __LINE__, __method__]}
67
87
  end
68
88
 
69
89
  def bindings=(bindings)
@@ -19,6 +19,7 @@ module CSR
19
19
  end
20
20
 
21
21
  def div(attributes: nil, content: nil)
22
+ debug 0, ->{[ __FILE__, __LINE__, __method__]}
22
23
  tag(:div, attributes: attributes, content: content)
23
24
  end
24
25
 
@@ -27,28 +28,40 @@ module CSR
27
28
  # Any attributes or content which is a Proc will be
28
29
  # resolved by proc.call.
29
30
  def tag(name, attributes: nil, content: nil)
30
- # self.debug_level = 3
31
+ debug 3, ->{[ __FILE__, __LINE__, __method__]}
32
+ debug 3, ->{[ __FILE__, __LINE__, __method__, "tag=#{name} attributes=#{attributes} content=#{content}" ]}
31
33
  attributes = attributes ? attributes : {}
32
34
  namespace = attributes[:namespace]
35
+ debug 3, ->{[ __FILE__, __LINE__, __method__]}
33
36
  element = document.create_element(name, {namespace: namespace})
37
+ debug 3, ->{[ __FILE__, __LINE__, __method__]}
34
38
  id = attributes.delete(:id) || attributes.delete('id')
39
+ debug 3, ->{[ __FILE__, __LINE__, __method__]}
35
40
  if id
41
+ debug 3, ->{[ __FILE__, __LINE__, __method__]}
36
42
  id = id.call if Proc === id
43
+ debug 3, ->{[ __FILE__, __LINE__, __method__]}
37
44
  element.id = id
38
45
  end
39
46
  bindings = []
47
+ debug 3, ->{[ __FILE__, __LINE__, __method__]}
40
48
  attributes.each do |key, value|
49
+ debug 3, ->{[ __FILE__, __LINE__, __method__, "key=#{key} value=#{value}"]}
41
50
  if key == :style
51
+ debug 3, ->{[ __FILE__, __LINE__, __method__]}
42
52
  value = resolve_value(element, value, bindings, id, :style, name)
43
53
  if value
44
54
  value = normalize_style(value)
45
55
  element.style(value)
46
56
  end
57
+ debug 3, ->{[ __FILE__, __LINE__, __method__]}
47
58
  elsif key[0,2] == 'on'
48
59
  # event stuff is in browser/event/base.rb
60
+ debug 3, ->{[ __FILE__, __LINE__, __method__]}
49
61
  event = key[2..-1]
50
62
  element.on(event, &value)
51
63
  else
64
+ debug 3, ->{[ __FILE__, __LINE__, __method__]}
52
65
  value = resolve_value(element, value, bindings, id, key, name)
53
66
  if value
54
67
  key = sanitize_attribute(key)
@@ -56,14 +69,21 @@ module CSR
56
69
  end
57
70
  end
58
71
  end
72
+ debug 3, ->{[ __FILE__, __LINE__, __method__]}
59
73
  content = resolve_value(element, content, bindings, id, :content, name)
74
+ debug 3, ->{[ __FILE__, __LINE__, __method__]}
60
75
  if content
76
+ debug 3, ->{[ __FILE__, __LINE__, __method__]}
61
77
  content = sanitize_content(content)
78
+ debug 3, ->{[ __FILE__, __LINE__, __method__]}
62
79
  element << content
63
80
  end
81
+ debug 3, ->{[ __FILE__, __LINE__, __method__]}
64
82
  if bindings
83
+ debug 3, ->{[ __FILE__, __LINE__, __method__]}
65
84
  element.bindings = bindings
66
85
  end
86
+ debug 3, ->{[ __FILE__, __LINE__, __method__, "element=#{element}"]}
67
87
  element
68
88
  end
69
89
 
@@ -72,7 +92,7 @@ module CSR
72
92
  end
73
93
 
74
94
  def resolve_value(element, value, bindings, id, attr, tag_name)
75
- debug 1, ->{[ __FILE__, __LINE__, __method__, "tag=#{tag_name} value=#{value} bindings=#{bindings} id=#{id} attr=#{attr}" ]}
95
+ debug 2, ->{[ __FILE__, __LINE__, __method__, "tag=#{tag_name} value=#{value} bindings=#{bindings} id=#{id} attr=#{attr}" ]}
76
96
  result = case value
77
97
  when BoundProc
78
98
  # debug 1, ->{[ __FILE__, __LINE__, __method__, "BoundProc===value" ]}
@@ -95,7 +115,7 @@ module CSR
95
115
  # debug 1, ->{[ __FILE__, __LINE__, __method__, "value=#{value}" ]}
96
116
  value
97
117
  end
98
- debug 1, ->{[ __FILE__, __LINE__, __method__, "result=#{result}" ]}
118
+ debug 2, ->{[ __FILE__, __LINE__, __method__, "result=#{result}" ]}
99
119
  result
100
120
  end
101
121
 
@@ -1,4 +1,5 @@
1
1
  require 'dom/builder/base'
2
+ require 'dom/debug'
2
3
 
3
4
  # adds helper to CSR::DOM::Builder
4
5
 
@@ -6,8 +7,10 @@ module CSR
6
7
  module DOM
7
8
  module Builder
8
9
  module_function
10
+ include CSR::DOM::Debug
9
11
 
10
- def icon(name, callback: nil, attributes: nil)
12
+ def icon(name, callback: nil, attributes: nil, tooltip: nil, popover: nil)
13
+ debug 0, ->{[ __FILE__, __LINE__, __method__, "name=#{name} callback=#{callback} attributes=#{attributes} tooltip=#{tooltip}" ]}
11
14
  style = {
12
15
  text_align: 'center',
13
16
  color: 'inherit',
@@ -30,13 +33,22 @@ module CSR
30
33
  }.merge(
31
34
  callback ? { onclick: callback } : {}
32
35
  )
33
- tag(
36
+ debug 0, ->{[ __FILE__, __LINE__, __method__, "attributes=#{attributes}" ]}
37
+ icon = tag(
34
38
  :span,
35
39
  attributes: attributes
36
40
  )
41
+ debug 0, ->{[ __FILE__, __LINE__, __method__, "icon=#{icon}" ]}
42
+ if tooltip
43
+ icon.tooltip(tooltip)
44
+ elsif popover
45
+ icon.popover(popover)
46
+ end
47
+ debug 0, ->{[ __FILE__, __LINE__, __method__, "icon=#{icon}" ]}
48
+ icon
37
49
  end
38
50
 
39
- def icon_with_anchor(icon_name, href, icon_attributes: nil, anchor_attributes: nil)
51
+ def icon_with_anchor(icon_name, href, icon_attributes: nil, anchor_attributes: nil, tooltip: nil, popover: nil)
40
52
  attributes = { href: href }
41
53
  if anchor_attributes
42
54
  attributes = anchor_attributes.merge(attributes)
@@ -44,11 +56,11 @@ module CSR
44
56
  tag(
45
57
  :a,
46
58
  attributes: attributes,
47
- content: icon(icon_name, attributes: icon_attributes)
59
+ content: icon(icon_name, attributes: icon_attributes, tooltip: tooltip, popover: popover)
48
60
  )
49
61
  end
50
62
 
51
- def plus_sign_icon_anchor(href, icon_attributes: nil, anchor_attributes: nil)
63
+ def plus_sign_icon_anchor(href, icon_attributes: nil, anchor_attributes: nil, tooltip: nil, popover: nil)
52
64
  _icon_attributes = {
53
65
  style: {
54
66
  color: 'lightgreen',
@@ -62,39 +74,49 @@ module CSR
62
74
  :plus_sign,
63
75
  href,
64
76
  icon_attributes: _icon_attributes,
65
- anchor_attributes: anchor_attributes
77
+ anchor_attributes: anchor_attributes,
78
+ tooltip: tooltip,
79
+ popover: popover
66
80
  )
67
81
  end
68
82
 
69
- def remove_sign_icon(callback = nil)
83
+ def remove_sign_icon(callback: nil, tooltip: nil, popover: nil)
70
84
  icon(
71
85
  :remove_sign,
72
86
  callback: callback,
73
- attributes: { style: {color: 'red'} }
87
+ attributes: { style: {color: 'red'} },
88
+ tooltip: tooltip,
89
+ popover: popover
74
90
  )
75
91
  end
76
92
 
77
- def refresh_icon(callback = nil)
93
+ def refresh_icon(callback: nil, tooltip: nil, popover: nil)
78
94
  icon(
79
95
  :refresh,
80
96
  callback: callback,
81
- attributes: { style: {color: 'inherit'} }
97
+ attributes: { style: {color: 'inherit'} },
98
+ tooltip: tooltip,
99
+ popover: popover
82
100
  )
83
101
  end
84
102
 
85
- def save_icon(callback = nil)
103
+ def save_icon(callback: nil, tooltip: nil, popover: nil)
86
104
  icon(
87
105
  :save,
88
106
  callback: callback,
89
- attributes: { style: {color: 'inherit'} }
107
+ attributes: { style: {color: 'inherit'} },
108
+ tooltip: tooltip,
109
+ popover: popover
90
110
  )
91
111
  end
92
112
 
93
- def hamburger_icon(callback = nil)
113
+ def hamburger_icon(callback: nil, tooltip: nil, popover: nil)
94
114
  icon(
95
115
  :menu_hamburger,
96
116
  callback: callback,
97
- attributes: { style: {color: 'inherit'} }
117
+ attributes: { style: {color: 'inherit'} },
118
+ tooltip: tooltip,
119
+ popover: popover
98
120
  )
99
121
  end
100
122
 
@@ -171,7 +193,8 @@ module CSR
171
193
  # argument attributes take precedence
172
194
  _icon_attributes = _icon_attributes.merge(icon_attributes)
173
195
  end
174
- drop_down_icon(icon: 'plus-sign',
196
+ drop_down_icon(
197
+ icon: 'plus-sign',
175
198
  items: items,
176
199
  menu_right: menu_right,
177
200
  icon_attributes: _icon_attributes,
@@ -190,7 +213,7 @@ module CSR
190
213
  )
191
214
  end
192
215
 
193
- def div_with_icon(callback, icon: nil, pull: nil, attributes: nil, content: nil, icon_style: {}, tooltip: nil, popover: nil)
216
+ def div_with_icon(callback: nil, icon: nil, pull: nil, attributes: nil, content: nil, icon_style: {}, tooltip: nil, popover: nil)
194
217
  icon ||= 'question-sign'
195
218
  pull ||= 'left'
196
219
  pull = pull.to_s
@@ -226,7 +249,7 @@ module CSR
226
249
  )
227
250
  end
228
251
 
229
- def div_with_sort_icon(callback, direction: 0, content: nil)
252
+ def div_with_sort_icon(callback: nil, direction: 0, content: nil)
230
253
  if direction != 0
231
254
  tag(
232
255
  :div,
@@ -261,42 +284,38 @@ module CSR
261
284
  end
262
285
  end
263
286
 
264
- def div_with_menu_up_down(callback, up: true, down: false, content: nil, pull: 'left')
265
- div_with_up_down_icon(callback, which: :menu, up: up, down: down, content: content, pull: pull)
287
+ def div_with_menu_up_down(callback: nil, up: true, down: false, content: nil, pull: 'left')
288
+ div_with_up_down_icon(callback: callback, which: :menu, up: up, down: down, content: content, pull: pull)
266
289
  end
267
290
 
268
- def div_with_collapse_up_down(callback, up: true, down: false, content: nil, pull: 'left')
269
- div_with_up_down_icon(callback, which: :collapse, up: up, down: down, content: content, pull: pull)
291
+ def div_with_collapse_up_down(callback: nil, up: true, down: false, content: nil, pull: 'left')
292
+ div_with_up_down_icon(callback: callback, which: :collapse, up: up, down: down, content: content, pull: pull)
270
293
  end
271
294
 
272
295
  # which can be :collapse or :menu (or string equivalents)
273
- def div_with_up_down_icon(callback, which: :menu, up: true, down: false, content: nil, pull: 'left')
296
+ def div_with_up_down_icon(callback: nil, which: :menu, up: true, down: false, content: nil, pull: 'left')
274
297
  up = up && !down
275
298
  pull = pull.to_s
276
299
  left = pull == 'left'
277
- tag(
278
- :div,
279
- attributes: {
280
- onclick: callback,
281
- style: { cursor: 'pointer' }
282
- },
283
- content: [
284
- tag(
285
- :span,
286
- attributes: {
287
- class: "glyphicon glyphicon-#{which}-#{up ? 'up' : 'down'} pull-#{pull}",
288
- style: {
289
- font_size: 'smaller',
290
- margin_top: '0.2em',
291
- margin_left: left ? '0.3em' : '0.5em',
292
- margin_right: left ? '0.5em' : '0.3em',
293
- vertical_align: 'middle',
294
- color: 'inherit',
295
- background_color: 'inherit',
296
- }
297
- }
298
- )
299
- ] + arrify(content)
300
+ icon_attributes = {
301
+ class: "glyphicon glyphicon-#{which}-#{up ? 'up' : 'down'} pull-#{pull}",
302
+ style: {
303
+ font_size: 'smaller',
304
+ margin_top: '0.2em',
305
+ margin_left: left ? '0.3em' : '0.5em',
306
+ margin_right: left ? '0.5em' : '0.3em',
307
+ vertical_align: 'middle',
308
+ color: 'inherit',
309
+ background_color: 'inherit',
310
+ }
311
+ }
312
+ icon = tag(
313
+ :span,
314
+ attributes: icon_attributes
315
+ )
316
+ div(
317
+ attributes: { onclick: callback, style: { cursor: 'pointer' } },
318
+ content: arrify(icon, content)
300
319
  )
301
320
  end
302
321
 
@@ -321,7 +340,12 @@ module CSR
321
340
  margin_right: '0.5em'
322
341
  }
323
342
  },
324
- content: drop_down_icon(icon: icon, items: items, menu_right: pull.to_s == 'right', menu_attributes: menu_attributes)
343
+ content: drop_down_icon(
344
+ icon: icon,
345
+ items: items,
346
+ menu_right: pull.to_s == 'right',
347
+ menu_attributes: menu_attributes
348
+ )
325
349
  ),
326
350
  content
327
351
  )
@@ -18,6 +18,14 @@ module CSR
18
18
  `StackTrace.get().then(callback).catch(errback)`
19
19
  end
20
20
 
21
+ def at_debug_level(l)
22
+ prev= debug_level
23
+ self.debug_level = 1
24
+ result = yield
25
+ self.debug_level = prev
26
+ result
27
+ end
28
+
21
29
  def debug_level=(l)
22
30
  @debug_level = l
23
31
  end
@@ -40,33 +40,33 @@ module CSR
40
40
 
41
41
  def initialize(**options)
42
42
  # self.debug_level = 1
43
- debug 1, ->{[ __FILE__, __LINE__, __method__, "options: #{options}" ]}
43
+ debug 2, ->{[ __FILE__, __LINE__, __method__, "options: #{options}" ]}
44
44
  @id = options[:id] || hex_id
45
45
  @rooted = false
46
46
  init_sections(options)
47
47
  @raw_columns = options[:columns]
48
48
  @context = options[:context]
49
- debug 1, ->{[ __FILE__, __LINE__, __method__]}
49
+ debug 2, ->{[ __FILE__, __LINE__, __method__]}
50
50
  init_caption(options)
51
- debug 1, ->{[ __FILE__, __LINE__, __method__]}
51
+ debug 2, ->{[ __FILE__, __LINE__, __method__]}
52
52
  init_css_style(options)
53
- debug 1, ->{[ __FILE__, __LINE__, __method__]}
53
+ debug 2, ->{[ __FILE__, __LINE__, __method__]}
54
54
  init_row_sources(options)
55
- debug 1, ->{[ __FILE__, __LINE__, __method__]}
55
+ debug 2, ->{[ __FILE__, __LINE__, __method__]}
56
56
  init_visibility
57
- debug 1, ->{[ __FILE__, __LINE__, __method__]}
57
+ debug 2, ->{[ __FILE__, __LINE__, __method__]}
58
58
  init_sorting(options)
59
- debug 1, ->{[ __FILE__, __LINE__, __method__]}
59
+ debug 2, ->{[ __FILE__, __LINE__, __method__]}
60
60
  init_accordion(options)
61
- debug 1, ->{[ __FILE__, __LINE__, __method__]}
61
+ debug 2, ->{[ __FILE__, __LINE__, __method__]}
62
62
  end
63
63
 
64
64
  def columns
65
65
  unless @columns
66
66
  @columns = if Proc === @raw_columns
67
- debug 1, ->{[ __FILE__, __LINE__, __method__, "@raw_columns=#{@raw_columns}"]}
67
+ debug 2, ->{[ __FILE__, __LINE__, __method__, "@raw_columns=#{@raw_columns}"]}
68
68
  c = @raw_columns.call
69
- debug 1, ->{[ __FILE__, __LINE__, __method__, "@columns=#{@columns}"]}
69
+ debug 2, ->{[ __FILE__, __LINE__, __method__, "@columns=#{@columns}"]}
70
70
  c
71
71
  else
72
72
  @raw_columns
@@ -80,52 +80,52 @@ module CSR
80
80
  end
81
81
 
82
82
  def root
83
- debug 1, ->{[ __FILE__, __LINE__, __method__ ]}
83
+ debug 2, ->{[ __FILE__, __LINE__, __method__ ]}
84
84
  @root ||= tag(
85
85
  :table,
86
86
  attributes: attributes,
87
87
  content: content
88
88
  )
89
89
  @rooted = true
90
- debug 1, ->{[ __FILE__, __LINE__, __method__, "@root=#{@root}" ]}
90
+ debug 2, ->{[ __FILE__, __LINE__, __method__, "@root=#{@root}" ]}
91
91
  @root
92
92
  end
93
93
 
94
94
  def attributes
95
- debug 1, ->{[ __FILE__, __LINE__, __method__ ]}
95
+ debug 2, ->{[ __FILE__, __LINE__, __method__ ]}
96
96
  result = {
97
97
  class: css,
98
98
  style: style
99
99
  }
100
- debug 1, ->{[ __FILE__, __LINE__, __method__, "result=#{result}" ]}
100
+ debug 2, ->{[ __FILE__, __LINE__, __method__, "result=#{result}" ]}
101
101
  result
102
102
  end
103
103
 
104
104
  def content
105
- debug 1, ->{[ __FILE__, __LINE__, __method__]}
105
+ debug 2, ->{[ __FILE__, __LINE__, __method__]}
106
106
  content = arrify(caption, sections)
107
107
  result = content.map {|e| e.root }
108
- debug 1, ->{[ __FILE__, __LINE__, __method__, "result=#{result}" ]}
108
+ debug 2, ->{[ __FILE__, __LINE__, __method__, "result=#{result}" ]}
109
109
  result
110
110
  end
111
111
 
112
112
  def caption
113
- debug 1, ->{[ __FILE__, __LINE__, __method__]}
113
+ debug 2, ->{[ __FILE__, __LINE__, __method__]}
114
114
  @caption ||= caption_content ? CSR::DOM::Table::Caption.new(self, caption_content) : nil
115
- debug 1, ->{[ __FILE__, __LINE__, __method__, "@caption=#{@caption}" ]}
115
+ debug 2, ->{[ __FILE__, __LINE__, __method__, "@caption=#{@caption}" ]}
116
116
  @caption
117
117
  end
118
118
 
119
119
  def sections
120
120
  @sections ||= section_ids.map do |id|
121
- debug 1, ->{[ __FILE__, __LINE__, __method__, "id=#{id}"]}
121
+ debug 2, ->{[ __FILE__, __LINE__, __method__, "id=#{id}"]}
122
122
  section = CSR::DOM::Table::Section.new(self, id)
123
- debug 1, ->{[ __FILE__, __LINE__, __method__, "section=#{section}"]}
123
+ debug 2, ->{[ __FILE__, __LINE__, __method__, "section=#{section}"]}
124
124
  section
125
125
  end.reject do |section|
126
126
  section.empty?
127
127
  end
128
- debug 1, ->{[ __FILE__, __LINE__, __method__, "@sections=#{@sections}"]}
128
+ debug 2, ->{[ __FILE__, __LINE__, __method__, "@sections=#{@sections}"]}
129
129
  @sections
130
130
  end
131
131
 
@@ -186,7 +186,7 @@ module CSR
186
186
  end
187
187
 
188
188
  def update
189
- # debug 1, ->{[ __FILE__, __LINE__, __method__ ]}
189
+ # debug 2, ->{[ __FILE__, __LINE__, __method__ ]}
190
190
  @root = nil
191
191
  init_sorting
192
192
  update_caption
@@ -200,7 +200,7 @@ module CSR
200
200
  def update_sections(ids = nil)
201
201
  ids = ids || section_ids
202
202
  ids.each do |id|
203
- # debug 1, ->{[ __FILE__, __LINE__, __method__, "id=#{id} " ]}
203
+ # debug 2, ->{[ __FILE__, __LINE__, __method__, "id=#{id} " ]}
204
204
  update_section(id)
205
205
  end
206
206
  end
@@ -228,7 +228,7 @@ module CSR
228
228
  # columns may be visible column indexes or Column's
229
229
  def update_row(section_id, source, columns = nil)
230
230
  section = section(section_id)
231
- debug 1, ->{[ __FILE__, __LINE__, __method__, "section_id=#{section_id} source=#{source} columns=#{columns} section=#{section}" ]}
231
+ debug 2, ->{[ __FILE__, __LINE__, __method__, "section_id=#{section_id} source=#{source} columns=#{columns} section=#{section}" ]}
232
232
  if section
233
233
  section.update_row(source, columns)
234
234
  end
@@ -238,7 +238,7 @@ module CSR
238
238
  # column may be visible column index or a Column
239
239
  def update_cell(section_id, source, column)
240
240
  section = section(section_id)
241
- debug 1, ->{[ __FILE__, __LINE__, __method__, "section_id=#{section_id} source=#{source} column=#{column} section=#{section}" ]}
241
+ debug 2, ->{[ __FILE__, __LINE__, __method__, "section_id=#{section_id} source=#{source} column=#{column} section=#{section}" ]}
242
242
  if section
243
243
  section.update_cell(source, column)
244
244
  end
@@ -257,7 +257,7 @@ module CSR
257
257
  section_ids.each do |id|
258
258
  @row_sources[id] = options[:"#{id}_rows"]
259
259
  end
260
- debug 1, ->{[ __FILE__, __LINE__, __method__, "@row_sources=#{@row_sources}" ]}
260
+ debug 2, ->{[ __FILE__, __LINE__, __method__, "@row_sources=#{@row_sources}" ]}
261
261
  end
262
262
 
263
263
  def init_accordion(options)
@@ -274,7 +274,7 @@ module CSR
274
274
  end
275
275
 
276
276
  def init_sorting(options = nil)
277
- # debug 1, ->{[ __FILE__, __LINE__, __method__ ]}
277
+ # debug 2, ->{[ __FILE__, __LINE__, __method__ ]}
278
278
  if options
279
279
  @initial_sort_column_id = options[:sort_column_id]
280
280
  @initial_sort_order = options[:sort_order]
@@ -287,11 +287,11 @@ module CSR
287
287
  if @sort_column_id
288
288
  columns.each { |c| sort_orders[c.id] = c.id == sort_column_id ? @sort_order : 1 }
289
289
  end
290
- # debug 1, ->{[ __FILE__, __LINE__, __method__, "@sort_column_id=#{@sort_column_id}" ]}
290
+ # debug 2, ->{[ __FILE__, __LINE__, __method__, "@sort_column_id=#{@sort_column_id}" ]}
291
291
  end
292
292
 
293
293
  def update_sorting(sort_column_id)
294
- # debug 1, ->{[ __FILE__, __LINE__, __method__, "column_id=#{column_id}" ]}
294
+ # debug 2, ->{[ __FILE__, __LINE__, __method__, "column_id=#{column_id}" ]}
295
295
  if @sort_column_id == sort_column_id
296
296
  sort_orders[@sort_column_id] *= -1
297
297
  else
@@ -102,7 +102,7 @@ module CSR
102
102
  if head? && column.sort?
103
103
  debug 1, ->{[ __FILE__, __LINE__, __method__, "section.id=#{@section.id} row_index=#{@index} column.id=#{column.id} content=#{content}" ]}
104
104
  content = div_with_sort_icon(
105
- column.sort_callback,
105
+ callback: column.sort_callback,
106
106
  direction: @table.sort_column_id == column.id ? @table.sort_order : 0,
107
107
  content: content
108
108
  )
@@ -125,11 +125,10 @@ module CSR
125
125
  unless @row_sources
126
126
  # debug 1, ->{[ __FILE__, __LINE__, __method__, "@id=#{@id}" ]}
127
127
  source = @table.row_source(@id)
128
+ source = source.call if Proc === source
128
129
  @row_sources = case source
129
130
  when Fixnum
130
131
  source.times.to_a
131
- when Proc
132
- source.call
133
132
  when NilClass
134
133
  []
135
134
  else
@@ -72,13 +72,13 @@ module CSR
72
72
  unless style.respond_to?(:to_h)
73
73
  raise TypeError, "#{__FILE__}[#{__LINE__}] : style #{style.class} must respond to :to_h"
74
74
  end
75
- debug 1, ->{[ __FILE__, __LINE__, __method__, "style=#{style}" ]}
75
+ # debug 1, ->{[ __FILE__, __LINE__, __method__, "style=#{style}" ]}
76
76
  result = {}
77
77
  style.to_h.each do |k,v|
78
78
  k = k.to_s.gsub('_', '-')
79
79
  result[k] = v.to_s
80
80
  end
81
- debug 1, ->{[ __FILE__, __LINE__, __method__, "result=#{result}" ]}
81
+ # debug 1, ->{[ __FILE__, __LINE__, __method__, "result=#{result}" ]}
82
82
  result
83
83
  end
84
84
  end
@@ -1,5 +1,5 @@
1
1
  module CSR
2
2
  module DOM
3
- VERSION = "0.1.2"
3
+ VERSION = "0.1.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dom-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Colin Gunn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-30 00:00:00.000000000 Z
11
+ date: 2016-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opal-browser