rhodes 2.0.0.beta7 → 2.0.0.beta8

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.
Files changed (78) hide show
  1. data/CHANGELOG +20 -1
  2. data/bin/rhodes-setup +6 -2
  3. data/lib/extensions/digest/ext/Rakefile +2 -2
  4. data/lib/framework/rho/render.rb +2 -0
  5. data/lib/framework/rho/rho.rb +159 -95
  6. data/lib/framework/rho/rhoapplication.rb +24 -5
  7. data/lib/framework/rhodes.rb +1 -1
  8. data/lib/framework/rhom/rhom_model.rb +32 -23
  9. data/lib/framework/rhom/rhom_object_factory.rb +2 -2
  10. data/lib/rhodes.rb +1 -1
  11. data/platform/android/Rhodes/jni/src/callbacks.cpp +8 -1
  12. data/platform/android/Rhodes/jni/src/mapview.cpp +4 -1
  13. data/platform/android/Rhodes/jni/src/sslimpl.cpp +5 -1
  14. data/platform/android/Rhodes/jni/src/webview.cpp +3 -1
  15. data/platform/android/Rhodes/src/com/rhomobile/rhodes/NativeBar.java +3 -2
  16. data/platform/android/Rhodes/src/com/rhomobile/rhodes/NativeLibraries.java +2 -2
  17. data/platform/android/Rhodes/src/com/rhomobile/rhodes/NavBar.java +1 -2
  18. data/platform/android/Rhodes/src/com/rhomobile/rhodes/Rhodes.java +1 -1
  19. data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocation.java +3 -1
  20. data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocationImpl.java +0 -1
  21. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/MainView.java +4 -1
  22. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +24 -6
  23. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/TabbedMainView.java +7 -2
  24. data/platform/android/build/android.rake +11 -38
  25. data/platform/android/build/androidcommon.rb +50 -2
  26. data/platform/android/build/librhocommon_build.files +1 -0
  27. data/platform/android/build/libsqlite_build.files +1 -0
  28. data/platform/bb/rhodes/platform/5.0/com/rho/BrowserAdapter5.java +2 -1
  29. data/platform/bb/rhodes/src/com/rho/BrowserAdapter.java +1 -5
  30. data/platform/bb/rhodes/src/com/rho/net/NetworkAccess.java +3 -6
  31. data/platform/bb/rhodes/src/com/rho/rubyext/System.java +4 -2
  32. data/platform/bb/rhodes/src/rhomobile/RhodesApplication.java +12 -35
  33. data/platform/bb/rhodes/src/rhomobile/Utilities.java +2 -1
  34. data/platform/iphone/Classes/DateTimePickerDelegate.m +4 -4
  35. data/platform/iphone/Classes/NativeBar.m +12 -6
  36. data/platform/iphone/Classes/NavBar.m +1 -1
  37. data/platform/iphone/Classes/RhoMainView.h +4 -1
  38. data/platform/iphone/Classes/Rhodes.h +6 -2
  39. data/platform/iphone/Classes/Rhodes.m +23 -3
  40. data/platform/iphone/Classes/SimpleMainView.h +3 -7
  41. data/platform/iphone/Classes/SimpleMainView.m +108 -54
  42. data/platform/iphone/Classes/TabbedMainView.h +3 -2
  43. data/platform/iphone/Classes/TabbedMainView.m +21 -10
  44. data/platform/iphone/RhoLib/RhoLib.xcodeproj/project.pbxproj +8 -0
  45. data/platform/shared/common/IRhoClassFactory.h +1 -0
  46. data/platform/shared/common/RhodesApp.cpp +7 -2
  47. data/platform/shared/common/ThreadQueue.cpp +110 -0
  48. data/platform/shared/common/ThreadQueue.h +75 -0
  49. data/platform/shared/logging/RhoLogCat.h +4 -0
  50. data/platform/shared/net/AsyncHttp.cpp +134 -135
  51. data/platform/shared/net/AsyncHttp.h +74 -33
  52. data/platform/shared/net/HttpServer.cpp +7 -1
  53. data/platform/shared/ruby/thread.c +4 -0
  54. data/platform/shared/ruby/thread_win32.c +9 -8
  55. data/platform/shared/rubyJVM/src/com/rho/RhodesApp.java +26 -5
  56. data/platform/shared/rubyJVM/src/com/rho/net/INetworkAccess.java +0 -2
  57. data/platform/shared/rubyJVM/src/com/rho/net/NetRequest.java +4 -13
  58. data/platform/shared/rubyJVM/src/com/rho/net/URI.java +2 -2
  59. data/platform/shared/rubyJVM/src/com/rho/sync/SyncEngine.java +3 -3
  60. data/platform/shared/rubyJVM/src/com/xruby/runtime/builtin/ObjectFactory.java +12 -2
  61. data/platform/shared/rubyJVM/src/com/xruby/runtime/builtin/RubyString.java +6 -3
  62. data/platform/shared/rubyJVM/src/javolution/util/FastTable.java +12 -2
  63. data/platform/shared/sync/SyncEngine.cpp +15 -3
  64. data/platform/shared/sync/SyncEngine.h +1 -1
  65. data/platform/shared/sync/SyncThread.cpp +18 -101
  66. data/platform/shared/sync/SyncThread.h +30 -22
  67. data/platform/wm/RhoLib/RhoLib.vcproj +8 -0
  68. data/platform/wm/rhodes/Rhodes.cpp +143 -1
  69. data/platform/wm/rhodes/memory_helper.cpp +273 -0
  70. data/platform/wm/rhodes/rho/common/RhoThreadImpl.cpp +1 -0
  71. data/platform/wm/rhodes/rho/net/NetRequestImpl.cpp +46 -3
  72. data/platform/wm/rhodes/rho/rubyext/WebView.cpp +29 -1
  73. data/res/build-tools/db/syncdb.schema +1 -0
  74. data/res/generators/rhogen.rb +1 -1
  75. data/rhodes.gemspec +2 -2
  76. metadata +23 -6
  77. data/Manifest.txt +0 -5289
  78. data/rhobuild.yml +0 -37
