rhodes 3.0.0.beta.2 → 3.0.0.beta.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest.txt +1 -0
- data/doc/release.txt +236 -0
- data/lib/framework/rho/rho.rb +2 -0
- data/platform/wp7/RhoRubyLib/WP_PlatformAdaptationLayer.cs +24 -13
- data/platform/wp7/RhoRubyLib/logging/RhoLogConf.cs +2 -2
- data/platform/wp7/RhoRubyLib/logging/RhoLogger.cs +1 -1
- data/rhodes.gemspec +1 -1
- metadata +5 -4
data/Manifest.txt
CHANGED
data/doc/release.txt
ADDED
@@ -0,0 +1,236 @@
|
|
1
|
+
# Rhodes Release procedure
|
2
|
+
## Install Rhodes beta
|
3
|
+
gem uninstall rhodes
|
4
|
+
gem install rhodes --pre --no-ri --no-rdoc
|
5
|
+
|
6
|
+
add <gem>/bin to PATH environment variable
|
7
|
+
copy rhobuild.yml from rhodes to gem
|
8
|
+
|
9
|
+
## Test procedures
|
10
|
+
Remove Rhodes application from Device and Simulators, clean Simulator and remove files from device
|
11
|
+
|
12
|
+
### Framework spec
|
13
|
+
Run on simulator from gem folder:
|
14
|
+
rake run:win32:framework_spec
|
15
|
+
rake run:android:framework_spec
|
16
|
+
rake run:iphone:framework_spec
|
17
|
+
|
18
|
+
Build and Run on device:
|
19
|
+
rake device:wm:production
|
20
|
+
rake device:android:production
|
21
|
+
rake device:iphone:production
|
22
|
+
|
23
|
+
### Phone spec
|
24
|
+
Run on simulator from gem folder:
|
25
|
+
rake run:win32:phone_spec
|
26
|
+
rake run:android:phone_spec
|
27
|
+
rake run:iphone:phone_spec
|
28
|
+
rake run:bb:phone_spec
|
29
|
+
rake run:wp:phone_spec
|
30
|
+
|
31
|
+
Build and Run on device:
|
32
|
+
rake device:wm:production
|
33
|
+
rake device:android:production
|
34
|
+
rake device:iphone:production
|
35
|
+
rake device:bb:production
|
36
|
+
rake device:wp:production
|
37
|
+
|
38
|
+
### New generated application
|
39
|
+
rhodes app mytest
|
40
|
+
|
41
|
+
Run on RhoSimulator from 'mytest' folder:
|
42
|
+
rake run:win32:rhosimulator
|
43
|
+
|
44
|
+
Run on Platform Simulator from 'mytest' folder.
|
45
|
+
|
46
|
+
### System-api-samples
|
47
|
+
|
48
|
+
git clone git@github.com:rhomobile/rhodes-system-api-samples.git
|
49
|
+
|
50
|
+
* Check application loading image (loading.png) - for iPhone you should see image correspondent to your device and orientation(only for iPad).
|
51
|
+
* My Contacts : you should see contacts from SIM card and phone memory(if available), create new contact, go to phone book, you should see new record. Go back to app, edit some properties, than delete. Make sure that record deleted from phone book
|
52
|
+
* My Events : you should see events from Calendar(if available), create new event, go to phone calendar, you should see new event. Go back to app, edit some properties, than delete. Make sure that event deleted from phone calendar
|
53
|
+
* My Location: go outside building and wait 5 minutes, you should see your coordinates
|
54
|
+
* My camera Images:
|
55
|
+
- choose picture: you should see list of phone pictures, <br/>select one, it should displayed by rhodes
|
56
|
+
- take picture: camera should open, make photo, rhodes should display new picture
|
57
|
+
* Signature Capture test(only for iPhone and Android): open "My Signatures" page. Press [Take Signature] - new screen with custom toolbar/set of buttons(depends of platform) opened. Draw signature by you finger. select [Done]/[OK] button. You should see you signature as image on signature page.
|
58
|
+
* Screen rotation callback
|
59
|
+
* Select date/time: press Edit link for each edit, first time press OK, second time press Cancel:
|
60
|
+
- Date and Time: you should see 2 fields Date, Time
|
61
|
+
- Date only: only date should be displayed
|
62
|
+
- Time only: only time should be displayed
|
63
|
+
- rotate phone - screen should be rotated
|
64
|
+
When you reopen DateTime Picker you should see current date time always.
|
65
|
+
* Select date/time using AJAX: press Edit link or just touch field for each edit, first time press OK, second time press Cancel:
|
66
|
+
- Date and Time: you should see 2 fields Date, Time
|
67
|
+
- Date only: only date should be displayed
|
68
|
+
- Time only: only time should be displayed
|
69
|
+
Setting date/time should be processed without reload page. When you reopen DateTime Picker you should see date time from field (previosly setted).
|
70
|
+
* Alerts: select each link. you should see corresponding actions
|
71
|
+
* Ringtones: all phone ring-tones should be listed. Select 2 of them - you should listen some sound. On second press [stop], sound should stopped immediately
|
72
|
+
* AsyncHttpTest: Apache license page should be displayed
|
73
|
+
* AsyncHttpsTest: gmail login page should be displayed
|
74
|
+
* Async Download file: you should see image with many r
|
75
|
+
* System test:
|
76
|
+
- check system settings
|
77
|
+
- press JS popup: you should see javascript alert
|
78
|
+
- press execute_js: you should see javascript alert (Blackberry is not supported)
|
79
|
+
* Localization test: you should see Russian text, dates and currency in various formats
|
80
|
+
* Dynamic menu test:
|
81
|
+
- see description on the page and press menu button, check all items
|
82
|
+
- press call callback menu item: you should see text Callback called at the bottom of the page
|
83
|
+
- press 'Test back with alert', enter some text to edit, when press Back button - you should see<br/> Alert with message 'Do you want to leave?'. Press No - text from edit should not disappear. <br/>Press back again, on alert press Yes - you should return to dynamic menu test
|
84
|
+
- press 'Test back with close', when press Back button - application should exit
|
85
|
+
* Rho tests: press on each link, you should see corresponding page with message
|
86
|
+
* Barcode recognize test: open "My Barcode recognize ..." press [scan] under image - see Alert with correct recognized code. Press [Take Picture] for make shot of barcode by camea and see Alert with recognized code or "[]" if not recognized.
|
87
|
+
* Bluetooth Chat Demo:
|
88
|
+
1. Phone and external Bluetooth device (for example external GPS Bluetooth device) - for Android, Windows Mobile and Blackberry only.
|
89
|
+
- pair device with phone
|
90
|
+
- open "Bluetooth Chat Demo" page and press "Connect as Client"
|
91
|
+
- select external device
|
92
|
+
- you should see received data from device
|
93
|
+
2. Phone and another phone. - for iPhone only another iPhone/iPad supported !
|
94
|
+
- pair devices (skip for iPhones)
|
95
|
+
- open "Bluetooth Chat Demo" on both devices
|
96
|
+
- select "Connect as Server" on first device and "Connect as Client" on second device
|
97
|
+
- on second device select first device from list of Bluetooth devices
|
98
|
+
- write message and press [Send](on first or second device) - on another device you should see received message
|
99
|
+
* Custom URI schemes:
|
100
|
+
- mailto should invoke send mail display with filled reviver field
|
101
|
+
- tel should display phone app with filled phone number
|
102
|
+
- sms should invoke sms sending screen with filled phone number
|
103
|
+
* Select some link(not home page), move app to background, when click on app icon, you should see selected page(not home page)
|
104
|
+
* On iPhone: Go to "Native bar test" page, select "No bar", "Toolbar", "Tab bar" one-by-one. On tab bar page select tabs one-by-one.
|
105
|
+
After each of operation, trigger "Out of memory" error by selecting simulator menu item "Hardware -> Simulate memory warning".
|
106
|
+
Expected behavior - silent handle of this event. There MUST NOT be crash.
|
107
|
+
* On iPhone and Android: Go to "Native bar test" page, select "Tab bar". Select "Switch to Tab 1" - you should switched to Tab 1 with Home tasklist screen.
|
108
|
+
* On iPhone and Android: Go to "Native bar test" page, select "Tab bar". Scroll screen up and down: header bar should “reseating” properly at the top of the screen.
|
109
|
+
|
110
|
+
* Open Settings page, Login with empty credentials, open Image - you should see some images there.
|
111
|
+
|
112
|
+
### Store
|
113
|
+
git clone git@github.com:rhomobile/store.git
|
114
|
+
|
115
|
+
Run and Login with empty credentials, you should see Products and Customers
|
116
|
+
|
117
|
+
### Network connectivity test on each platform device
|
118
|
+
* turn ON - wifi and GPRS
|
119
|
+
* run system api samples, run AsyncHttp test - it should pass
|
120
|
+
* move app to background, turn OFF wifi
|
121
|
+
* run system api samples, run AsyncHttp test - it should pass
|
122
|
+
* move app to background, turn OFF GPRS
|
123
|
+
* run system api samples, run AsyncHttp test - it should failed
|
124
|
+
* move app to background, turn ON GPRS
|
125
|
+
* run system api samples, run AsyncHttp test - it should pass
|
126
|
+
* move app to background, turn OFF GPRS, turn ON WIFI
|
127
|
+
* run system api samples, run AsyncHttp test - it should pass
|
128
|
+
|
129
|
+
## Install Eclipse plug-in beta
|
130
|
+
* Install Eclipse >=3.6
|
131
|
+
* Install plug-in: http://rhostudio.s3.amazonaws.com/beta
|
132
|
+
|
133
|
+
## Test Eclipse plug-in
|
134
|
+
See [http://rhostudio.rhomobile.com]
|
135
|
+
* Create new Rhodes application
|
136
|
+
* Run and Debug using RhoSimulator: set breakpoint, see variables, see application log in console
|
137
|
+
|
138
|
+
##Install Rhodes Eclipse
|
139
|
+
Download and unzip: http://rhostudio.s3.amazonaws.com/bundle/win/RhoStudio.zip
|
140
|
+
|
141
|
+
## Test Rhodes Eclipse
|
142
|
+
Same procedure as for plug-in
|
143
|
+
|
144
|
+
##Build Rhodes gem
|
145
|
+
|
146
|
+
### Local machine steps
|
147
|
+
|
148
|
+
git clone git@github.com:rhomobile/rhodes.git
|
149
|
+
|
150
|
+
1.CHANGELOG
|
151
|
+
|
152
|
+
2.Make sure the major.minor.patch version
|
153
|
+
match what you want to release:
|
154
|
+
|
155
|
+
$ rake get_version
|
156
|
+
|
157
|
+
Use set_version to update if it is not correct:
|
158
|
+
|
159
|
+
$ rake set_version[2.3.1]
|
160
|
+
|
161
|
+
3.Edit rhodes.gemspec, set s.version :
|
162
|
+
|
163
|
+
BETA:
|
164
|
+
s.version = "2.3.1.beta.1"
|
165
|
+
|
166
|
+
RELEASE:
|
167
|
+
s.version = Rhodes::VERSION
|
168
|
+
|
169
|
+
4.Build RhoSimulator:
|
170
|
+
|
171
|
+
rake build:win32:rhosimulator
|
172
|
+
|
173
|
+
4.1 Zip files in folder 'rhodes\platform\win32\RhoSimulator' and copy to :
|
174
|
+
http://rhosimulator.s3.amazonaws.com/RhoSimulator
|
175
|
+
|
176
|
+
5.Build IronRuby:
|
177
|
+
|
178
|
+
rake build:wp:ironruby
|
179
|
+
|
180
|
+
6.Push changes to git
|
181
|
+
git commit -m "bumping version for release"
|
182
|
+
git push
|
183
|
+
|
184
|
+
7.Put tag:
|
185
|
+
|
186
|
+
git tag -m "rhodes release" 2.3.1 0548dea055f0aa00642a66c18ea207bd7344dda7
|
187
|
+
git push --tags
|
188
|
+
|
189
|
+
### cijoe steps:
|
190
|
+
1.Run commands:
|
191
|
+
ssh rhomobile@cijoe.rhomobile.com
|
192
|
+
|
193
|
+
cd ~/rhodes-release
|
194
|
+
|
195
|
+
rm -rf *
|
196
|
+
git reset --hard
|
197
|
+
git pull
|
198
|
+
|
199
|
+
2.Copy 'rhodes\platform\wp7\IronRuby\bin\Silverlight3Release' to cijoe from local computer
|
200
|
+
3.Copy 'rhodes\platform\win32\RhoSimulator' to cijoe from local computer
|
201
|
+
|
202
|
+
4.Build and push gem:
|
203
|
+
rake gem
|
204
|
+
gem push rhodes-<version>.gem
|
205
|
+
|
206
|
+
##Build Eclipse plug-in
|
207
|
+
|
208
|
+
0.download Eclipse for RAP/RPC developer
|
209
|
+
|
210
|
+
1.download git repository (git@github.com:rhomobile/rhostudio.git)
|
211
|
+
|
212
|
+
2.Import project into Eclipse (File/Import/'Existing project into Workspace')
|
213
|
+
|
214
|
+
3.Install DLTK 2.0
|
215
|
+
|
216
|
+
4.Import into workspace next DLTK plugins
|
217
|
+
|
218
|
+
org.eclipse.dltk.debug
|
219
|
+
org.eclipse.dltk.ruby.ui
|
220
|
+
org.eclipse.dltk.ui
|
221
|
+
|
222
|
+
5.add imported plugins to java build paths (Project properties/Java build path/Libraries/Add JAR)
|
223
|
+
|
224
|
+
6.select imported plugins in Project properties/Java build path/Libraries/Order and Export
|
225
|
+
|
226
|
+
5.build and run Eclipse configuration
|
227
|
+
|
228
|
+
##Build Rhodes Eclipse
|
229
|
+
|
230
|
+
1.Install (http://www.eclipse.org/egit/)
|
231
|
+
|
232
|
+
2.import plugin org.eclipse.platform
|
233
|
+
|
234
|
+
3.Start export product (File/Export/Plugin development/Eclipse product)
|
235
|
+
|
236
|
+
4.Select destination folder and export
|
data/lib/framework/rho/rho.rb
CHANGED
@@ -68,13 +68,30 @@ namespace rho
|
|
68
68
|
|
69
69
|
public override Stream OpenInputFileStream(string path)
|
70
70
|
{
|
71
|
-
|
71
|
+
Stream st = null;
|
72
72
|
|
73
73
|
StreamResourceInfo sr = Application.GetResourceStream(new Uri(CFilePath.removeFirstSlash(path), UriKind.Relative));
|
74
|
-
if (sr
|
74
|
+
if (sr != null)
|
75
|
+
st = sr.Stream;
|
76
|
+
|
77
|
+
if (st == null)
|
78
|
+
{
|
79
|
+
try
|
80
|
+
{
|
81
|
+
CRhoFile file = new CRhoFile();
|
82
|
+
file.open(path, CRhoFile.EOpenModes.OpenReadOnly);
|
83
|
+
st = file.getStream();
|
84
|
+
}
|
85
|
+
catch (Exception exc)
|
86
|
+
{
|
87
|
+
throw new System.IO.FileNotFoundException();
|
88
|
+
}
|
89
|
+
}
|
90
|
+
|
91
|
+
if (st == null)
|
75
92
|
throw new System.IO.FileNotFoundException();
|
76
93
|
|
77
|
-
return
|
94
|
+
return st;
|
78
95
|
}
|
79
96
|
|
80
97
|
public override Stream OpenInputFileStream(string path, FileMode mode, FileAccess access, FileShare share)
|
@@ -83,16 +100,7 @@ namespace rho
|
|
83
100
|
|
84
101
|
Stream st = null;
|
85
102
|
if (access == FileAccess.Read)
|
86
|
-
|
87
|
-
st = OpenInputFileStream(path);
|
88
|
-
if (st == null)
|
89
|
-
{
|
90
|
-
CRhoFile file = new CRhoFile();
|
91
|
-
file.open(path, CRhoFile.EOpenModes.OpenReadOnly);
|
92
|
-
st = file.getStream();
|
93
|
-
}
|
94
|
-
|
95
|
-
}
|
103
|
+
return OpenInputFileStream(path);
|
96
104
|
else
|
97
105
|
{
|
98
106
|
CRhoFile file = new CRhoFile();
|
@@ -100,6 +108,9 @@ namespace rho
|
|
100
108
|
st = file.getStream();
|
101
109
|
}
|
102
110
|
|
111
|
+
if (st == null)
|
112
|
+
throw new System.IO.FileNotFoundException();
|
113
|
+
|
103
114
|
return st;
|
104
115
|
}
|
105
116
|
}
|
@@ -145,8 +145,8 @@ namespace rho.logging
|
|
145
145
|
if ( isLogToOutput() )
|
146
146
|
m_pOutputSink.writeLogMessage(strMsg);
|
147
147
|
|
148
|
-
m_pServerSink
|
149
|
-
|
148
|
+
if (m_pServerSink != null)
|
149
|
+
m_pServerSink.writeLogMessage(strMsg);
|
150
150
|
}
|
151
151
|
|
152
152
|
public int getLogTextPos(){
|
@@ -325,7 +325,7 @@ namespace rho.common
|
|
325
325
|
RhoConf.getInstance().loadConf();
|
326
326
|
m_oLogConf.loadFromConf(RhoConf.getInstance());
|
327
327
|
|
328
|
-
if (RhoConf.getInstance().getString("rhologhost")
|
328
|
+
if (RhoConf.getInstance().getString("rhologhost").length() > 0)
|
329
329
|
m_oLogConf.setServerSynk(new rho.logging.RhoLogServerSink(m_oLogConf));
|
330
330
|
}
|
331
331
|
}
|
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 = "3.0.0.beta.
|
6
|
+
s.version = "3.0.0.beta.3"
|
7
7
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
9
9
|
s.authors = ["Rhomobile"]
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rhodes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 62196421
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 0
|
9
9
|
- 0
|
10
10
|
- beta
|
11
|
-
-
|
12
|
-
version: 3.0.0.beta.
|
11
|
+
- 3
|
12
|
+
version: 3.0.0.beta.3
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- Rhomobile
|
@@ -17,7 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2011-05-
|
20
|
+
date: 2011-05-08 00:00:00 -07:00
|
21
21
|
default_executable:
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
@@ -157,6 +157,7 @@ files:
|
|
157
157
|
- doc/install.txt
|
158
158
|
- doc/introduction.txt
|
159
159
|
- doc/linea.txt
|
160
|
+
- doc/release.txt
|
160
161
|
- doc/rhom.txt
|
161
162
|
- doc/standard-css.txt
|
162
163
|
- doc/synchronization.txt
|