calatrava 0.6.7 → 0.6.8
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 +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
|