@@ -0,0 +1,273 @@
1
+ #include <stdlib.h>
2
+ #include <string.h>
3
+ #include <stdio.h>
4
+
5
+ void add_memref(void* pmem, const char* file, int line);
6
+ void del_memref(void* pmem);
7
+
8
+ extern "C"{
9
+ void rho_free(void * p)
10
+ {
11
+ del_memref(p);
12
+ free(p);
13
+ }
14
+ void sys_free(void *p)
15
+ {
16
+ free(p);
17
+ }
18
+
19
+ void * rho_malloc(size_t s, const char* file, int line)
20
+ {
21
+ void* res = malloc(s);
22
+ add_memref(res, file, line);
23
+
24
+ return res;
25
+ }
26
+ void * rho_calloc(size_t num, size_t size, const char* file, int line)
27
+ {
28
+ void* res = calloc(num,size);
29
+ add_memref(res, file, line);
30
+
31
+ return res;
32
+ }
33
+
34
+ size_t rho_msize(void *)
35
+ {
36
+ return 0;
37
+ }
38
+ void * rho_realloc(void *p, size_t s, const char* file, int line)
39
+ {
40
+ void* res = realloc(p,s);
41
+ add_memref(res, file, line);
42
+
43
+ return res;
44
+ }
45
+
46
+ char * rho_strdup(const char * str)
47
+ {
48
+ char *tmp;
49
+ int len = strlen(str) + 1;
50
+
51
+ tmp = (char*)rho_malloc(len, "rho_strdup", 1);
52
+ memcpy(tmp, str, len);
53
+
54
+ return tmp;
55
+ }
56
+
57
+ wchar_t * rho_wcsdup(const wchar_t * str)
58
+ {
59
+ wchar_t *tmp;
60
+ int len = (wcslen(str) + 1)*sizeof(wchar_t);
61
+
62
+ tmp = (wchar_t*)rho_malloc(len, "rho_wcsdup", 1);
63
+ memcpy(tmp, str, len);
64
+
65
+ return tmp;
66
+ }
67
+
68
+ }
69
+
70
+ #include <new>
71
+ //#include <exception>
72
+
73
+ void* cpp_alloc(size_t size, bool nothrow) {
74
+ for (;;) {
75
+ void* p = rho_malloc(size, "cpp_alloc", 1);
76
+ #ifdef PREANSINEW
77
+ return p;
78
+ #else
79
+ if (p == NULL) { // allocation failed
80
+ if (nothrow) return 0;
81
+ throw std::bad_alloc();
82
+ } else { // allocation success
83
+ return p;
84
+ }
85
+ #endif
86
+ }
87
+ }
88
+
89
+ static long g_nCount = -1;
90
+ #include <windows.h>
91
+ #include <atlbase.h>
92
+ #include <atlutil.h>
93
+
94
+ //#include <map>
95
+ //#include <string>
96
+ void* g_ptr_array[10000];
97
+ int g_line_array[10000];
98
+ const char* g_file_array[10000];
99
+ CStringA g_stack_array[10000];
100
+
101
+ //typedef std::map<void*,std::string> TObjMap;
102
+ //static TObjMap* g_Objects;
103
+ static CRITICAL_SECTION s_localLock;
104
+
105
+ long getObjectCount(){
106
+ return g_nCount;
107
+ }
108
+ int g_nInsideadd_memref = 0;
109
+ CStringA MyDumpStack();
110
+ void add_memref(void* pmem, const char* file, int line)
111
+ {
112
+ if (!g_nInsideadd_memref && g_nCount>=0&& strstr(file, "\\gc.c") == 0 &&
113
+ strstr(file,"\\regexec.c") == 0 )
114
+ {
115
+ g_nInsideadd_memref = 1;
116
+
117
+ CStringA str = MyDumpStack();
118
+
119
+ ::EnterCriticalSection(&s_localLock);
120
+ g_ptr_array[g_nCount] = pmem;
121
+ g_line_array[g_nCount] = line;
122
+ g_file_array[g_nCount] = file;
123
+ g_stack_array[g_nCount] = str;
124
+ g_nCount++;
125
+
126
+ g_nInsideadd_memref = 0;
127
+ ::LeaveCriticalSection(&s_localLock);
128
+ }
129
+ }
130
+
131
+ void del_memref(void* pmem)
132
+ {
133
+ if (g_nCount>=0){
134
+ ::EnterCriticalSection(&s_localLock);
135
+
136
+ for(int i = 0; i<g_nCount; i++)
137
+ {
138
+ if ( g_ptr_array[i] == pmem)
139
+ {
140
+ g_ptr_array[i] = 0;
141
+ if ( i == g_nCount-1)
142
+ g_nCount--;
143
+
144
+ break;
145
+ }
146
+ }
147
+
148
+ ::LeaveCriticalSection(&s_localLock);
149
+ }
150
+
151
+ }
152
+
153
+ extern "C" void StartMemMonitoring()
154
+ {
155
+ if (g_nCount<0)
156
+ {
157
+ ::InitializeCriticalSection(&s_localLock);
158
+ g_nCount = 0;
159
+ }
160
+ }
161
+
162
+ extern "C" void StopMemMonitoring()
163
+ {
164
+ if (g_nCount>=0)
165
+ {
166
+ ::DeleteCriticalSection(&s_localLock);
167
+ g_nCount = 0;
168
+ }
169
+ }
170
+
171
+ char buf[20];
172
+ #if !defined(_WIN32_WCE)
173
+ extern "C" void dumpAllMemObjs()
174
+ {
175
+ OutputDebugString(L"START DUMP\r\n");
176
+
177
+ for(int i = 0; i<g_nCount; i++)
178
+ {
179
+ if ( g_ptr_array[i] )
180
+ {
181
+ OutputDebugStringA( g_file_array[i] );
182
+
183
+ sprintf(buf, ": %d", g_line_array[i] );
184
+ OutputDebugStringA( buf );
185
+
186
+ OutputDebugStringA( g_stack_array[i] );
187
+
188
+ OutputDebugStringA( "\r\n" );
189
+ }
190
+ }
191
+ }
192
+ #else
193
+ extern "C" void dumpAllMemObjs()
194
+ {
195
+ }
196
+ #endif
197
+
198
+ #if !defined(_WIN32_WCE)
199
+ class CTraceClipboardData : public IStackDumpHandler
200
+ {
201
+ public:
202
+ CStringA m_strStackA;
203
+ bool m_bStop;
204
+ void __stdcall OnBegin(){}
205
+ void __stdcall OnEntry(void *pvAddress, LPCSTR szModule, LPCSTR szSymbol)
206
+ {
207
+ if ( m_bStop )
208
+ return;
209
+
210
+ char sz[40];
211
+ sprintf_s(sz, _countof(sz), "%p: ", pvAddress);
212
+ SendOut(sz);
213
+
214
+ //if (szModule && strcmp(szModule, "kernel32.dll") == 0)
215
+ //{
216
+ //m_bStop = true;
217
+ //return;
218
+ //}
219
+
220
+ if (szModule)
221
+ {
222
+ ATLASSERT(szSymbol);
223
+ SendOut(szModule);
224
+ SendOut("! ");
225
+ SendOut(szSymbol);
226
+ }
227
+ else
228
+ SendOut("symbol not found");
229
+ SendOut("\r\n");
230
+ }
231
+
232
+ void __stdcall OnError(LPCSTR szError)
233
+ {
234
+ SendOut(szError);
235
+ }
236
+ void __stdcall OnEnd(){ }
237
+ void SendOut(LPCSTR pszData);
238
+ CTraceClipboardData();
239
+ ~CTraceClipboardData();
240
+ };
241
+
242
+ CTraceClipboardData::CTraceClipboardData()//DWORD dwTarget)
243
+ {
244
+ m_bStop = false;
245
+ }
246
+
247
+ CTraceClipboardData::~CTraceClipboardData()
248
+ {
249
+ }
250
+
251
+ void CTraceClipboardData::SendOut(LPCSTR pszData)
252
+ {
253
+ m_strStackA += pszData;
254
+ return;
255
+ }
256
+
257
+ /////////////////////////////////////////////////////////////////////////////
258
+ // AfxDumpStack API
259
+
260
+ CStringA MyDumpStack()
261
+ {
262
+ CTraceClipboardData clipboardData;
263
+
264
+ AtlDumpStack(&clipboardData);
265
+
266
+ return clipboardData.m_strStackA;
267
+ }
268
+ #else
269
+ CStringA MyDumpStack()
270
+ {
271
+ return CStringA();
272
+ }
273
+ #endif
@@ -15,6 +15,7 @@ static DWORD WINAPI runProc(void* pv) throw()
15
15
  {
16
16
  IRhoRunnable* p = static_cast<IRhoRunnable*>(pv);
17
17
  p->run();
18
+ ::ExitThread(0);
18
19
  return 0;
19
20
  }
