htmlgrid 1.0.5 → 1.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.
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ === 1.0.5 / 06.04.2012
2
+
3
+ * Updated onload problem against dojo 1.7
4
+ * Removed old version support
5
+
1
6
  === 1.0.5 / 23.02.2012
2
7
 
3
8
  * trying to get rid of htmlgrid.so
@@ -22,6 +22,7 @@
22
22
  # ywesee - intellectual capital connected, Winterthurerstrasse 52, CH-8006 Zuerich, Switzerland
23
23
  # htmlgrid@ywesee.com, www.ywesee.com/htmlgrid
24
24
  #
25
+ # Template -- htmlgrid -- 03.04.2012 -- yasaka@ywesee.com
25
26
  # Template -- htmlgrid -- 23.02.2012 -- mhatakeyama@ywesee.com
26
27
  # Template -- htmlgrid -- 23.10.2002 -- hwyss@ywesee.com
27
28
 
@@ -261,7 +262,11 @@ module HtmlGrid
261
262
  end
262
263
  def to_html(context)
263
264
  @grid.set_attributes(@attributes)
264
- super << @grid.to_html(context).force_encoding('utf-8')
265
+ if RUBY_VERSION > "1.9"
266
+ super << @grid.to_html(context).force_encoding('utf-8')
267
+ else
268
+ super << @grid.to_html(context)
269
+ end
265
270
  end
266
271
  private
267
272
  def back(model=@model, session=@session)
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  # encoding: utf-8
3
+ # HtmlGrid::DojoToolkit -- davaz.com -- 06.04.2012 -- yasaka@ywesee.com
3
4
  # HtmlGrid::DojoToolkit -- davaz.com -- 14.03.2006 -- mhuggler@ywesee.com
4
5
 
5
6
  require 'htmlgrid/component'
@@ -9,9 +10,8 @@ module HtmlGrid
9
10
  class Component
10
11
  @@msie_ptrn = /MSIE\s*(\d)/
11
12
  attr_accessor :dojo_tooltip
12
- def dojo_9?
13
- defined?(::DOJO_VERSION) && ::DOJO_VERSION >= '0.9'
14
- end
13
+ # FIXME
14
+ # DOJO_VERSION >= 1.7.0 only (removed old version support)
15
15
  def dojo_tag(widget, args={}, inner_html='')
16
16
  # <dojo:#{widget} ...> does not work on konqueror as of
17
17
  # 02.06.2006. In combination with DOJO_DEBUG = true it even
@@ -29,7 +29,7 @@ module HtmlGrid
29
29
  =end
30
30
  div = HtmlGrid::Div.new(@model, @session, self)
31
31
  div.set_attribute('dojoType', widget)
32
- lim = dojo_9? ? "," : ";"
32
+ lim = ","
33
33
  args.each { |key, value|
34
34
  if(value.is_a?(Array))
35
35
  value = value.join(lim)
@@ -38,7 +38,7 @@ module HtmlGrid
38
38
  }
39
39
  div.value = inner_html
40
40
  div
41
- end
41
+ end
42
42
  def dojo_title=(value)
43
43
  tooltip = HtmlGrid::Div.new(@model, @session, self)
44
44
  tooltip.value = value
@@ -49,38 +49,38 @@ module HtmlGrid
49
49
  @container.dojo_parse_widgets
50
50
  end
51
51
  end
52
- unless(method_defined?(:dojo_dynamic_html))
53
- alias :dojo_dynamic_html :dynamic_html
54
- def dynamic_html(context)
55
- html = ''
52
+ unless(method_defined?(:dojo_dynamic_html))
53
+ alias :dojo_dynamic_html :dynamic_html
54
+ def dynamic_html(context)
55
+ html = ''
56
56
  attrs = {
57
- 'dojoType' => dojo_9? ? 'ywesee.widget.Tooltip' : 'tooltip',
58
- 'connectId' => css_id,
59
- 'id' => "#{css_id}_widget",
60
- 'style' => 'display: none',
57
+ 'data-dojo-type' => 'ywesee.widget.Tooltip',
58
+ 'connectId' => css_id,
59
+ 'id' => "#{css_id}_widget",
60
+ 'style' => 'display: none',
61
61
  }
62
62
  unless((match = @@msie_ptrn.match(@session.user_agent)) \
63
63
  && match[1].to_i < 7)
