rsence 2.0.0.6.pre → 2.0.0.7.pre

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.
@@ -15,143 +15,143 @@ require 'randgen'
15
15
 
16
16
  module RSence
17
17
 
18
- ## ValueManager provides automagic, transparent syncronization of values between client and server.
19
- class ValueManager
18
+ ## ValueManager provides automagic, transparent syncronization of values between client and server.
19
+ class ValueManager
20
20
 
21
- attr_accessor :randgen
21
+ attr_accessor :randgen
22
22
 
23
- # Initializes the member value handler objects.
24
- def initialize
23
+ # Initializes the member value handler objects.
24
+ def initialize
25
25
 
26
- @config = ::RSence.config[:session_conf]
26
+ @config = ::RSence.config[:session_conf]
27
27
 
28
- ## 'Unique' Random String generator for HValue keys (passed on to the client)
29
- @randgen = RandGen.new( @config[:key_length] )
28
+ ## 'Unique' Random String generator for HValue keys (passed on to the client)
29
+ @randgen = RandGen.new( @config[:key_length] )
30
30
 
31
- end
31
+ end
32
32
 
33
- # Re-constructs all stored values and sends them to the client
34
- def resend_session_values( msg )
33
+ # Re-constructs all stored values and sends them to the client
34
+ def resend_session_values( msg )
35
35
 
36
- # with disposable keys enabled,
37
- # sessions restored from cookie_key replace
38
- # all val_id:s with new ones
39
- if @config[:disposable_keys]
36
+ # with disposable keys enabled,
37
+ # sessions restored from cookie_key replace
38
+ # all val_id:s with new ones
39
+ if @config[:disposable_keys]
40
40
 
41
- # get the session values
42
- ses_values = msg.session[:values]
41
+ # get the session values
42
+ ses_values = msg.session[:values]
43
43
 
44
- # loop through the value id:s
45
- old_ids = ses_values[:by_id].keys
46
- old_ids.each do |old_id|
44
+ # loop through the value id:s
45
+ old_ids = ses_values[:by_id].keys
46
+ old_ids.each do |old_id|
47
47
 
48
- # make a new id
49
- new_id = @randgen.gen
50
- new_id = @randgen.gen while id_exists?( msg, new_id )
48
+ # make a new id
49
+ new_id = @randgen.gen
50
+ new_id = @randgen.gen while id_exists?( msg, new_id )
51
51
 
52
- # get the hvalue
53
- val_obj = ses_values[:by_id][old_id]
52
+ # get the hvalue
53
+ val_obj = ses_values[:by_id][old_id]
54
54
 
55
- # replace the old id in the hvalue itself
56
- val_obj.val_id = new_id
55
+ # replace the old id in the hvalue itself
56
+ val_obj.val_id = new_id
57
57
 
58
- # re-associate the value with the new id
59
- ses_values[:by_id][new_id] = val_obj
60
- ses_values[:by_id].delete(old_id)
58
+ # re-associate the value with the new id
59
+ ses_values[:by_id][new_id] = val_obj
60
+ ses_values[:by_id].delete(old_id)
61
61
 
62
- # replace the id in the unvalidated values (:check) array
63
- if ses_values[:check].include?(old_id)
64
- old_idx = ses_values[:check].index(old_id)
65
- ses_values[:check][old_idx] = new_id
66
- end
62
+ # replace the id in the unvalidated values (:check) array
63
+ if ses_values[:check].include?(old_id)
64
+ old_idx = ses_values[:check].index(old_id)
65
+ ses_values[:check][old_idx] = new_id
66
+ end
67
67
 
68
- # replace the id in the unsynchronized values (:sync) array
69
- if ses_values[:sync].include?(old_id)
70
- old_idx = ses_values[:sync].index(old_id)
71
- ses_values[:sync][old_idx] = new_id
72
- end
68
+ # replace the id in the unsynchronized values (:sync) array
69
+ if ses_values[:sync].include?(old_id)
70
+ old_idx = ses_values[:sync].index(old_id)
71
+ ses_values[:sync][old_idx] = new_id
72
+ end
73
73
 
74
- # tell the hvalue to send its client-side initialization
75
- val_obj.restore( msg )
74
+ # tell the hvalue to send its client-side initialization
75
+ val_obj.restore( msg )
76
76
 
77
- end
77
+ end
78
78
 
79
- ## keeping the id:s between page reloads is faster, but less tamper-proof
80
- else
81
- msg.session[:values][:by_id].each_key do |val_id|
82
- msg.session[:values][:by_id][val_id].restore( msg )
79
+ ## keeping the id:s between page reloads is faster, but less tamper-proof
80
+ else
81
+ msg.session[:values][:by_id].each_key do |val_id|
82
+ msg.session[:values][:by_id][val_id].restore( msg )
83
+ end
83
84
  end
