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 CHANGED
@@ -25,6 +25,7 @@ doc/generator.txt
25
25
  doc/install.txt
26
26
  doc/introduction.txt
27
27
  doc/linea.txt
28
+ doc/release.txt
28
29
  doc/rhom.txt
29
30
  doc/standard-css.txt
30
31
  doc/synchronization.txt
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
@@ -190,6 +190,8 @@ if defined?( RHODES_EMULATOR )
190
190
  end
191
191
  else
192
192
  def load_models_from_file(app_manifest_filename=nil)
193
+ return unless Rho::file_exist?(app_manifest_filename)
194
+
193
195
  f = File.open(app_manifest_filename)
194
196
  _load_models_from_file(f)
195
197
  f.close
@@ -68,13 +68,30 @@ namespace rho
68
68
 
69
69
  public override Stream OpenInputFileStream(string path)
70
70
  {
71
- //System.Diagnostics.Debug.WriteLine("open_file: " + path, "");
71
+ Stream st = null;
72
72
 
73
73
  StreamResourceInfo sr = Application.GetResourceStream(new Uri(CFilePath.removeFirstSlash(path), UriKind.Relative));
74
- if (sr == null)
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 sr.Stream;
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.writeLogMessage(strMsg);
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") != null)
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.2"
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: 62196423
4
+ hash: 62196421
5
5
  prerelease: true
6
6
  segments:
7
7
  - 3
8
8
  - 0
9
9
  - 0
10
10
  - beta
11
- - 2
12
- version: 3.0.0.beta.2
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-07 00:00:00 -07:00
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