64
64
  attrs.update({
65
- 'toggle' => 'fade',
66
- 'toggleDuration' => '500',
65
+ 'toggle' => 'fade',
66
+ 'toggleDuration' => '500',
67
67
  })
68
68
  end
69
- if(@dojo_tooltip.is_a?(String))
70
- attrs.store('href', dojo_9? ? "'#@dojo_tooltip'" : @dojo_tooltip)
71
- html << context.div(attrs)
72
- elsif(@dojo_tooltip.respond_to?(:to_html))
73
- @dojo_tooltip.attributes.update(attrs)
74
- html << @dojo_tooltip.to_html(context)
75
- end
76
- unless(html.empty? || dojo_parse_widgets)
77
- html << context.script('type' => 'text/javascript') {
78
- "djConfig.searchIds.push('#{css_id}')"
79
- }
80
- end
81
- dojo_dynamic_html(context) << html
82
- end
83
- end
69
+ if(@dojo_tooltip.is_a?(String))
70
+ attrs.store('href', "'#@dojo_tooltip'")
71
+ html << context.div(attrs)
72
+ elsif(@dojo_tooltip.respond_to?(:to_html))
73
+ @dojo_tooltip.attributes.update(attrs)
74
+ html << @dojo_tooltip.to_html(context)
75
+ end
76
+ unless(html.empty? || dojo_parse_widgets)
77
+ html << context.script('type' => 'text/javascript') {
78
+ "djConfig.searchIds.push('#{css_id}')"
79
+ }
80
+ end
81
+ dojo_dynamic_html(context) << html
82
+ end
83
+ end
84
84
  end
85
85
  module DojoToolkit
86
86
  module DojoTemplate
@@ -90,8 +90,8 @@ module HtmlGrid
90
90
  DOJO_PARSE_WIDGETS = true
91
91
  DOJO_PREFIX = []
92
92
  DOJO_REQUIRE = []
93
- def dynamic_html_headers(context)
94
- headers = super
93
+ def dynamic_html_headers(context)
94
+ headers = super
95
95
  encoding = self.class::DOJO_ENCODING
96
96
  encoding ||= if RUBY_VERSION >= '1.9'
97
97
  Encoding.default_external
@@ -99,69 +99,72 @@ module HtmlGrid
99
99
  $KCODE == 'UTF8' ? 'UTF-8' : 'ISO-8859-1'
100
100
  end
101
101
  dojo_path = @lookandfeel.resource_global(:dojo_js)
102
- args = {
103
- 'type' => 'text/javascript',
104
- }
102
+ dojo_path ||= '/resources/dojo/dojo/dojo.js'
103
+ args = { 'type' => 'text/javascript'}
105
104
  headers << context.script(args.dup) {
106
105
  "djConfig = {
107
- isDebug: #{self.class::DOJO_DEBUG},
108
- parseWidgets: #{dojo_parse_widgets},
106
+ isDebug: #{self.class::DOJO_DEBUG},
107
+ parseWidgets: #{dojo_parse_widgets},
109
108
  preventBackButtonFix: #{!self.class::DOJO_BACK_BUTTON},
110
- bindEncoding: '#{encoding}',
111
- searchIds: [],
112
- urchin: ''
109
+ bindEncoding: '#{encoding}',
110
+ searchIds: [],
111
+ urchin: ''
113
112
  };"
114
113
  }
115
- if(dojo_9?)
116
- dojo_path ||= '/resources/dojo/dojo/dojo.js'
117
- config = [ "parseOnLoad:true",
118
- "isDebug:#{self.class::DOJO_DEBUG}",
119
- "preventBackButtonFix:#{!self.class::DOJO_BACK_BUTTON}",
120
- "bindEncoding:'#{encoding}'",
121
- "searchIds:[]",
122
- "urchin:''" ].join(',')
123
- args.store('djConfig', config)
124
- else
125
- dojo_path ||= '/resources/dojo/dojo.js'
114
+ packages = ""
115
+ unless(self.class::DOJO_PREFIX.empty?)
116
+ packages = self.class::DOJO_PREFIX.collect { |prefix, path|
117
+ "{ name: '#{prefix}', location: '#{path}' }"
118
+ }.join(",")
126
119
  end
