rhodes 5.5.0.3 → 5.5.0.7
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.
- checksums.yaml +4 -4
- data/README.md +10 -0
- data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/NotificationSingleton.java +20 -8
- data/lib/commonAPI/coreapi/ext/platform/iphone/cpp_based_impl/SystemImpl.mm +1 -2
- data/lib/commonAPI/coreapi/ext/system.xml +1 -1
- data/platform/android/build/android.rake +1 -0
- data/platform/iphone/Classes/AppManager/AppManager.m +44 -3
- data/platform/iphone/Classes/NativeView/RhoNativeViewManager.mm +4 -3
- data/platform/iphone/Classes/NativeView/RhoNativeViewManagerOC.h +1 -1
- data/platform/iphone/Classes/RhoMainView.h +8 -2
- data/platform/iphone/Classes/RhoUIWebView.h +75 -0
- data/platform/iphone/Classes/RhoUIWebView.m +142 -0
- data/platform/iphone/Classes/RhoWKWebView.h +87 -0
- data/platform/iphone/Classes/RhoWKWebView.m +187 -0
- data/platform/iphone/Classes/RhoWebView.h +72 -0
- data/platform/iphone/Classes/RhoWebViewFabrique.h +35 -0
- data/platform/iphone/Classes/RhoWebViewFabrique.m +87 -0
- data/platform/iphone/Classes/Rhodes.m +17 -6
- data/platform/iphone/Classes/Signature.old/SignatureDelegate.m +11 -4
- data/platform/iphone/Classes/Signature/SignatureDelegate.m +3 -4
- data/platform/iphone/Classes/SimpleMainView.h +7 -5
- data/platform/iphone/Classes/SimpleMainView.m +174 -179
- data/platform/iphone/Classes/SplitView/RightViewController.h +2 -2
- data/platform/iphone/Classes/SplitView/RightViewController.m +9 -10
- data/platform/iphone/Classes/SplitView/SplittedMainView.h +2 -3
- data/platform/iphone/Classes/SplitView/SplittedMainView.m +10 -7
- data/platform/iphone/Classes/TabbedMainView.h +2 -1
- data/platform/iphone/Classes/TabbedMainView.m +13 -10
- data/platform/iphone/Classes/URLProtocol/CRhoURLProtocol.m +21 -5
- data/platform/iphone/Classes/WebView.m +1 -1
- data/platform/iphone/RhoAppBaseLib/RhoAppBaseLib.xcodeproj/project.pbxproj +40 -3
- data/platform/iphone/RhoLib/RhoLib.xcodeproj/project.pbxproj +4 -0
- data/platform/iphone/rbuild/iphone.rake +51 -0
- data/platform/shared/common/RhoNativeViewManager.h +9 -9
- data/platform/shared/common/RhodesApp.cpp +13 -1
- data/platform/shared/net/HttpServer.cpp +12 -2
- data/platform/shared/qt/rhodes/ExternalWebView.ui +11 -2
- data/platform/shared/qt/rhodes/QtMainWindow.cpp +9 -7
- data/platform/shared/qt/rhodes/QtMainWindow.ui +13 -4
- data/platform/shared/qt/rhodes/qkineticscroller.cpp +1245 -0
- data/platform/shared/qt/rhodes/qkineticscroller.h +165 -0
- data/platform/shared/qt/rhodes/qkineticscroller_p.h +168 -0
- data/platform/shared/qt/rhodes/qtflickgesture.cpp +696 -0
- data/platform/shared/qt/rhodes/qtflickgesture_p.h +107 -0
- data/platform/shared/qt/rhodes/qtscroller.cpp +2080 -0
- data/platform/shared/qt/rhodes/qtscroller.h +138 -0
- data/platform/shared/qt/rhodes/qtscroller_p.h +205 -0
- data/platform/shared/qt/rhodes/qtscrollerfilter.cpp +350 -0
- data/platform/shared/qt/rhodes/qtscrollerfilter_p.h +110 -0
- data/platform/shared/qt/rhodes/qtscrollerproperties.cpp +412 -0
- data/platform/shared/qt/rhodes/qtscrollerproperties.h +135 -0
- data/platform/shared/qt/rhodes/qtscrollerproperties_p.h +90 -0
- data/platform/shared/qt/rhodes/qtscrollevent.cpp +190 -0
- data/platform/shared/qt/rhodes/qtscrollevent.h +100 -0
- data/platform/shared/qt/rhodes/qtscrollevent_p.h +33 -0
- data/platform/shared/qt/rhodes/qwebviewkineticscroller.cpp +347 -0
- data/platform/shared/qt/rhodes/qwebviewkineticscroller.h +90 -0
- data/platform/shared/qt/rhodes/qwebviewselectionsuppressor.h +113 -0
- data/platform/shared/qt/rhodes/rhodes.pro +19 -0
- data/res/generators/rhogen.rb +307 -15
- data/res/generators/templates/application/app/Settings/err_sync.erb +12 -6
- data/res/generators/templates/application/app/Settings/home.erb +32 -17
- data/res/generators/templates/application/app/Settings/index.erb +55 -26
- data/res/generators/templates/application/app/Settings/javascript_index.html +111 -0
- data/res/generators/templates/application/app/Settings/javascript_login.html +65 -0
- data/res/generators/templates/application/app/Settings/login.erb +25 -19
- data/res/generators/templates/application/app/Settings/reset.erb +18 -9
- data/res/generators/templates/application/app/Settings/wait.erb +10 -7
- data/res/generators/templates/application/app/index.erb +32 -20
- data/res/generators/templates/application/app/javascript_index.html +66 -0
- data/res/generators/templates/application/app/javascript_index.js +250 -0
- data/res/generators/templates/application/app/layout.erb +12 -67
- data/res/generators/templates/application/javascript_build.yml +41 -0
- data/res/generators/templates/application/javascript_rhoconfig.txt +123 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap-theme.css +587 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap-theme.css.map +1 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap-theme.min.css +6 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap-theme.min.css.map +1 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap.css +6757 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap.css.map +1 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap.min.css +6 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap.min.css.map +1 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.eot +0 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.svg +288 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff +0 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff2 +0 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/js/bootstrap.js +2377 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/js/bootstrap.min.js +7 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/js/npm.js +13 -0
- data/res/generators/templates/application/public/css/style.css +3 -0
- data/res/generators/templates/application/public/jquery/jquery-3.1.1.min.js +4 -0
- data/res/generators/templates/application/public/jquery/jquery-3.1.1.min.map +1 -0
- data/res/generators/templates/application/rhoconfig.txt +16 -0
- data/res/generators/templates/iphone_project/Bremen7.xcodeproj/project.pbxproj +4 -0
- data/res/generators/templates/model/edit.erb +22 -21
- data/res/generators/templates/model/index.erb +24 -22
- data/res/generators/templates/model/javascript_edit.html +65 -0
- data/res/generators/templates/model/javascript_index.html +56 -0
- data/res/generators/templates/model/javascript_index.js +83 -0
- data/res/generators/templates/model/javascript_model.js +16 -0
- data/res/generators/templates/model/javascript_new.html +64 -0
- data/res/generators/templates/model/javascript_show.html +66 -0
- data/res/generators/templates/model/new.erb +22 -19
- data/res/generators/templates/model/show.erb +22 -14
- data/res/prebuild_base_app/app/index.erb +31 -18
- data/res/prebuild_base_app/app/layout.erb +11 -56
- data/version +1 -1
- metadata +59 -24
- data/res/generators/templates/application/public/css/android.css +0 -418
- data/res/generators/templates/application/public/css/iphone.css +0 -378
- data/res/generators/templates/application/public/css/jqmobile-patch.css +0 -62
- data/res/generators/templates/application/public/css/re_webkit.css +0 -736
- data/res/generators/templates/application/public/css/re_webkit_flat.css +0 -753
- data/res/generators/templates/application/public/css/windows_mobile.css +0 -327
- data/res/generators/templates/application/public/jqmobile/images/ajax-loader.gif +0 -0
- data/res/generators/templates/application/public/jqmobile/images/icon-search-black.png +0 -0
- data/res/generators/templates/application/public/jqmobile/images/icons-18-black.png +0 -0
- data/res/generators/templates/application/public/jqmobile/images/icons-18-white.png +0 -0
- data/res/generators/templates/application/public/jqmobile/images/icons-36-black.png +0 -0
- data/res/generators/templates/application/public/jqmobile/images/icons-36-white.png +0 -0
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.4.5.min.css +0 -3
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.4.5.min.js +0 -10
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.4.5.min.map +0 -1
- data/res/generators/templates/application/public/jqmobile/jquery.mobile.structure-1.4.5.min.css +0 -3
- data/res/generators/templates/application/public/jqmobile/jquery.mobile.theme-1.4.5.min.css +0 -3
- data/res/generators/templates/application/public/jquery/jquery-1.9.1.min.js +0 -5
- data/res/generators/templates/application/public/jquery/jquery-1.9.1.min.map +0 -1
- data/res/generators/templates/application/public/js/application.js +0 -1
- data/res/generators/templates/application/public/js/jqmobile-patch.js +0 -466
- data/res/generators/templates/application/public/js/syncengine.js +0 -504
@@ -0,0 +1,113 @@
|
|
1
|
+
/****************************************************************************
|
2
|
+
**
|
3
|
+
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
4
|
+
** All rights reserved.
|
5
|
+
** Contact: Nokia Corporation (qt-info@nokia.com)
|
6
|
+
**
|
7
|
+
** This file is part of the examples of the Qt Toolkit.
|
8
|
+
**
|
9
|
+
** $QT_BEGIN_LICENSE:LGPL$
|
10
|
+
** No Commercial Usage
|
11
|
+
** This file contains pre-release code and may not be distributed.
|
12
|
+
** You may use this file in accordance with the terms and conditions
|
13
|
+
** contained in the Technology Preview License Agreement accompanying
|
14
|
+
** this package.
|
15
|
+
**
|
16
|
+
** GNU Lesser General Public License Usage
|
17
|
+
** Alternatively, this file may be used under the terms of the GNU Lesser
|
18
|
+
** General Public License version 2.1 as published by the Free Software
|
19
|
+
** Foundation and appearing in the file LICENSE.LGPL included in the
|
20
|
+
** packaging of this file. Please review the following information to
|
21
|
+
** ensure the GNU Lesser General Public License version 2.1 requirements
|
22
|
+
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
23
|
+
**
|
24
|
+
** In addition, as a special exception, Nokia gives you certain additional
|
25
|
+
** rights. These rights are described in the Nokia Qt LGPL Exception
|
26
|
+
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
27
|
+
**
|
28
|
+
** If you have questions regarding the use of this file, please contact
|
29
|
+
** Nokia at qt-info@nokia.com.
|
30
|
+
**
|
31
|
+
**
|
32
|
+
**
|
33
|
+
**
|
34
|
+
**
|
35
|
+
**
|
36
|
+
**
|
37
|
+
**
|
38
|
+
** $QT_END_LICENSE$
|
39
|
+
**
|
40
|
+
****************************************************************************/
|
41
|
+
|
42
|
+
#ifndef QWEBVIEWSELECTIONSUPPRESSOR_H
|
43
|
+
#define QWEBVIEWSELECTIONSUPPRESSOR_H
|
44
|
+
|
45
|
+
#include <QtWebKitWidgets/qwebview.h>
|
46
|
+
#include <QtGui/qevent.h>
|
47
|
+
#include <QDebug>
|
48
|
+
|
49
|
+
class QWebViewSelectionSuppressor : public QObject
|
50
|
+
{
|
51
|
+
Q_OBJECT
|
52
|
+
public:
|
53
|
+
QWebViewSelectionSuppressor(QWebView *v)
|
54
|
+
: QObject(v), view(v), enabled(false), mousePressed(false)
|
55
|
+
{
|
56
|
+
Q_ASSERT(view);
|
57
|
+
enable();
|
58
|
+
}
|
59
|
+
|
60
|
+
~QWebViewSelectionSuppressor() {}
|
61
|
+
|
62
|
+
inline void enable()
|
63
|
+
{
|
64
|
+
if (enabled)
|
65
|
+
return;
|
66
|
+
view->installEventFilter(this);
|
67
|
+
enabled = true;
|
68
|
+
}
|
69
|
+
|
70
|
+
inline void disable()
|
71
|
+
{
|
72
|
+
if (!enabled)
|
73
|
+
return;
|
74
|
+
view->removeEventFilter(this);
|
75
|
+
enabled = false;
|
76
|
+
}
|
77
|
+
|
78
|
+
inline bool isEnabled() const
|
79
|
+
{
|
80
|
+
return enabled;
|
81
|
+
}
|
82
|
+
|
83
|
+
protected:
|
84
|
+
inline bool eventFilter(QObject *, QEvent *e);
|
85
|
+
|
86
|
+
private:
|
87
|
+
QWebView *view;
|
88
|
+
bool enabled;
|
89
|
+
bool mousePressed;
|
90
|
+
};
|
91
|
+
|
92
|
+
bool QWebViewSelectionSuppressor::eventFilter(QObject *, QEvent *e)
|
93
|
+
{
|
94
|
+
switch (e->type()) {
|
95
|
+
case QEvent::MouseButtonPress:
|
96
|
+
if (static_cast<QMouseEvent *>(e)->button() == Qt::LeftButton)
|
97
|
+
mousePressed = true;
|
98
|
+
break;
|
99
|
+
case QEvent::MouseButtonRelease:
|
100
|
+
if (static_cast<QMouseEvent *>(e)->button() == Qt::LeftButton)
|
101
|
+
mousePressed = false;
|
102
|
+
break;
|
103
|
+
case QEvent::MouseMove:
|
104
|
+
if (mousePressed)
|
105
|
+
return true;
|
106
|
+
break;
|
107
|
+
default:
|
108
|
+
break;
|
109
|
+
}
|
110
|
+
return false;
|
111
|
+
}
|
112
|
+
|
113
|
+
#endif
|
@@ -117,6 +117,18 @@ win32 {
|
|
117
117
|
HEADERS += ExternalWebView.h\
|
118
118
|
MainWindowCallback.h\
|
119
119
|
QtMainWindow.h\
|
120
|
+
qwebviewkineticscroller.h\
|
121
|
+
qkineticscroller.h\
|
122
|
+
qkineticscroller_p.h\
|
123
|
+
qwebviewselectionsuppressor.h\
|
124
|
+
qtscroller.h\
|
125
|
+
qtscroller_p.h\
|
126
|
+
qtscrollerproperties.h\
|
127
|
+
qtscrollerproperties_p.h\
|
128
|
+
qtflickgesture_p.h\
|
129
|
+
qtscrollerfilter_p.h\
|
130
|
+
qtscrollevent.h\
|
131
|
+
qtscrollevent_p.h\
|
120
132
|
QtNativeTabBar.h\
|
121
133
|
QtWebInspector.h\
|
122
134
|
QtWebPage.h\
|
@@ -140,6 +152,13 @@ QtMainWindow.cpp\
|
|
140
152
|
QtNativeTabBar.cpp\
|
141
153
|
QtWebInspector.cpp\
|
142
154
|
QtWebPage.cpp\
|
155
|
+
qkineticscroller.cpp\
|
156
|
+
qwebviewkineticscroller.cpp\
|
157
|
+
qtflickgesture.cpp\
|
158
|
+
qtscroller.cpp\
|
159
|
+
qtscrollerproperties.cpp\
|
160
|
+
qtscrollerfilter.cpp\
|
161
|
+
qtscrollevent.cpp\
|
143
162
|
impl/AlertImpl.cpp\
|
144
163
|
impl/BluetoothImpl.cpp\
|
145
164
|
impl/CalendarImpl.cpp\
|
data/res/generators/rhogen.rb
CHANGED
@@ -60,14 +60,14 @@ module Rhogen
|
|
60
60
|
alias_method :module_name, :class_name
|
61
61
|
end
|
62
62
|
|
63
|
-
class
|
63
|
+
class RubyAppGenerator < BaseGenerator
|
64
64
|
|
65
65
|
def self.source_root
|
66
66
|
File.join(File.dirname(__FILE__), 'templates', 'application')
|
67
67
|
end
|
68
68
|
|
69
69
|
desc <<-DESC
|
70
|
-
Generates a new rhodes application.
|
70
|
+
Generates a new ruby-based rhodes application.
|
71
71
|
|
72
72
|
Options:
|
73
73
|
--rhoconnect - include rhoconnect-client in application
|
@@ -286,13 +286,205 @@ module Rhogen
|
|
286
286
|
end
|
287
287
|
end
|
288
288
|
|
289
|
-
class
|
289
|
+
class JavascriptAppGenerator < BaseGenerator
|
290
|
+
|
291
|
+
def self.source_root
|
292
|
+
File.join(File.dirname(__FILE__), 'templates', 'application')
|
293
|
+
end
|
294
|
+
|
295
|
+
desc <<-DESC
|
296
|
+
Generates a new javascript-based rhodes application.
|
297
|
+
|
298
|
+
Options:
|
299
|
+
--rhoconnect - include rhoconnect-client in application
|
300
|
+
|
301
|
+
Required:
|
302
|
+
name - application name
|
303
|
+
|
304
|
+
Optional:
|
305
|
+
syncserver - url to the rhosync application (i.e. "http://localhost:9292")
|
306
|
+
zip_url - optional url to zipfile download of bundle (this can be your RhoHub Bundle URL)
|
307
|
+
DESC
|
308
|
+
|
309
|
+
#option :testing_framework, :desc => 'Specify which testing framework to use (spec, test_unit)'
|
310
|
+
|
311
|
+
option :rhoconnect, :desc => '', :as => :boolean, :default => false
|
312
|
+
|
313
|
+
first_argument :name, :required => true, :desc => 'application name'
|
314
|
+
second_argument :syncserver, :required => false, :desc => 'url to the source adapter (i.e. "" or "http://rhosync.rhohub.com/apps/myapp/sources/")'
|
315
|
+
third_argument :zip_url, :required => false, :desc => 'optional url to zipfile download of bundle'
|
316
|
+
|
317
|
+
invoke :appResources
|
318
|
+
|
319
|
+
template :config do |template|
|
320
|
+
zip_url ||= ''
|
321
|
+
syncserver ||= ''
|
322
|
+
template.source = 'javascript_rhoconfig.txt'
|
323
|
+
template.destination = "#{name}/rhoconfig.txt"
|
324
|
+
end
|
325
|
+
|
326
|
+
template :buildyml do |template|
|
327
|
+
@sdk_path = File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
|
328
|
+
@sdk_path.gsub!('\\', '/')
|
329
|
+
@app_name = name
|
330
|
+
@app_name_cleared = name.downcase.split(/[^a-zA-Z0-9\.\-]/).map { |w| w.downcase }.join("")
|
331
|
+
puuid = UUID.new
|
332
|
+
generated_uuid = puuid.generate
|
333
|
+
@productid = generated_uuid
|
334
|
+
@uid = '0x'+(0xE0000000 + rand(0xFFFFFFF)).to_s(16)
|
335
|
+
@rhoconnectclient_ext = '"rhoconnect-client"' if rhoconnect
|
336
|
+
template.source = 'javascript_build.yml'
|
337
|
+
template.destination = "#{name}/build.yml"
|
338
|
+
end
|
339
|
+
|
340
|
+
template :gitignore do |template|
|
341
|
+
template.source = 'gitignore'
|
342
|
+
template.destination = "#{name}/.gitignore"
|
343
|
+
end
|
344
|
+
|
345
|
+
template :rubyversion do |template|
|
346
|
+
template.source = 'ruby-version'
|
347
|
+
template.destination = "#{name}/.ruby-version"
|
348
|
+
end
|
349
|
+
|
350
|
+
template :gemfile do |template|
|
351
|
+
template.source = 'Gemfile'
|
352
|
+
template.destination = "#{name}/Gemfile"
|
353
|
+
end
|
354
|
+
|
355
|
+
template :application do |template|
|
356
|
+
template.source = 'app/javascript_index.html'
|
357
|
+
template.destination = "#{name}/app/index.html"
|
358
|
+
end
|
359
|
+
|
360
|
+
file :applicationScript do |file|
|
361
|
+
file.source = 'app/javascript_index.js'
|
362
|
+
file.destination = "#{name}/app/index.js"
|
363
|
+
end
|
364
|
+
|
365
|
+
template :options do |template|
|
366
|
+
template.source = 'app/Settings/javascript_index.html'
|
367
|
+
template.destination = "#{name}/app/Settings/index.html"
|
368
|
+
end
|
369
|
+
|
370
|
+
template :login do |template|
|
371
|
+
template.source = 'app/Settings/javascript_login.html'
|
372
|
+
template.destination = "#{name}/app/Settings/login.html"
|
373
|
+
end
|
374
|
+
|
375
|
+
template :loading do |template|
|
376
|
+
template.source = 'app/loading.html'
|
377
|
+
template.destination = "#{name}/app/loading.html"
|
378
|
+
end
|
379
|
+
|
380
|
+
file :loadingpng do |file|
|
381
|
+
file.source = 'app/loading.png'
|
382
|
+
file.destination = "#{name}/app/loading.png"
|
383
|
+
end
|
384
|
+
|
385
|
+
file :loadingpng5 do |file|
|
386
|
+
file.source = 'app/loading-568h@2x.png'
|
387
|
+
file.destination = "#{name}/app/loading-568h@2x.png"
|
388
|
+
end
|
389
|
+
|
390
|
+
file :loadingpng51 do |file|
|
391
|
+
file.source = 'app/loading-667h@2x.png'
|
392
|
+
file.destination = "#{name}/app/loading-667h@2x.png"
|
393
|
+
end
|
394
|
+
|
395
|
+
file :loadingpng52 do |file|
|
396
|
+
file.source = 'app/loading-736h@3x.png'
|
397
|
+
file.destination = "#{name}/app/loading-736h@3x.png"
|
398
|
+
end
|
399
|
+
|
400
|
+
file :loadingpngl do |file|
|
401
|
+
file.source = 'app/loading-Landscape.png'
|
402
|
+
file.destination = "#{name}/app/loading-Landscape.png"
|
403
|
+
end
|
404
|
+
|
405
|
+
file :loadingpngll do |file|
|
406
|
+
file.source = 'app/loading-LandscapeLeft.png'
|
407
|
+
file.destination = "#{name}/app/loading-LandscapeLeft.png"
|
408
|
+
end
|
409
|
+
|
410
|
+
file :loadingpnglr do |file|
|
411
|
+
file.source = 'app/loading-LandscapeRight.png'
|
412
|
+
file.destination = "#{name}/app/loading-LandscapeRight.png"
|
413
|
+
end
|
414
|
+
|
415
|
+
file :loadingpngp do |file|
|
416
|
+
file.source = 'app/loading-Portrait.png'
|
417
|
+
file.destination = "#{name}/app/loading-Portrait.png"
|
418
|
+
end
|
419
|
+
|
420
|
+
file :loadingpngpud do |file|
|
421
|
+
file.source = 'app/loading-PortraitUpsideDown.png'
|
422
|
+
file.destination = "#{name}/app/loading-PortraitUpsideDown.png"
|
423
|
+
end
|
424
|
+
|
425
|
+
file :loadingpngl2 do |file|
|
426
|
+
file.source = 'app/loading-Landscape@2x.png'
|
427
|
+
file.destination = "#{name}/app/loading-Landscape@2x.png"
|
428
|
+
end
|
429
|
+
|
430
|
+
file :loadingpngll2 do |file|
|
431
|
+
file.source = 'app/loading-LandscapeLeft@2x.png'
|
432
|
+
file.destination = "#{name}/app/loading-LandscapeLeft@2x.png"
|
433
|
+
end
|
434
|
+
|
435
|
+
file :loadingpnglr2 do |file|
|
436
|
+
file.source = 'app/loading-LandscapeRight@2x.png'
|
437
|
+
file.destination = "#{name}/app/loading-LandscapeRight@2x.png"
|
438
|
+
end
|
439
|
+
|
440
|
+
file :loadingpngp2 do |file|
|
441
|
+
file.source = 'app/loading-Portrait@2x.png'
|
442
|
+
file.destination = "#{name}/app/loading-Portrait@2x.png"
|
443
|
+
end
|
444
|
+
|
445
|
+
file :loadingpngpud2 do |file|
|
446
|
+
file.source = 'app/loading-PortraitUpsideDown@2x.png'
|
447
|
+
file.destination = "#{name}/app/loading-PortraitUpsideDown@2x.png"
|
448
|
+
end
|
449
|
+
|
450
|
+
file :loadingpngx do |file|
|
451
|
+
file.source = 'app/loading@2x.png'
|
452
|
+
file.destination = "#{name}/app/loading@2x.png"
|
453
|
+
end
|
454
|
+
|
455
|
+
directory :icon do |directory|
|
456
|
+
directory.source = 'icon'
|
457
|
+
directory.destination = "#{name}/icon"
|
458
|
+
end
|
459
|
+
|
460
|
+
directory :production do |directory|
|
461
|
+
directory.source = 'production'
|
462
|
+
directory.destination = "#{name}/production"
|
463
|
+
end
|
464
|
+
|
465
|
+
file :androidmanifesterb do |file|
|
466
|
+
file.source = 'AndroidManifest.erb'
|
467
|
+
file.destination = "#{name}/AndroidManifest.erb"
|
468
|
+
end
|
469
|
+
|
470
|
+
directory :public do |directory|
|
471
|
+
directory.source = 'public'
|
472
|
+
directory.destination = "#{name}/public/"
|
473
|
+
end
|
474
|
+
|
475
|
+
template :rakefile do |template|
|
476
|
+
template.source = 'Rakefile'
|
477
|
+
template.destination = "#{name}/Rakefile"
|
478
|
+
end
|
479
|
+
end
|
480
|
+
|
481
|
+
class RubyModelGenerator < BaseGenerator
|
290
482
|
def self.source_root
|
291
483
|
File.join(File.dirname(__FILE__), 'templates', 'model')
|
292
484
|
end
|
293
485
|
|
294
486
|
desc <<-DESC
|
295
|
-
Generates a new model for a rhodes application.
|
487
|
+
Generates a new ruby model for a ruby-based rhodes application.
|
296
488
|
|
297
489
|
Required:
|
298
490
|
name - model name
|
@@ -368,6 +560,113 @@ module Rhogen
|
|
368
560
|
end
|
369
561
|
end
|
370
562
|
|
563
|
+
class JavascriptModelGenerator < BaseGenerator
|
564
|
+
def self.source_root
|
565
|
+
File.join(File.dirname(__FILE__), 'templates', 'model')
|
566
|
+
end
|
567
|
+
|
568
|
+
desc <<-DESC
|
569
|
+
Generates a new javascript model for a javascript-based rhodes application.
|
570
|
+
|
571
|
+
Required:
|
572
|
+
name - model name
|
573
|
+
attributes - list of one or more string attributes (i.e. name,industry,progress), NO spaces between attributes
|
574
|
+
|
575
|
+
Optional:
|
576
|
+
priority - sync priority (i.e. 100)
|
577
|
+
type - DEPRECATED: type of model (i.e. "ask" for an ask model). This will be removed in 1.5, instead use
|
578
|
+
search method.
|
579
|
+
DESC
|
580
|
+
|
581
|
+
#option :testing_framework, :desc => 'Specify which testing framework to use (spec, test_unit)'
|
582
|
+
|
583
|
+
first_argument :name, :required => true, :desc => 'model name'
|
584
|
+
second_argument :attributes, :as => :array, :required => true, :desc => "list of one or more string attributes (i.e. name,industry,progress), NO spaces between attributes"
|
585
|
+
third_argument :priority, :required => false, :desc => "optional sync priority (i.e. 100)"
|
586
|
+
fourth_argument :type, :required => false, :desc => "optional type (i.e. \"ask\" for an ask model)"
|
587
|
+
|
588
|
+
template :javascript_index do |template|
|
589
|
+
template.source = "javascript_index.html"
|
590
|
+
template.destination = "app/#{name.modulize}/index.html"
|
591
|
+
end
|
592
|
+
|
593
|
+
template :javascript_index_script do |template|
|
594
|
+
template.source = "javascript_index.js"
|
595
|
+
template.destination = "app/#{name.modulize}/index.js"
|
596
|
+
end
|
597
|
+
|
598
|
+
template :javascript_model_script do |template|
|
599
|
+
template.source = "javascript_model.js"
|
600
|
+
template.destination = "app/#{name.modulize}/model.js"
|
601
|
+
end
|
602
|
+
|
603
|
+
template :javascript_new do |template|
|
604
|
+
template.source = "javascript_new.html"
|
605
|
+
template.destination = "app/#{name.modulize}/new.html"
|
606
|
+
end
|
607
|
+
|
608
|
+
template :javascript_show do |template|
|
609
|
+
template.source = "javascript_show.html"
|
610
|
+
template.destination = "app/#{name.modulize}/show.html"
|
611
|
+
end
|
612
|
+
|
613
|
+
template :javascript_edit do |template|
|
614
|
+
template.source = "javascript_edit.html"
|
615
|
+
template.destination = "app/#{name.modulize}/edit.html"
|
616
|
+
end
|
617
|
+
|
618
|
+
|
619
|
+
# template :index do |template|
|
620
|
+
# template.source = 'index.erb'
|
621
|
+
# template.destination = "app/#{name.modulize}/index.erb"
|
622
|
+
# end
|
623
|
+
#
|
624
|
+
# template :edit do |template|
|
625
|
+
# template.source = 'edit.erb'
|
626
|
+
# template.destination = "app/#{name.modulize}/edit.erb"
|
627
|
+
# end
|
628
|
+
#
|
629
|
+
# template :new do |template|
|
630
|
+
# template.source = 'new.erb'
|
631
|
+
# template.destination = "app/#{name.modulize}/new.erb"
|
632
|
+
# end
|
633
|
+
#
|
634
|
+
# template :new do |template|
|
635
|
+
# template.source = 'show.erb'
|
636
|
+
# template.destination = "app/#{name.modulize}/show.erb"
|
637
|
+
# end
|
638
|
+
#
|
639
|
+
# template :controller do |template|
|
640
|
+
# underscore_name = name.modulize.split(/(?=[A-Z])/).map { |w| w.downcase }.join('_')
|
641
|
+
# template.source = 'controller.rb'
|
642
|
+
# template.destination = "app/#{name.modulize}/#{underscore_name}_controller.rb"
|
643
|
+
# end
|
644
|
+
#
|
645
|
+
# template :model do |template|
|
646
|
+
# underscore_name = name.modulize.split(/(?=[A-Z])/).map { |w| w.downcase }.join('_')
|
647
|
+
# template.source = 'model.rb'
|
648
|
+
# template.destination = "app/#{name.modulize}/#{underscore_name}.rb"
|
649
|
+
# end
|
650
|
+
#
|
651
|
+
# template :spec do |template|
|
652
|
+
# underscore_name = name.modulize.split(/(?=[A-Z])/).map { |w| w.downcase }.join('_')
|
653
|
+
# template.source = 'spec.rb'
|
654
|
+
# template.destination = "app/test/#{underscore_name}_spec.rb"
|
655
|
+
# end
|
656
|
+
|
657
|
+
def attributes?
|
658
|
+
self.attributes && !self.attributes.empty?
|
659
|
+
end
|
660
|
+
|
661
|
+
def syncserver_exists?
|
662
|
+
found = true
|
663
|
+
File.open('rhoconfig.txt').each do |line|
|
664
|
+
found = false if line.match("syncserver\ =\ ''") or line.match("syncserver\ =\ \"\"") or line.match("syncserver\ =\ nil")
|
665
|
+
end
|
666
|
+
found
|
667
|
+
end
|
668
|
+
end
|
669
|
+
|
371
670
|
class SpecGenerator < BaseGenerator
|
372
671
|
|
373
672
|
def self.source_root
|
@@ -412,9 +711,6 @@ module Rhogen
|
|
412
711
|
|
413
712
|
end
|
414
713
|
|
415
|
-
|
416
|
-
|
417
|
-
|
418
714
|
class IphoneProjectGenerator < BaseGenerator
|
419
715
|
|
420
716
|
@@noapp = false
|
@@ -681,12 +977,6 @@ module Rhogen
|
|
681
977
|
|
682
978
|
end
|
683
979
|
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
980
|
class ExtensionGenerator < BaseGenerator
|
691
981
|
|
692
982
|
@@noapp = false
|
@@ -1348,8 +1638,10 @@ module Rhogen
|
|
1348
1638
|
end
|
1349
1639
|
|
1350
1640
|
|
1351
|
-
add :app,
|
1352
|
-
add :
|
1641
|
+
add :app, RubyAppGenerator
|
1642
|
+
add :jsapp, JavascriptAppGenerator
|
1643
|
+
add :model, RubyModelGenerator
|
1644
|
+
add :jsmodel, JavascriptModelGenerator
|
1353
1645
|
add :spec, SpecGenerator
|
1354
1646
|
add :extension, ExtensionGenerator
|
1355
1647
|
add :api, ApiGenerator
|