20
21
 
@@ -6,6 +6,7 @@
6
6
  #include "NetRequest.h"
7
7
  #include "common/StringConverter.h"
8
8
  #include "net/URI.h"
9
+ #include "common/RhoConf.h"
9
10
 
10
11
  #if defined(_WIN32_WCE)
11
12
  #include <connmgr.h>
@@ -62,8 +63,31 @@ CNetRequestImpl::CNetRequestImpl(CNetRequest* pParent, const char* method, const
62
63
  break;
63
64
  }
64
65
 
65
- m_hConnection = InternetConnect( m_hInternet, m_uri.lpszHostName, m_uri.nPort, _T("anonymous"), NULL,
66
- INTERNET_SERVICE_HTTP, 0, 0 );
66
+ #ifdef OS_WINDOWS
67
+ if (RHOCONF().isExist("http_proxy_host")) {
68
+ rho::String login, password;
69
+
70
+ if (RHOCONF().isExist("http_proxy_login"))
71
+ login = RHOCONF().getString ("http_proxy_login");
72
+ else
73
+ login = "anonymous";
74
+
75
+ if (RHOCONF().isExist("http_proxy_password"))
76
+ password = RHOCONF().getString("http_proxy_password");
77
+
78
+ m_hConnection = InternetConnect(m_hInternet, m_uri.lpszHostName, m_uri.nPort,
79
+ //rho::common::convertToStringW(login).c_str(),
80
+ //password.length() ? rho::common::convertToStringW(password).c_str() : NULL,
81
+ _T("baran"), _T("baran"),
82
+ INTERNET_SERVICE_HTTP, 0, 0);
83
+ } else {
84
+ m_hConnection = InternetConnect(m_hInternet, m_uri.lpszHostName, m_uri.nPort, _T("anonymous"), NULL,
85
+ INTERNET_SERVICE_HTTP, 0, 0);
86
+ }
87
+ #else
88
+ m_hConnection = InternetConnect( m_hInternet, m_uri.lpszHostName, m_uri.nPort, _T("anonymous"),
89
+ NULL, INTERNET_SERVICE_HTTP, 0, 0 );
90
+ #endif
67
91
  if ( !m_hConnection )