84
- end
85
85
 
86
- end
86
+ end
87
87
 
88
- # Verifies an
89
- def id_exists?( msg, new_id )
90
- return msg.session[:values][:by_id].has_key?(new_id)
91
- end
88
+ # Verifies an
89
+ def id_exists?( msg, new_id )
90
+ return msg.session[:values][:by_id].has_key?(new_id)
91
+ end
92
92
 
93
- # Parses the json from the client and passes it on to associated values
94
- def xhr( msg, syncdata_str )
95
-
96
- # parses the json data sent by the client
97
- syncdata = JSON.parse( syncdata_str )
98
-
99
- session_values = msg.session[:values][:by_id]
100
- syncdata.each do |value_key, value_data|
101
- if session_values.has_key?( value_key )
102
- value_obj = session_values[ value_key ]
103
- value_obj.from_client( msg, value_data )
104
- else
105
- raise "HValue; unassigned value id! (#{val_id.inspect})"
93
+ # Parses the json from the client and passes it on to associated values
94
+ def xhr( msg, syncdata_str )
95
+
96
+ # parses the json data sent by the client
97
+ syncdata = JSON.parse( syncdata_str )
98
+
99
+ session_values = msg.session[:values][:by_id]
100
+ syncdata.each do |value_key, value_data|
101
+ if session_values.has_key?( value_key )
102
+ value_obj = session_values[ value_key ]
103
+ value_obj.from_client( msg, value_data )
104
+ else
105
+ raise "HValue; unassigned value id! (#{val_id.inspect})"
106
+ end
106
107
  end
107
108
  end
108
- end
109
109
 
110
- # Sets a value by id
111
- def set( msg, val_id, val_data )
110
+ # Sets a value by id
111
+ def set( msg, val_id, val_data )
112
112
 
113
- # get the session data of this session
114
- session_values = msg.session[:values][:by_id]
113
+ # get the session data of this session
114
+ session_values = msg.session[:values][:by_id]
115
115
 
116
- # tell the value of that id that it has new data
117
- val_obj = session_values[ val_id ]
118
- val_obj.set( msg, val_data )
119
- end
116
+ # tell the value of that id that it has new data
117
+ val_obj = session_values[ val_id ]
118
+ val_obj.set( msg, val_data )
119
+ end
120
120
 
121
- # Validates the new data of all client-side-modified session-bound values
122
- def validate( msg )
121
+ # Validates the new data of all client-side-modified session-bound values
122
+ def validate( msg )
123
123
 
124
- # get the session data of this session
125
- session_values = msg.session[:values]
124
+ # get the session data of this session
125
+ session_values = msg.session[:values]
126
126
 
127
- # loop through un-validated values and validate them
128
- check_ids = session_values[:check]
129
- check_ids.each do |check_id|
130
- session_values[:by_id][check_id].tell( msg )
131
- end
127
+ # loop through un-validated values and validate them
128
+ check_ids = session_values[:check]
129
+ check_ids.each do |check_id|
130
+ session_values[:by_id][check_id].tell( msg )
131
+ end
132
132
 
133
- end
133
+ end
134
134
 
135
- # Sends the new data of all server-side-modified session-bound values to the client
136
- def sync_client( msg )
135
+ # Sends the new data of all server-side-modified session-bound values to the client
136
+ def sync_client( msg )
137
137
 
138
- # get the session data of this session
139
- session_values = msg.session[:values]
138
+ # get the session data of this session
139
+ session_values = msg.session[:values]
140
140
 
141
- # go through the currently un-synced values
142
- session_values[:sync].size.times do |count_num|
141
+ # go through the currently un-synced values
142
+ session_values[:sync].size.times do |count_num|
143
143
 
144
- # the sync-array will return the value id
145
- val_id = session_values[:sync].shift
144
+ # the sync-array will return the value id
145
+ val_id = session_values[:sync].shift
146
146
 
147
- # tell the value of that id to report its state to the client
148
- session_values[:by_id][val_id].to_client( msg )
147
+ # tell the value of that id to report its state to the client
148
+ session_values[:by_id][val_id].to_client( msg )
149
149
 
150
- end
150
+ end
151
151
 
152
- end
152
+ end
153
153
 
154
- end
154
+ end
155
155
 
156
156
 
157
157
  end
@@ -6,11 +6,7 @@
6
6
  # with this software package. If not, contact licensing@riassence.com
7
7
  ##
8
8
 
9
- =begin
10
- IndexHtmlPlugin is the servlet plugin that is responsible for initializing the "boot-strap page".
11
-
12
- It just loads, caches and sends the page for now.
13
- =end
9
+ # IndexHtmlPlugin is the servlet plugin that is responsible for initializing the "boot-strap page".
14
10
  class IndexHtmlPlugin < Servlet
