calatrava 0.5.0 → 0.6.0
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.
- data/CHANGES.markdown +40 -0
- data/README.md +5 -0
- data/calatrava.gemspec +2 -3
- data/lib/calatrava/apache.rb +126 -0
- data/lib/calatrava/app.rb +2 -2
- data/lib/calatrava/app_builder.rb +68 -0
- data/lib/calatrava/configuration.rb +73 -0
- data/lib/calatrava/droid_app.rb +46 -0
- data/lib/calatrava/ios_app.rb +40 -0
- data/lib/calatrava/kernel.rb +79 -0
- data/lib/calatrava/manifest.rb +34 -11
- data/lib/calatrava/mobile_web_app.rb +74 -0
- data/lib/calatrava/project.rb +7 -191
- data/lib/calatrava/project_script.rb +186 -0
- data/lib/calatrava/shell.rb +43 -0
- data/lib/calatrava/tasks/assets.rb +4 -0
- data/lib/calatrava/tasks/automation.rb +4 -10
- data/lib/calatrava/tasks/haml.rb +9 -10
- data/lib/calatrava/tasks.rb +9 -85
- data/lib/calatrava/templates/config/templates/httpd.conf.erb +9 -9
- data/lib/calatrava/templates/droid/app/bridge.coffee +3 -0
- data/lib/calatrava/templates/droid/calatrava/src/com/calatrava/CalatravaPlugin.java +13 -0
- data/lib/calatrava/templates/droid/calatrava/src/com/calatrava/bridge/AlertPlugin.java +61 -0
- data/lib/calatrava/templates/droid/calatrava/src/com/calatrava/bridge/AnnotationRegistrar.java +71 -0
- data/lib/calatrava/templates/droid/calatrava/src/com/calatrava/bridge/KernelBridge.java +3 -4
- data/lib/calatrava/templates/droid/calatrava/src/com/calatrava/bridge/Launcher.java +2 -1
- data/lib/calatrava/templates/droid/calatrava/src/com/calatrava/bridge/PageRegistry.java +8 -29
- data/lib/calatrava/templates/droid/calatrava/src/com/calatrava/bridge/PluginCommand.java +8 -0
- data/lib/calatrava/templates/droid/calatrava/src/com/calatrava/bridge/PluginRegistry.java +112 -0
- data/lib/calatrava/templates/droid/calatrava/src/com/calatrava/bridge/RegisteredActivity.java +3 -14
- data/lib/calatrava/templates/droid/calatrava/src/com/calatrava/bridge/RegisteredPlugin.java +10 -0
- data/lib/calatrava/templates/droid/calatrava/src/com/calatrava/bridge/Registration.java +8 -0
- data/lib/calatrava/templates/droid/calatrava/src/com/calatrava/bridge/RhinoService.java +1 -0
- data/lib/calatrava/templates/droid/calatrava/src/com/calatrava/shell/WebViewActivity.java +1 -1
- data/lib/calatrava/templates/ios/Podfile.calatrava +6 -1
- data/lib/calatrava/templates/ios/src/ConversionFormViewController.m +1 -1
- data/lib/calatrava/templates/kernel/app/calatrava.coffee +32 -5
- data/lib/calatrava/templates/kernel/app/converter/controller.converter.coffee +11 -4
- data/lib/calatrava/templates/kernel/plugins/alert.coffee +9 -0
- data/lib/calatrava/templates/shell/layouts/single_page.haml +3 -3
- data/lib/calatrava/templates/web/app/source/alert.web.coffee +13 -0
- data/lib/calatrava/templates/web/app/source/bridge.coffee +10 -0
- data/lib/calatrava/templates/web/app/views/index.haml +5 -5
- data/lib/calatrava/version.rb +1 -1
- data/lib/calatrava.rb +15 -1
- data/spec/app_builder_spec.rb +46 -0
- data/spec/kernel_spec.rb +51 -0
- data/spec/manifest_spec.rb +62 -0
- data/spec/mobile_web_app_spec.rb +49 -0
- data/spec/shell_spec.rb +54 -0
- data/spec/spec_helper.rb +4 -0
- metadata +60 -49
- data/Plans.md +0 -20
- data/lib/calatrava/tasks/apache.rb +0 -54
- data/lib/calatrava/tasks/build.rb +0 -1
- data/lib/calatrava/tasks/configuration.rb +0 -41
- data/lib/calatrava/tasks/droid.rb +0 -83
- data/lib/calatrava/tasks/ios.rb +0 -73
- data/lib/calatrava/tasks/kernel.rb +0 -52
- data/lib/calatrava/tasks/shell.rb +0 -17
- data/lib/calatrava/tasks/web.rb +0 -87
@@ -1,83 +0,0 @@
|
|
1
|
-
namespace :droid do
|
2
|
-
|
3
|
-
version = "1.0"
|
4
|
-
droid_manifest = Calatrava::Manifest.new('droid')
|
5
|
-
|
6
|
-
html_views = droid_manifest.features.collect do |feature|
|
7
|
-
html_dir = "droid/#{Calatrava::Project.current.name}/assets/hybrid/views"
|
8
|
-
Dir["shell/pages/#{feature}/*.haml"].collect do |page|
|
9
|
-
pageName = File.basename(page, '.haml')
|
10
|
-
file "#{html_dir}/#{pageName}.html" => page do
|
11
|
-
HamlSupport::compile_hybrid_page feature, page, html_dir
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end.flatten
|
15
|
-
|
16
|
-
desc "Creates html from haml using Android layout"
|
17
|
-
task :haml => [CONFIG[:droid][:html]] + html_views
|
18
|
-
|
19
|
-
desc "Compile droid-specific coffee to javascript"
|
20
|
-
task :coffee => CONFIG[:droid][:assets] do
|
21
|
-
coffee File.join(CONFIG[:droid][:root], "app"), CONFIG[:droid][:js]
|
22
|
-
end
|
23
|
-
|
24
|
-
desc "Copies required assets for droid"
|
25
|
-
task :shared => ["shell:scss", "shell:coffee", "kernel:coffee",
|
26
|
-
CONFIG[:droid][:css], CONFIG[:droid][:imgs], CONFIG[:droid][:js],
|
27
|
-
:config, CONFIG[:droid][:fonts]] do
|
28
|
-
cp_ne "#{BUILD_CORE_CSS_DIR}/*.css", CONFIG[:droid][:css]
|
29
|
-
cp_ne "#{ASSETS_IMG_DIR}/*", CONFIG[:droid][:imgs]
|
30
|
-
cp_ne "assets/lib/*.js", CONFIG[:droid][:js]
|
31
|
-
|
32
|
-
droid_manifest.js_files.each do |js_file|
|
33
|
-
sh "cp #{js_file} #{CONFIG[:droid][:js]}"
|
34
|
-
end
|
35
|
-
droid_manifest.load_file("droid/#{Calatrava::Project.current.name}/assets/hybrid", 'hybrid/scripts', :type => :text, :include_pages => false)
|
36
|
-
|
37
|
-
cp_ne "build/shell/js/**/*.js", CONFIG[:droid][:js]
|
38
|
-
cp_ne "build/kernel/js/*.js", CONFIG[:droid][:js]
|
39
|
-
cp_ne "#{ASSETS_FONTS_DIR}/*", CONFIG[:droid][:fonts]
|
40
|
-
end
|
41
|
-
|
42
|
-
task :app => [:shared, :haml, :coffee]
|
43
|
-
|
44
|
-
desc "Prepares config for the app"
|
45
|
-
task :config do
|
46
|
-
env_coffee = config_path("env.coffee")
|
47
|
-
coffee env_coffee, CONFIG[:droid][:js]
|
48
|
-
end
|
49
|
-
|
50
|
-
desc "Builds the complete Android app"
|
51
|
-
task :build => [:app, :config, :write_build_number] do
|
52
|
-
cd "droid/#{Calatrava::Project.current.name}" do
|
53
|
-
sh "ant clean debug"
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
desc "Update the app to show the correct build number"
|
58
|
-
task :write_build_number do
|
59
|
-
cd "droid/#{Calatrava::Project.current.name}" do
|
60
|
-
sh %{cat AndroidManifest.xml | sed -E "s/android:versionName=\".*\"/android:versionName=\\"#{version}\\">/g" > AndroidManifest.xml.new}
|
61
|
-
mv "AndroidManifest.xml.new", "AndroidManifest.xml"
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
desc "Publishes the built Android app as an artifact"
|
66
|
-
task :publish => :build do
|
67
|
-
artifact("droid/#{Calatrava::Project.current.name}/bin/#{Calatrava::Project.current.name}-debug.apk", ENV['CALATRAVA_ENV'])
|
68
|
-
end
|
69
|
-
|
70
|
-
desc "Deploy app to device/emulator"
|
71
|
-
task :deploy => :publish do
|
72
|
-
sh "adb install -r artifacts/#{ENV['CALATRAVA_ENV']}/#{Calatrava::Project.current.name}-debug.apk"
|
73
|
-
end
|
74
|
-
|
75
|
-
desc "Clean droid public directory"
|
76
|
-
task :clean do
|
77
|
-
rm_rf CONFIG[:droid][:public]
|
78
|
-
cd "droid/#{Calatrava::Project.current.name}" do
|
79
|
-
sh "ant clean"
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
end
|
data/lib/calatrava/tasks/ios.rb
DELETED
@@ -1,73 +0,0 @@
|
|
1
|
-
namespace :ios do
|
2
|
-
|
3
|
-
|
4
|
-
ios_manifest = Calatrava::Manifest.new('ios')
|
5
|
-
|
6
|
-
html_views = ios_manifest.features.collect do |feature|
|
7
|
-
html_dir = "ios/public/views"
|
8
|
-
Dir["shell/pages/#{feature}/*.haml"].collect do |page|
|
9
|
-
pageName = File.basename(page, '.haml')
|
10
|
-
file "#{html_dir}/#{pageName}.html" => page do
|
11
|
-
HamlSupport::compile_hybrid_page feature, page, html_dir, :platform => 'ios'
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end.flatten
|
15
|
-
|
16
|
-
desc "Creates html from haml using iPhone layout"
|
17
|
-
task :haml => [CONFIG[:ios][:html]] + html_views
|
18
|
-
|
19
|
-
directory 'ios/public/assets'
|
20
|
-
|
21
|
-
desc "Copies required assets for ios"
|
22
|
-
task :shared => ["shell:scss", "shell:coffee", "kernel:coffee", 'ios/public/assets',
|
23
|
-
CONFIG[:ios][:css], CONFIG[:ios][:imgs], CONFIG[:ios][:js], :config, CONFIG[:ios][:fonts]] do
|
24
|
-
cp_ne "#{BUILD_CORE_CSS_DIR}/*.css", CONFIG[:ios][:css]
|
25
|
-
cp_ne "#{ASSETS_IMG_DIR}/*", CONFIG[:ios][:imgs]
|
26
|
-
cp_ne "assets/lib/*.js", CONFIG[:ios][:js]
|
27
|
-
cp_ne "ios/res/js/*.js", CONFIG[:ios][:js]
|
28
|
-
|
29
|
-
ios_manifest.js_files.each do |js_file|
|
30
|
-
sh "cp #{js_file} #{CONFIG[:ios][:js]}"
|
31
|
-
end
|
32
|
-
ios_manifest.load_file('ios/public/assets', '%@/public/assets/scripts', :type => :text, :include_pages => false)
|
33
|
-
|
34
|
-
cp_ne "build/shell/js/**/*.js", CONFIG[:ios][:js]
|
35
|
-
cp_ne "build/kernel/js/*.js", CONFIG[:ios][:js]
|
36
|
-
cp_ne "#{ASSETS_FONTS_DIR}/*", CONFIG[:ios][:fonts]
|
37
|
-
end
|
38
|
-
|
39
|
-
task :app => [:shared, :haml]
|
40
|
-
|
41
|
-
desc "Prepares config for the app"
|
42
|
-
task :config do
|
43
|
-
env_coffee = config_path("env.coffee")
|
44
|
-
coffee env_coffee, CONFIG[:ios][:js]
|
45
|
-
end
|
46
|
-
|
47
|
-
task :configured_app => [:app, :config]
|
48
|
-
|
49
|
-
desc "Builds the iOS app"
|
50
|
-
task :build => :configured_app do
|
51
|
-
ENV['CMDLINE_BUILD'] = 'true'
|
52
|
-
Calatrava::Project.current.build_ios
|
53
|
-
end
|
54
|
-
|
55
|
-
desc "Publish the iOS app as an artifact"
|
56
|
-
task :publish => :build do
|
57
|
-
artifact(CONFIG[:ios][:xcode][:package_path], ENV['CALATRAVA_ENV'])
|
58
|
-
end
|
59
|
-
|
60
|
-
desc "Clean ios public directory"
|
61
|
-
task :clean do
|
62
|
-
sh "rm -rf #{CONFIG[:ios][:public]}/*"
|
63
|
-
end
|
64
|
-
|
65
|
-
namespace :xcode do
|
66
|
-
task :prebuild do
|
67
|
-
if !ENV['CMDLINE_BUILD']
|
68
|
-
Rake::Task['configure:development'].invoke
|
69
|
-
Rake::Task['ios:configured_app'].invoke
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
@@ -1,52 +0,0 @@
|
|
1
|
-
namespace :kernel do
|
2
|
-
|
3
|
-
directory "build/kernel/js"
|
4
|
-
|
5
|
-
desc "Build kernel js files"
|
6
|
-
task :coffee => "build/kernel/js" do
|
7
|
-
coffee "kernel/app", "build/kernel/js"
|
8
|
-
end
|
9
|
-
|
10
|
-
desc "Clean built kernel"
|
11
|
-
task :clean do
|
12
|
-
rm_rf "build/kernel"
|
13
|
-
end
|
14
|
-
|
15
|
-
file '.node_updated' => 'package.json' do
|
16
|
-
sh "npm install"
|
17
|
-
sh "touch .node_updated"
|
18
|
-
end
|
19
|
-
|
20
|
-
desc "Run jasmine test. If specs not given in argument, runs all test"
|
21
|
-
task :spec => '.node_updated' do |t, args|
|
22
|
-
cd "kernel" do
|
23
|
-
ENV['NODE_PATH'] = "app:#{Calatrava::Project.current.src_paths}:spec:../assets/lib"
|
24
|
-
sh "../node_modules/jasmine-node/bin/jasmine-node --coffee --test-dir spec"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
desc "Run cucumber.js features for kernel"
|
29
|
-
task :features, [:file] => ['.node_updated', :create_sim_link] do |t, args|
|
30
|
-
cd "kernel" do
|
31
|
-
ENV['NODE_PATH'] = "#{Calatrava::Project.current.src_paths}:features/support:../assets/lib:features/step_definitions:../features/testdata"
|
32
|
-
features_to_be_run = args[:file] ? "#{kernel/features}/#{args[:file]}" : "features"
|
33
|
-
sh "../node_modules/cucumber/bin/cucumber.js --tags @all,@kernel --tags ~@wip '#{features_to_be_run}'"
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
namespace :features do
|
38
|
-
task :wip => ['.node_updated', :create_sim_link] do
|
39
|
-
cd "kernel" do
|
40
|
-
ENV['NODE_PATH'] = "#{Calatrava::Project.current.src_paths}:features/support:../assets/lib:features/step_definitions:../features/testdata"
|
41
|
-
sh "../node_modules/cucumber/bin/cucumber.js --tags @wip --tags @kernel features"
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
desc "create sim link for the kernels step_definitions and support folder"
|
47
|
-
task :create_sim_link do
|
48
|
-
sh "ln -sFfh kernel/features/step_definitions/ features/step_definitions"
|
49
|
-
sh "ln -sFfh kernel/features/support/ features/support"
|
50
|
-
end
|
51
|
-
|
52
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
namespace :shell do
|
2
|
-
|
3
|
-
directory "build/shell/css"
|
4
|
-
directory "build/shell/js"
|
5
|
-
|
6
|
-
desc "Convert core scss to css"
|
7
|
-
task :scss => "build/shell/css" do
|
8
|
-
sh "sass --update shell/stylesheets"
|
9
|
-
cp_ne "shell/stylesheets/*.css", "build/shell/css"
|
10
|
-
end
|
11
|
-
|
12
|
-
desc "Build shell js files"
|
13
|
-
task :coffee => "build/shell/js" do
|
14
|
-
coffee "shell", "build/shell/js"
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|
data/lib/calatrava/tasks/web.rb
DELETED
@@ -1,87 +0,0 @@
|
|
1
|
-
namespace :web do
|
2
|
-
|
3
|
-
desc "Creates html from haml using web layout"
|
4
|
-
task :haml => CONFIG[:web][:public] do
|
5
|
-
HamlSupport::compile "#{CONFIG[:web][:layout]}/index.haml", CONFIG[:web][:public]
|
6
|
-
end
|
7
|
-
|
8
|
-
desc "Compile web-specific coffee to javascript"
|
9
|
-
task :coffee => CONFIG[:web][:assets] do
|
10
|
-
coffee File.join(CONFIG[:web][:root], "app", "source"), CONFIG[:web][:js]
|
11
|
-
end
|
12
|
-
|
13
|
-
task :shared => ["shell:scss", "shell:coffee", "kernel:coffee",
|
14
|
-
CONFIG[:web][:css], CONFIG[:web][:imgs], CONFIG[:web][:js], CONFIG[:web][:fonts]] do
|
15
|
-
cp_ne "build/shell/css/*.css", CONFIG[:web][:css]
|
16
|
-
cp_ne "#{ASSETS_IMG_DIR}/*", CONFIG[:web][:imgs]
|
17
|
-
cp_ne "assets/lib/*.js", CONFIG[:web][:js]
|
18
|
-
|
19
|
-
web_manifest = Calatrava::Manifest.new('web')
|
20
|
-
|
21
|
-
web_manifest.js_files.each do |js_file|
|
22
|
-
sh "cp #{js_file} #{CONFIG[:web][:js]}"
|
23
|
-
end
|
24
|
-
|
25
|
-
web_manifest.load_file('web/app/views', 'scripts', :type => :haml, :include_pages => true)
|
26
|
-
|
27
|
-
cp_ne "build/shell/js/**/*.js", CONFIG[:web][:js]
|
28
|
-
cp_ne "build/kernel/js/*.js", CONFIG[:web][:js]
|
29
|
-
cp_ne "#{ASSETS_FONTS_DIR}/*", CONFIG[:web][:fonts]
|
30
|
-
end
|
31
|
-
|
32
|
-
task :app => [:shared, :haml, :coffee]
|
33
|
-
|
34
|
-
desc "Prepares config for the app"
|
35
|
-
task :config do
|
36
|
-
env_coffee = config_path("env.coffee")
|
37
|
-
coffee env_coffee, CONFIG[:web][:js]
|
38
|
-
end
|
39
|
-
|
40
|
-
desc "Build the web app"
|
41
|
-
task :build => [:app, :config]
|
42
|
-
|
43
|
-
desc "Publishes the built web app as an artifact"
|
44
|
-
task :publish => :build do
|
45
|
-
artifact_dir(CONFIG[:web][:public], 'web/public')
|
46
|
-
artifact config_path("mw.conf"), 'web'
|
47
|
-
artifact 'web/deploy_mw.sh', 'web'
|
48
|
-
end
|
49
|
-
|
50
|
-
namespace :apache do
|
51
|
-
|
52
|
-
file 'web/apache/public' do
|
53
|
-
cd 'web/apache' do
|
54
|
-
ln_s "../public", "public"
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
desc "launch a non-daemon apache instance on port 8888 which will serve our local app and also proxy to backend services"
|
59
|
-
task :start => [:build, 'web/apache/public', APACHE_LOGS_DIR] do
|
60
|
-
configure_apache
|
61
|
-
launch_apache
|
62
|
-
end
|
63
|
-
|
64
|
-
task :background => [:build, 'web/apache/public', APACHE_LOGS_DIR] do
|
65
|
-
configure_apache
|
66
|
-
launch_apache :background => true
|
67
|
-
end
|
68
|
-
|
69
|
-
desc "Reload the apache configuration"
|
70
|
-
task :reload do
|
71
|
-
reload_apache
|
72
|
-
end
|
73
|
-
|
74
|
-
desc "Stop the apache configuration"
|
75
|
-
task :stop do
|
76
|
-
stop_apache
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
desc "Clean web public directory"
|
81
|
-
task :clean do
|
82
|
-
rm_rf CONFIG[:web][:public]
|
83
|
-
rm_rf APACHE_LOGS_DIR
|
84
|
-
rm_rf File.join(APACHE_DIR, 'conf', 'httpd.conf')
|
85
|
-
end
|
86
|
-
|
87
|
-
end
|