68
92
  {
69
93
  m_pszErrFunction = L"InternetConnect";
@@ -772,8 +796,27 @@ bool CNetRequestImpl::initConnection(boolean bLocalHost, LPCTSTR url)
772
796
  if (m_hInternet)
773
797
  return true;
774
798
 
799
+ #ifdef OS_WINDOWS
800
+ if (RHOCONF().isExist("http_proxy_host")) {
801
+ rho::String proxyName = RHOCONF().getString("http_proxy_host");
802
+
803
+ if (RHOCONF().isExist("http_proxy_port")) {
804
+ proxyName += ":" + RHOCONF().getString("http_proxy_port");
805
+ }
806
+
807
+ LOG(ERROR) + "PROXY: " + proxyName;
808
+
809
+ m_hInternet = InternetOpen(_T("rhodes-wm"), INTERNET_OPEN_TYPE_PROXY,
810
+ rho::common::convertToStringW(proxyName).c_str(),
811
+ NULL, NULL);
812
+ } else {
813
+ m_hInternet = InternetOpen(_T("rhodes-wm"), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, NULL );
814
+ }
815
+ #else
775
816
  m_hInternet = InternetOpen(_T("rhodes-wm"), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, NULL );
776
- if ( !m_hInternet )
817
+ #endif
818
+
819
+ if ( !m_hInternet )
777
820
  {
778
821
  m_pszErrFunction = L"InternetOpen";
779
822
  return false;
@@ -33,6 +33,8 @@ const char* rho_webview_execute_js(const char* js, int index)
33
33
  String strJS = "javascript:";
34
34
  strJS += js;
35
35
 
36
+ //RAWTRACEC1("Execute JS: %s", js);
37
+
36
38
  rho_webview_navigate(strJS.c_str(), index);
37
39
  return "";
38
40
  }
@@ -60,7 +62,33 @@ void rho_webview_full_screen_mode(int enable)
60
62
 
61
63
  void rho_webview_set_cookie(const char *url, const char *cookie)
62
64
  {
63
- ::InternetSetCookieA(url, NULL, cookie);
65
+ URL_COMPONENTSA uri;
66
+ ::memset(&uri, 0, sizeof(uri));
67
+ uri.dwStructSize = sizeof(uri);
68
+ uri.dwSchemeLength = 1;
69
+ uri.dwHostNameLength = 1;
70
+ uri.dwUrlPathLength = 1;
71
+ if (!::InternetCrackUrlA(url, ::strlen(url), 0, &uri)) {
72
+ RAWLOG_ERROR1("WebView.set_cookie: can not parse url: %s", url);
73
+ return;
74
+ }
75
+
76
+ std::string nurl(uri.lpszScheme, uri.dwSchemeLength);
77
+ nurl += "://";
78
+ nurl += std::string(uri.lpszHostName, uri.dwHostNameLength);
79
+ nurl += std::string(uri.lpszUrlPath, uri.dwUrlPathLength);
80
+
81
+ for (const char *c = cookie;;) {
82
+ const char *s = c;
83
+ for (; *s != ';' && *s != '\0'; ++s);
84
+ std::string c1(c, s - c);
85
+ if (!::InternetSetCookieA(nurl.c_str(), NULL, c1.c_str()))
86
+ RAWLOG_ERROR1("WebView.set_cookie: can not set cookie for url %s", nurl.c_str());
87
+ if (*s == '\0')
88
+ break;
89
+ for (c = s + 1; *c == ' '; ++c);
90
+ }
91
+
64
92
  }
65
93
 
66
94
  }