15
11
 
16
12
  def match( uri, method )
@@ -31,17 +27,11 @@ class IndexHtmlPlugin < Servlet
31
27
  end
32
28
 
33
29
  def open
34
- #@deps = []
35
30
  @index_html_src = file_read( ::RSence.config[:index_html][:index_tmpl] )
36
- # loading_gif = File.read( File.join( @path, 'img/loading.gif' ) )
37
- # @loading_gif_id = @plugins[:ticketservices].serve_rsrc( loading_gif, 'image/gif' )
38
- # riassence_gif = File.read( File.join( @path, 'img/riassence.gif' ) )
39
- # @riassence_gif_id = $TICKETSERVE.serve_rsrc( riassence_gif, 'image/gif' )
40
31
  render_index_html
41
32
  end
42
33
 
43
34
  def close
44
- # $TICKETSERVE.del_rsrc( @riassence_gif_id )
45
35
  @plugins[:ticket].del_rsrc( @loading_gif_id )
46
36
  end
47
37
 
@@ -50,8 +40,6 @@ class IndexHtmlPlugin < Servlet
50
40
  index_html = @index_html_src.clone
51
41
 
52
42
  index_html.gsub!('__DEFAULT_TITLE__',::RSence.config[:index_html][:title])
53
- # @index_html.gsub!('__LOADING_GIF_ID__',@loading_gif_id)
54
- # @index_html.gsub!('__RIASSENCE_GIF_ID__',@riassence_gif_id)
55
43
  client_rev = @plugins[:client_pkg].client_cache.client_rev
56
44
  index_html.gsub!('__CLIENT_REV__',client_rev)
57
45
  index_html.gsub!('__CLIENT_BASE__',File.join(::RSence.config[:broker_urls][:h],client_rev))
@@ -64,16 +52,6 @@ class IndexHtmlPlugin < Servlet
64
52
  end
65
53
  index_html.gsub!('__SCRIPT_DEPS__',deps_src)
66
54
 
67
- # @index_gzip = GZString.new('')
68
- # gzwriter = Zlib::GzipWriter.new( @index_gzip, Zlib::BEST_SPEED )
69
- # gzwriter.write( @index_html )
70
- # gzwriter.close
71
-
72
- # @content_size = @index_html.size
73
- # @content_size_gzip = @index_gzip.size
74
-
75
- # @index_date = httime( Time.now )
76
-
77
55
  return index_html
78
56
  end
79
57
 
@@ -97,29 +75,20 @@ class IndexHtmlPlugin < Servlet
97
75
  )
98
76
  buffer += msg.value_buffer
99
77
  msg.buffer.each do |buffer_item|
100
- # if ::RSence.config[:]
101
- # buffer.push( "qP(function(){#{buffer_item};console.log(#{buffer_item.to_json});});")
102
78
  buffer.push( "qP(function(){#{buffer_item};});")
103
79
  end
104
80
  ses_key = msg.ses_key
105
- # buffer = [ msg.ses_key, msg.value_buffer, msg.buffer ]
106
81
  end
107
82
  buffer.unshift( "COMM.Session.newKey(#{ses_key.to_json});" )
108
83
  buffer.unshift( "COMM.Session.sha_key=#{sha_key.to_json};" )
109
84
  buffer.unshift( "COMM.Session.req_num=#{req_num};" )
110
- # buffer.each {|b|puts b}
111
- # require 'pp'; pp buffer
112
85
  index_html = render_index_html
113
86
  return index_html.gsub('__STARTUP_SEQUENCE__', buffer.join("\n") )
114
87
  end
115
88
 
116
89
  ## Outputs a static web page.
117
90
  def get( request, response, ses )
118
- # puts "index_html"
119
- # index_html = session_index_html( request, response )
120
91
  index_html = render_index_html
121
- # index_html = index_html.encode(Encoding::BINARY)
122
-
123
92
  support_gzip = (request.header.has_key?('accept-encoding') and \
124
93
  request.header['accept-encoding'].include?('gzip')) \
125
94
  and not ::RSence.config[:no_gzip]
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsence
3
3
  version: !ruby/object:Gem::Version
4
- hash: 961916140
4
+ hash: 961916136
5
5
  prerelease: true
6
6
  segments:
7
7
  - 2
8
8
  - 0
9
9
  - 0
10
- - 6
10
+ - 7
11
11
  - pre
12
- version: 2.0.0.6.pre
12
+ version: 2.0.0.7.pre
13
13
  platform: ruby
14
14
  authors:
15
15
  - Riassence Inc.
@@ -17,7 +17,7 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2010-05-17 00:00:00 +03:00
20
+ date: 2010-05-18 00:00:00 +03:00
21
21
  default_executable: rsence
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency