rhodes 2.0.0.beta7 → 2.0.0.beta8

Sign up to get free protection for your applications and to get access to all the features.
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.