@@ -33,6 +33,7 @@ CREATE TABLE sources (
33
33
  last_sync_duration BIGINT default 0,
34
34
  last_sync_success BIGINT default 0,
35
35
  backend_refresh_time BIGINT default 0,
36
+ model_type varchar default NULL,
36
37
  source_attribs varchar default NULL,
37
38
  schema varchar default NULL,
38
39
  schema_version varchar default NULL,
@@ -1,7 +1,7 @@
1
1
  require 'rubygems'
2
2
  require 'templater'
3
3
  #TODO: This is temporary, see https://www.pivotaltracker.com/story/show/3399292
4
- gem "activesupport", "= 2.3.5"
4
+ gem "activesupport", "~> 2.3.5"
5
5
  require 'active_support'
6
6
  require File.dirname(__FILE__) + '/../../lib/rhodes'
7
7
 
data/rhodes.gemspec CHANGED
@@ -3,7 +3,7 @@ require "lib/rhodes.rb"
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = %q{rhodes}
6
- s.version = '2.0.0.beta7'
6
+ s.version = '2.0.0.beta8'
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
9
9
  s.authors = ["Rhomobile"]
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
22
22
  s.rubygems_version = %q{1.3.5}
23
23
  s.add_dependency('templater', '>= 0.5.0')
24
24
  s.add_dependency('rake', '>= 0.8.7')
25
- s.add_dependency('activesupport', '>= 2.3.5')
25
+ s.add_dependency('activesupport', '~> 2.3.5')
26
26
  s.add_development_dependency('rdoc', '>= 2.4.3')
27
27
  s.executables << 'rhogen'
28
28
  s.executables << 'upgrade-rhodes-app'
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rhodes
3
3
  version: !ruby/object:Gem::Version
4
+ hash: -1848230044
4
5
  prerelease: true
5
6
  segments:
6
7
  - 2
7
8
  - 0
8
9
  - 0
9
- - beta7
10
- version: 2.0.0.beta7
10
+ - beta8
11
+ version: 2.0.0.beta8
11
12
  platform: ruby
12
13
  authors:
13
14
  - Rhomobile
@@ -22,9 +23,11 @@ dependencies:
22
23
  name: templater
23
24
  prerelease: false
24
25
  requirement: &id001 !ruby/object:Gem::Requirement
26
+ none: false
25
27
  requirements:
26
28
  - - ">="
27
29
  - !ruby/object:Gem::Version
30
+ hash: 11
28
31
  segments:
29
32
  - 0
30
33
  - 5
@@ -36,9 +39,11 @@ dependencies:
36
39
  name: rake
37
40
  prerelease: false
38
41
  requirement: &id002 !ruby/object:Gem::Requirement
42
+ none: false
39
43
  requirements:
40
44
  - - ">="
41
45
  - !ruby/object:Gem::Version
46
+ hash: 49
42
47
  segments:
43
48
  - 0
44
49
  - 8
@@ -50,9 +55,11 @@ dependencies:
50
55
  name: activesupport
51
56
  prerelease: false
52
57
  requirement: &id003 !ruby/object:Gem::Requirement
58
+ none: false
53
59
  requirements:
54
- - - ">="
60
+ - - ~>
55
61
  - !ruby/object:Gem::Version
62
+ hash: 9
56
63
  segments:
57
64
  - 2
58
65
  - 3
@@ -64,9 +71,11 @@ dependencies:
64
71
  name: rdoc
65
72
  prerelease: false
66
73
  requirement: &id004 !ruby/object:Gem::Requirement
74
+ none: false
67
75
  requirements:
68
76
  - - ">="
69
77
  - !ruby/object:Gem::Version
78
+ hash: 25
70
79
  segments:
71
80
  - 2
72
81
  - 4
@@ -78,9 +87,11 @@ dependencies:
78
87
  name: diff-lcs
79
88
  prerelease: false
80
89
  requirement: &id005 !ruby/object:Gem::Requirement
90
+ none: false
81
91
  requirements:
82
92
  - - ">="
83
93
  - !ruby/object:Gem::Version
94
+ hash: 23
84
95
  segments:
85
96
  - 1
86
97
  - 1
@@ -336,7 +347,6 @@ files:
336
347
  - lib/test/rho_stubs.rb
337
348
  - lib/test/syncdb.sqlite
338
349
  - LICENSE
339
- - Manifest.txt
340
350
  - platform/android/build/android.rake
341
351
  - platform/android/build/androidcommon.rb
342
352
  - platform/android/build/libcurl_build.files
@@ -348,6 +358,7 @@ files:
348
358
  - platform/android/build/librhomain_build.files
349
359
  - platform/android/build/librhosync_build.files
350
360
  - platform/android/build/libruby_build.files
361
+ - platform/android/build/libsqlite_build.files
351
362
  - platform/android/build/libstlport_build.files
352
363
  - platform/android/build/RhodesGEN_build.files
353
364
  - platform/android/build/RhodesSRC_build.files
@@ -911,6 +922,8 @@ files:
911
922
  - platform/shared/common/SplashScreen.cpp
912
923
  - platform/shared/common/SplashScreen.h
913
924
  - platform/shared/common/StringConverter.h
925
+ - platform/shared/common/ThreadQueue.cpp
926
+ - platform/shared/common/ThreadQueue.h
914
927
  - platform/shared/common/Tokenizer.cpp
915
928
  - platform/shared/common/Tokenizer.h
916
929
  - platform/shared/curl/include/curl/curl.h
@@ -3374,6 +3387,7 @@ files:
3374
3387
  - platform/wm/rhodes/Macros.h
3375
3388
  - platform/wm/rhodes/MainWindow.cpp
3376
3389
  - platform/wm/rhodes/MainWindow.h
3390
+ - platform/wm/rhodes/memory_helper.cpp
3377
3391
  - platform/wm/rhodes/menubar.cpp
3378
3392
  - platform/wm/rhodes/menubar.h
3379
3393
  - platform/wm/rhodes/OkCancelModalDialog.h
@@ -3643,7 +3657,6 @@ files:
3643
3657
  - res/generators/templates/spec/app/spec_runner.rb
3644
3658
  - res/generators/templates/spec/app/SpecRunner/controller.rb
3645
3659
  - res/generators/templates/spec/app/SpecRunner/index.erb
3646
- - rhobuild.yml
3647
3660
  - rhobuild.yml.example
3648
3661
  - rhodes.gemspec
3649
3662
  - spec/framework_spec/app/Account/account.rb
@@ -5401,23 +5414,27 @@ rdoc_options:
5401
5414
  require_paths:
5402
5415
  - lib
5403
5416
  required_ruby_version: !ruby/object:Gem::Requirement
5417
+ none: false
5404
5418
  requirements:
5405
5419
  - - ">="
5406
5420
  - !ruby/object:Gem::Version
5421
+ hash: 3
5407
5422
  segments:
5408
5423
  - 0
5409
5424
  version: "0"
5410
5425
  required_rubygems_version: !ruby/object:Gem::Requirement
5426
+ none: false
5411
5427
  requirements:
5412
5428
  - - ">="
5413
5429
  - !ruby/object:Gem::Version
5430
+ hash: 3
5414
5431
  segments:
5415
5432
  - 0
5416
5433
  version: "0"
5417
5434
  requirements: []
5418
5435
 
5419
5436
  rubyforge_project: rhodes
5420
- rubygems_version: 1.3.6
5437
+ rubygems_version: 1.3.7
5421
5438
  signing_key:
5422
5439
  specification_version: 2
5423
5440
  summary: The Rhodes framework is the easiest way to develop NATIVE apps with full device capabilities (GPS, PIM, camera, etc.) for any smartphone.