calatrava 0.6.7 → 0.6.8
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.markdown +18 -0
- data/lib/calatrava/app_builder.rb +20 -4
- data/lib/calatrava/manifest.rb +7 -1
- data/lib/calatrava/tasks/assets.rb +2 -2
- data/lib/calatrava/tasks/automation.rb +2 -13
- data/lib/calatrava/templates/Gemfile.calatrava +4 -0
- data/lib/calatrava/templates/droid/manifest.yml +4 -1
- data/lib/calatrava/templates/features/converter.feature +10 -0
- data/lib/calatrava/templates/features/step_definitions/converter_steps.rb +29 -0
- data/lib/calatrava/templates/features/support/env.rb +2 -0
- data/lib/calatrava/templates/ios/manifest.yml +4 -1
- data/lib/calatrava/templates/package.json +1 -1
- data/lib/calatrava/templates/web/manifest.yml +4 -1
- data/lib/calatrava/version.rb +1 -1
- data/spec/app_builder_spec.rb +5 -2
- data/spec/manifest_spec.rb +19 -1
- metadata +5 -2
data/CHANGES.markdown
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
## v0.6.8
|
2
|
+
|
3
|
+
New features:
|
4
|
+
* Ability to specify js libraries that need to be loaded with js
|
5
|
+
runtime running kernel code.
|
6
|
+
Note: This changes the format of manifest.yml
|
7
|
+
|
8
|
+
Bugs Fixed:
|
9
|
+
* [Issue #87][i87]: Fixing Calatrava build errors by changing
|
10
|
+
jasmine-node version number
|
11
|
+
* [Issue #86][i86]: Files and folders under asset folders are not
|
12
|
+
copied recursively
|
13
|
+
* [Issue #84][i84]: Clean up automation tasks (a sample feature
|
14
|
+
also implemented).
|
15
|
+
|
1
16
|
## v0.6.7
|
2
17
|
|
3
18
|
New features:
|
@@ -182,3 +197,6 @@ Changes that will affect existing projects:
|
|
182
197
|
[i76]: https://github.com/calatrava/calatrava/pull/76
|
183
198
|
[i33]: https://github.com/calatrava/calatrava/issues/33
|
184
199
|
[i83]: https://github.com/calatrava/calatrava/issues/83
|
200
|
+
[i87]: https://github.com/calatrava/calatrava/pull/87
|
201
|
+
[i86]: https://github.com/calatrava/calatrava/pull/86
|
202
|
+
[i84]: https://github.com/calatrava/calatrava/pull/84
|
@@ -22,11 +22,27 @@ module Calatrava
|
|
22
22
|
"#{build_scripts_dir}/#{File.basename(cf, '.coffee')}.js"
|
23
23
|
end
|
24
24
|
|
25
|
-
def
|
25
|
+
def change_path_to_relative files, &change_file_path
|
26
26
|
build_path = Pathname.new(File.dirname(build_dir))
|
27
|
-
|
28
|
-
Pathname.new(
|
29
|
-
end
|
27
|
+
files.collect do |file_to_add|
|
28
|
+
Pathname.new(change_file_path.call(file_to_add)).relative_path_from(build_path).to_s
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def library_files
|
33
|
+
change_path_to_relative @manifest.kernel_libraries do |js_library|
|
34
|
+
"#{build_scripts_dir}/#{File.basename(js_library)}"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def feature_files
|
39
|
+
change_path_to_relative @manifest.kernel_bootstrap do |coffee_file|
|
40
|
+
js_file(coffee_file)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def load_instructions
|
45
|
+
feature_files.concat(library_files).join($/)
|
30
46
|
end
|
31
47
|
|
32
48
|
def haml_files
|
data/lib/calatrava/manifest.rb
CHANGED
@@ -8,7 +8,13 @@ module Calatrava
|
|
8
8
|
def initialize(path, app_dir, kernel, shell)
|
9
9
|
@path, @kernel, @shell = path, kernel, shell
|
10
10
|
@src_file = "#{app_dir}/manifest.yml"
|
11
|
-
|
11
|
+
files_to_load = YAML.load(IO.read("#{@path}/#{@src_file}"))
|
12
|
+
@feature_list = files_to_load["features"]
|
13
|
+
@kernel_libraries = files_to_load["kernel_libs"] || []
|
14
|
+
end
|
15
|
+
|
16
|
+
def kernel_libraries
|
17
|
+
@kernel_libraries
|
12
18
|
end
|
13
19
|
|
14
20
|
def features
|
@@ -1,5 +1,5 @@
|
|
1
1
|
def cp_ne(source, dest_dir)
|
2
|
-
|
2
|
+
cp_r Dir[source], dest_dir, :remove_destination => true
|
3
3
|
end
|
4
4
|
|
5
5
|
def coffee(in_dir_or_file, out_dir)
|
@@ -8,4 +8,4 @@ def coffee(in_dir_or_file, out_dir)
|
|
8
8
|
ok = system "node_modules/coffee-script/bin/coffee --compile --output #{out_dir} #{in_dir_or_file}"
|
9
9
|
fail "Error compiling CoffeeScript: '#{in_dir_or_file}'" if !ok
|
10
10
|
end
|
11
|
-
end
|
11
|
+
end
|
@@ -1,27 +1,16 @@
|
|
1
|
+
ROOT_DIR ||= ".".freeze
|
1
2
|
FEATURES_DIR = File.join('.', 'features').freeze
|
2
3
|
FEATURE_RESULTS_DIR = File.join('.', 'results').freeze
|
3
4
|
|
4
5
|
namespace :automation do
|
5
6
|
namespace :web do
|
6
7
|
desc "Runs cucumber tests against the web app"
|
7
|
-
task :features, [:file] => [:
|
8
|
+
task :features, [:file] => [:clean_up_results_dir] do |t, args|
|
8
9
|
ENV['PATH'] = "#{ROOT_DIR}/web/features:#{ENV['PATH']}"
|
9
10
|
features_to_be_run = args[:file] ? "#{FEATURES_DIR}/#{args[:file]}" : FEATURES_DIR
|
10
11
|
sh "cucumber --strict --tags @all,@web --tags ~@wip #{features_to_be_run} --format html --out #{FEATURE_RESULTS_DIR}/report.html --format pretty"
|
11
12
|
end
|
12
13
|
|
13
|
-
desc "create sim link for the ios step_definitions and support folder"
|
14
|
-
task :create_sim_link do
|
15
|
-
sh "rm -rf #{FEATURES_DIR}/step_definitions"
|
16
|
-
sh "rm -rf #{FEATURES_DIR}/support"
|
17
|
-
end
|
18
|
-
|
19
|
-
desc "copy the web_steps file to web_steps.rb"
|
20
|
-
task :copy_steps_file do
|
21
|
-
sh "rm -f #{FEATURES_DIR}/*.rb"
|
22
|
-
sh "cp #{FEATURES_DIR}/web_steps #{FEATURES_DIR}/web_steps.rb"
|
23
|
-
end
|
24
|
-
|
25
14
|
desc "delete and create the results dir"
|
26
15
|
task :clean_up_results_dir do
|
27
16
|
sh "rm -rf #{FEATURE_RESULTS_DIR}"
|
@@ -0,0 +1,10 @@
|
|
1
|
+
Feature: Converter
|
2
|
+
As an international traveller
|
3
|
+
I want to check if I am getting a good exchange rate
|
4
|
+
So that I can haggle and get a better rate
|
5
|
+
|
6
|
+
@web
|
7
|
+
Scenario: Converting to Aussie dollars
|
8
|
+
Given I have 100 USD
|
9
|
+
When I check conversion rate to AUD
|
10
|
+
Then the result should be greater than 100
|
@@ -0,0 +1,29 @@
|
|
1
|
+
Before do
|
2
|
+
@driver = Selenium::WebDriver.for :firefox
|
3
|
+
end
|
4
|
+
|
5
|
+
After do
|
6
|
+
@driver.quit
|
7
|
+
end
|
8
|
+
|
9
|
+
Given(/^I have (\d+) (.*)$/) do |amount, in_currency|
|
10
|
+
@driver.get "http://localhost:8888"
|
11
|
+
in_currency_selector = Selenium::WebDriver::Support::Select.new(@driver.find_element :id => "in_currency")
|
12
|
+
in_currency_selector.select_by :value, in_currency
|
13
|
+
in_amount = @driver.find_element :id => "in_amount"
|
14
|
+
in_amount.clear
|
15
|
+
in_amount.send_keys amount
|
16
|
+
end
|
17
|
+
|
18
|
+
When(/^I check conversion rate to (.*)$/) do |out_currency|
|
19
|
+
out_currency_selector = Selenium::WebDriver::Support::Select.new(@driver.find_element :id => "out_currency")
|
20
|
+
out_currency_selector.select_by :value, out_currency
|
21
|
+
convert_button = @driver.find_element :id => "convert"
|
22
|
+
convert_button.click
|
23
|
+
end
|
24
|
+
|
25
|
+
Then(/^the result should be greater than (\d+)$/) do |amount|
|
26
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 3) # seconds
|
27
|
+
wait.until { @driver.find_element(:id => "out_amount").attribute("value").to_f > 0 }
|
28
|
+
@driver.find_element(:id => "out_amount").attribute("value").to_f.should > amount.to_f
|
29
|
+
end
|
data/lib/calatrava/version.rb
CHANGED
data/spec/app_builder_spec.rb
CHANGED
@@ -13,7 +13,8 @@ describe Calatrava::AppBuilder do
|
|
13
13
|
let(:manifest) { double('web mf',
|
14
14
|
:coffee_files => ['path/to/kernel.coffee', 'diff/path/shell.coffee'],
|
15
15
|
:kernel_bootstrap => ['path/to/kernel.coffee'],
|
16
|
-
:haml_files => ['diff/path/shell.haml']
|
16
|
+
:haml_files => ['diff/path/shell.haml'],
|
17
|
+
:kernel_libraries => ['path/to/external/kernel_lib.js']) }
|
17
18
|
|
18
19
|
let(:app) { Calatrava::AppBuilder.new('app', 'app/build', manifest) }
|
19
20
|
|
@@ -32,9 +33,10 @@ describe Calatrava::AppBuilder do
|
|
32
33
|
end
|
33
34
|
|
34
35
|
context '#load_file' do
|
35
|
-
subject { app.load_instructions.lines.to_a }
|
36
|
+
subject { app.load_instructions.lines.to_a.each(&:chomp!) }
|
36
37
|
|
37
38
|
it { should include 'build/scripts/kernel.js' }
|
39
|
+
it { should include 'build/scripts/kernel_lib.js' }
|
38
40
|
it { should_not include 'build/scripts/shell.js' }
|
39
41
|
end
|
40
42
|
|
@@ -43,4 +45,5 @@ describe Calatrava::AppBuilder do
|
|
43
45
|
|
44
46
|
it { should include 'diff/path/shell.haml' }
|
45
47
|
end
|
48
|
+
|
46
49
|
end
|
data/spec/manifest_spec.rb
CHANGED
@@ -6,7 +6,7 @@ describe Calatrava::Manifest do
|
|
6
6
|
|
7
7
|
before(:each) do
|
8
8
|
create_dir 'app'
|
9
|
-
write_file 'app/manifest.yml', ['included'].to_yaml
|
9
|
+
write_file 'app/manifest.yml', {'features' => ['included'], 'kernel_libs' => ['kernel_lib.js']}.to_yaml
|
10
10
|
end
|
11
11
|
|
12
12
|
let(:features) { }
|
@@ -59,4 +59,22 @@ describe Calatrava::Manifest do
|
|
59
59
|
it { should_not include 'shell_inc' }
|
60
60
|
end
|
61
61
|
|
62
|
+
context '#kernel_libraries' do
|
63
|
+
context "#when present" do
|
64
|
+
subject { manifest.kernel_libraries }
|
65
|
+
|
66
|
+
it { should include 'kernel_lib.js'}
|
67
|
+
end
|
68
|
+
|
69
|
+
context "#when not present" do
|
70
|
+
before do
|
71
|
+
write_file 'app/manifest.yml', {'features' => ['included'], 'kernel_libs' => nil}.to_yaml
|
72
|
+
end
|
73
|
+
|
74
|
+
subject { manifest.kernel_libraries }
|
75
|
+
|
76
|
+
it { should be_empty}
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
62
80
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: calatrava
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-07-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -255,6 +255,9 @@ files:
|
|
255
255
|
- lib/calatrava/templates/droid/calatrava/src/com/calatrava/shell/WebViewActivity.java
|
256
256
|
- lib/calatrava/templates/droid/calatrava/src/com/calatrava/shell/WebViewPageStateManager.java
|
257
257
|
- lib/calatrava/templates/droid/manifest.yml
|
258
|
+
- lib/calatrava/templates/features/converter.feature
|
259
|
+
- lib/calatrava/templates/features/step_definitions/converter_steps.rb
|
260
|
+
- lib/calatrava/templates/features/support/env.rb
|
258
261
|
- lib/calatrava/templates/ios/Podfile.calatrava
|
259
262
|
- lib/calatrava/templates/ios/manifest.yml
|
260
263
|
- lib/calatrava/templates/ios/src/AppDelegate.h
|