127
- args.store('src', dojo_path)
128
- headers << context.script(args)
129
- unless(self.class::DOJO_PREFIX.empty?)
130
- register = dojo_9? ? 'registerModulePath' : 'setModulePrefix'
131
- args = {
132
- 'type' => 'text/javascript',
133
- }
134
- headers << context.script(args) {
135
- self.class::DOJO_PREFIX.collect { |prefix, path|
136
- "dojo.#{register}('#{prefix}', '#{path}');"
137
- }.join
138
- }
139
- end
140
- args = {
141
- 'type' => 'text/javascript',
142
- }
143
- headers << context.script(args) {
144
- script = ''
145
- self.class::DOJO_REQUIRE.each { |req|
146
- script << "dojo.require('#{req}');"
147
- }
148
- if(@dojo_onloads)
149
- @dojo_onloads.each { |onload|
150
- script << "dojo.addOnLoad(function() { #{onload} });"
151
- }
152
- end
153
- script
154
- }
155
- if(dojo_9?)
156
- dojo_dir = File.dirname(dojo_path)
157
- headers << context.style(:type => "text/css") { <<-EOS
158
- @import "#{File.join(dojo_dir, "/resources/dojo.css")}";
159
- @import "#{File.join(dojo_dir, "../dijit/themes/tundra/tundra.css")}";
160
- EOS
120
+ config = [
121
+ "parseOnLoad: true",
122
+ "isDebug: #{self.class::DOJO_DEBUG}",
123
+ "preventBackButtonFix: #{!self.class::DOJO_BACK_BUTTON}",
124
+ "bindEncoding: '#{encoding}'",
125
+ "searchIds: []",
126
+ "async: true",
127
+ "urchin: ''",
128
+ "has: {
129
+ 'dojo-firebug': #{self.class::DOJO_DEBUG},
130
+ 'dojo-debug-messages': #{self.class::DOJO_DEBUG}
131
+ }",
132
+ "packages: [ #{packages} ]"
133
+ ].join(',')
134
+ args.store('data-dojo-config', config)
135
+ args.store('src', dojo_path)
136
+
137
+ headers << context.script(args)
138
+ args = { 'type' => 'text/javascript' }
139
+ headers << context.script(args) {
140
+ script = ''
141
+ self.class::DOJO_REQUIRE.each { |req|
142
+ script << "'#{req}',"
161
143
  }
162
- end
144
+ if(@dojo_onloads)
145
+ onloads = ''
146
+ @dojo_onloads.each { |onload|
147
+ onloads << "#{onload}\n"
148
+ }
149
+ script =
150
+ "require([#{script.chomp(',')}], function(ready, parser) {" \
151
+ "ready(function() {" \
152
+ "#{onloads}" \
153
+ "});" \
154
+ "});"
155
+ else
156
+ script = "require([#{script.chomp(',')}]);"
157
+ end
158
+ script
159
+ }
160
+ dojo_dir = File.dirname(dojo_path)
161
+ headers << context.style(:type => "text/css") { <<-EOS
162
+ @import "#{File.join(dojo_dir, "/resources/dojo.css")}";
163
+ @import "#{File.join(dojo_dir, "../dijit/themes/tundra/tundra.css")}";
164
+ EOS
165
+ }
163
166
  headers
164
- end
167
+ end
165
168
  def dojo_parse_widgets
166
169
  self.class::DOJO_PARSE_WIDGETS
167
170
  end
data/lib/htmlgrid/grid.rb CHANGED
@@ -25,7 +25,7 @@
25
25
  # HtmlGrid::Grid -- htmlgrid -- 23.02.2012 -- mhatakeyama@ywesee.com
26
26
  # HtmlGrid::Grid -- htmlgrid -- 12.01.2010 -- hwyss@ywesee.com
27
27
  begin
28
- VERSION = '1.0.5'
28
+ VERSION = '1.0.6'
29
29
  begin
30
30
  # for gem install
31
31
  ext_dir = File.expand_path('../../ext/htmlgrid', File.dirname(__FILE__))
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: htmlgrid
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-23 00:00:00.000000000 Z
12
+ date: 2012-04-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdoc
16
- requirement: &16451880 !ruby/object:Gem::Requirement
16
+ requirement: &12802620 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.10'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *16451880
24
+ version_requirements: *12802620
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: hoe
27
- requirement: &16451460 !ruby/object:Gem::Requirement
27
+ requirement: &12802200 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '2.13'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *16451460
35
+ version_requirements: *12802200
36
36
  description: HtmlGrid is a Html-ToolKit for Ruby Webframeworks.
37
37
  email:
38
38
  - mhatakeyama@ywesee.com, zdavatz@ywesee.com