calatrava 0.0.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. data/Rakefile +7 -1
  2. data/calatrava.gemspec +2 -2
  3. data/features/sample_app.feature +27 -0
  4. data/features/step_definitions/app_steps.rb +3 -0
  5. data/features/support/calatrava_app.rb +31 -0
  6. data/features/support/env.rb +18 -0
  7. data/lib/calatrava/project.rb +5 -2
  8. data/lib/calatrava/tasks/apache.rb +20 -10
  9. data/lib/calatrava/tasks/droid.rb +1 -1
  10. data/lib/calatrava/tasks/web.rb +5 -0
  11. data/lib/calatrava/templates/droid/app/bridge.coffee +21 -120
  12. data/lib/calatrava/templates/droid/calatrava/{src/com/CALATRAVA_TMPL → CALATRAVA_TMPL}/AndroidManifest.xml.calatrava +2 -2
  13. data/lib/calatrava/templates/droid/calatrava/{calatrava-build.xml → CALATRAVA_TMPL/build.xml.calatrava} +1 -1
  14. data/lib/calatrava/templates/droid/calatrava/src/com/CALATRAVA_TMPL/ConversionForm.java.calatrava +4 -4
  15. data/lib/calatrava/templates/droid/calatrava/src/com/CALATRAVA_TMPL/Title.java.calatrava +2 -2
  16. data/lib/calatrava/templates/droid/calatrava/src/com/calatrava/bridge/KernelBridge.java +1 -0
  17. data/lib/calatrava/templates/droid/calatrava/src/com/calatrava/bridge/PageRegistry.java +13 -1
  18. data/lib/calatrava/templates/droid/calatrava/src/com/calatrava/bridge/RegisteredActivity.java +7 -1
  19. data/lib/calatrava/templates/droid/calatrava/src/com/calatrava/bridge/RhinoService.java +12 -7
  20. data/lib/calatrava/templates/droid/calatrava/src/com/calatrava/shell/WebViewActivity.java +2 -4
  21. data/lib/calatrava/templates/ios/src/ConversionFormViewController.h +4 -0
  22. data/lib/calatrava/templates/ios/src/ConversionFormViewController.m +36 -3
  23. data/lib/calatrava/templates/ios/src/ConversionFormViewController.xib +144 -20
  24. data/lib/calatrava/templates/kernel/app/calatrava.coffee +171 -3
  25. data/lib/calatrava/templates/kernel/app/converter/controller.converter.coffee +37 -42
  26. data/lib/calatrava/templates/kernel/app/converter/init.converter.coffee +4 -4
  27. data/lib/calatrava/templates/kernel/spec/converter/controller.converter.spec.coffee +6 -6
  28. data/lib/calatrava/templates/kernel/spec/stubView.coffee +18 -2
  29. data/lib/calatrava/templates/package.json +0 -1
  30. data/lib/calatrava/templates/shell/pages/converter/conversionForm.haml +6 -4
  31. data/lib/calatrava/templates/shell/pages/converter/page.conversionForm.coffee +18 -24
  32. data/lib/calatrava/templates/shell/stylesheets/shell.scss +0 -0
  33. data/lib/calatrava/templates/web/app/source/bridge.coffee +61 -93
  34. data/lib/calatrava/version.rb +1 -1
  35. metadata +39 -34
  36. data/lib/calatrava/templates/ios/res/js/bridge.js +0 -249
  37. data/lib/calatrava/templates/shell/shell.scss +0 -1
@@ -4,8 +4,8 @@ example.converter ?= {}
4
4
  example.converter.start = ->
5
5
  example.converter.controller
6
6
  views:
7
- conversionForm: tw.bridge.pages.pageNamed "conversionForm"
8
- changePage: tw.bridge.changePage
9
- ajax: tw.bridge.request
7
+ conversionForm: calatrava.bridge.pages.pageNamed "conversionForm"
8
+ changePage: calatrava.bridge.changePage
9
+ ajax: calatrava.bridge.request
10
10
 
11
- tw.bridge.changePage "conversionForm"
11
+ calatrava.bridge.changePage "conversionForm"
@@ -27,11 +27,11 @@ describe 'converter controller', ->
27
27
  describe 'converting', ->
28
28
 
29
29
  beforeEach ->
30
+ views.conversionForm.fieldContains 'in_currency', 'USD'
31
+ views.conversionForm.fieldContains 'out_currency', 'AUD'
32
+ views.conversionForm.fieldContains 'in_amount', 100
30
33
  views.conversionForm.trigger 'convert'
31
34
 
32
- it 'should get the amount to convert', ->
33
- expect(views.conversionForm.get).toHaveBeenCalledWith('amount')
34
- it 'should get the starting currency', ->
35
- expect(views.conversionForm.get).toHaveBeenCalledWith('start_currency')
36
- it 'should get the ending currency', ->
37
- expect(views.conversionForm.get).toHaveBeenCalledWith('end_currency')
35
+ it 'should render the correctly converted amount', ->
36
+ expect(views.conversionForm.render).toHaveBeenCalledWith
37
+ out_amount: 96
@@ -3,15 +3,31 @@ stubView ?= {}
3
3
  stubView =
4
4
  create: (name) ->
5
5
  boundEvents: {}
6
+ fieldValues: {}
6
7
  trigger: (event) ->
7
8
  @boundEvents[event]()
8
9
 
9
10
  bind: (event, handler) ->
10
11
  @boundEvents[event] = handler
11
12
 
12
- render: (viewObject) ->
13
+ render: jasmine.createSpy("#{name} render")
14
+
15
+ fieldContains: (name, value) -> @fieldValues[name] = value
16
+ get: (name, callback) ->
17
+ callback(@fieldValues[name])
18
+
19
+ getMany: (fields, callback) ->
20
+ results = {}
21
+ getManyPrime = (remaining) =>
22
+ if (remaining.length > 0)
23
+ field = _.first(remaining)
24
+ @get field, (fieldValue) ->
25
+ results[field] = fieldValue
26
+ getManyPrime(_.rest(remaining))
27
+ else
28
+ callback(results)
29
+ getManyPrime(fields)
13
30
 
14
- get: jasmine.createSpy('get')
15
31
 
16
32
  hideErrors: ()->
17
33
 
@@ -11,7 +11,6 @@
11
11
  , "ws" : "0.4.8"
12
12
  , "jasmine-node" : "*"
13
13
  , "should" : "*"
14
- , "underscore" : "*"
15
14
  , "jasmine-reporters" : "*"
16
15
  , "walkdir" : "*"
17
16
  , "request" : "*"
@@ -6,7 +6,9 @@
6
6
  {{/currencies}}
7
7
 
8
8
  %h3 THE BEST CURRENCY CONVERTER EVER
9
- %select.in_currency
10
- %input.in_amount(type='number' placeholder='amount')
11
- %select.out_currency
12
- %button GO
9
+ %select#in_currency
10
+ %input#in_amount(type='number' placeholder='amount')
11
+ %select#out_currency
12
+ %br
13
+ %button#convert GO
14
+ %input#out_amount(placeholder='no result' readonly="true" )
@@ -4,39 +4,33 @@ calatrava.pageView.conversionForm = ->
4
4
 
5
5
  #TODO: refactor out
6
6
  $page = $('#conversionForm')
7
- $p = (sel)-> $(sel,$page)
8
-
9
- eventHandlers = {}
10
-
11
- trigger = (event, args...) ->
12
- eventHandlers[event](args...)
7
+ $p = (sel)-> $(sel, $page)
13
8
 
14
9
  renderCurrencyDropdown = ($select, currencies)->
15
10
  $select.empty().html ich.currencyDropdownTmpl
16
11
  currencies: currencies
17
12
 
18
- renderSection = (key,data) ->
13
+ renderSection = (key, data) ->
19
14
  switch key
20
- when 'inCurrencies' then renderCurrencyDropdown( $p('.in_currency'), data )
21
- when 'outCurrencies' then renderCurrencyDropdown( $p('.out_currency'), data )
22
- else console.warn( "unrecognized render section #{key}" )
23
-
24
-
25
- $p(".out_currency").on 'change', ->
26
- selectedCurrencyCode = $(this).val()
27
- trigger("selectedOutCurrency", selectedCurrencyCode)
28
- $p(".in_currency").on 'change', ->
29
- selectedCurrencyCode = $(this).val()
30
- trigger("selectedInCurrency", selectedCurrencyCode)
15
+ when 'inCurrencies' then renderCurrencyDropdown($p('#in_currency'), data)
16
+ when 'outCurrencies' then renderCurrencyDropdown($p('#out_currency'), data)
17
+ else $p("#" + key).val(data)
31
18
 
32
19
  bind: (event, handler) ->
33
- eventHandlers[event] = handler
20
+ console.log "event: #{event}"
21
+ switch event
22
+ when 'selectedInCurrency' then $p("#in_currency").off('change').on 'change', handler
23
+ when 'selectedOutCurrency' then $p("#out_currency").off('change').on 'change', handler
24
+ else
25
+ $p("#" + event).off('click').on 'click', handler
34
26
 
35
27
  render: (message) ->
36
28
  console.log('rendering...', message)
37
- renderSection(section,data) for own section,data of message
29
+ renderSection(section, data) for own section,data of message
30
+
31
+ get: (field) ->
32
+ console.log('getting...', field)
33
+ $page.find("#" + field).val()
38
34
 
39
- get: (field) -> console.log( 'getting...', field )
40
-
41
- show: -> console.log( 'showing...' )
42
- hide: -> console.log( 'hiding...' )
35
+ show: -> console.log('showing...')
36
+ hide: -> console.log('hiding...')
@@ -1,101 +1,13 @@
1
- tw ?= {}
2
- tw.bridge = tw.bridge ? {}
1
+ calatrava ?= {}
2
+ calatrava.bridge = calatrava.bridge ? {}
3
+ calatrava.bridge.web = calatrava.bridge.web ? {}
3
4
 
4
- tw.bridge.environment = () ->
5
+ calatrava.bridge.environment = () ->
5
6
  sessionTimeout: 600
6
7
  serviceEndpoint: ""
7
8
  apiEndpoint: ""
8
9
 
9
- tw.bridge.pageProxy = (name, real) ->
10
- handlers = {}
11
- methods =
12
- bind: (event, callback) ->
13
- if event == 'pageOpened'
14
- handlers.pageOpened = callback
15
- else
16
- real.bind(event, callback)
17
-
18
- trigger: (event) ->
19
- handlers[event]() if handlers[event]?
20
-
21
- get: (field) -> String(real.get(field))
22
-
23
- # Most functions just route through to the original
24
- _.each ['render', 'show', 'hide', 'showDialog'], (method) ->
25
- methods[method] = () -> real[method].apply(real, arguments)
26
-
27
- methods
28
-
29
- class tw.bridge.pages
30
- pageObjects = {}
31
-
32
- pages.pageNamed = (pageName) ->
33
- if !pageObjects[pageName]
34
- pageView = calatrava.pageView[pageName]()
35
- pageObjects[pageName] = tw.bridge.pageProxy(pageName, pageView)
36
- pageObjects[pageName]
37
-
38
- tw.bridge.changePage = (page, options = {}) ->
39
- pageObject = tw.bridge.pages.pageNamed page
40
- if !options.back
41
- history.pushState({page: page}, "", "")
42
- tw.currentPage.hide() if tw.currentPage
43
- pageObject.show()
44
- tw.currentPage = pageObject
45
- pageObject.trigger 'pageOpened'
46
- page
47
-
48
- tw.bridge.widgets = (() ->
49
- displayDateWidget = (options, callback) ->
50
- options["month"] = Number(options["month"])+1
51
- _.each ["year", "month", "day"], (val) -> $("#dummy_" + val).val(options[val]) if !$("#dummy_" + val).val()
52
- $("#dummy_date_picker").show()
53
-
54
- $("#dummy_date_button").unbind().bind 'click', () ->
55
- $("#dummy_date_picker").hide()
56
- callback $("#dummy_year").val(), $("#dummy_month").val() - 1, $("#dummy_day").val()
57
-
58
- displayAirportWidget = (callback) ->
59
- $("#dummy_airport_select_widget").show()
60
-
61
- $("#dummy_airport_set_button").unbind().bind 'click', () ->
62
- $("#dummy_airport_select_widget").hide()
63
- airportCode = $("#dummy_airport_code").val()
64
- airportMap = {ORD: "Chicago", ATL: "Atlanta", DEL: "Delhi", BOM: "Mumbai"}
65
- callback airportCode, airportMap[airportCode]
66
-
67
-
68
- display: (widget, options, callback) ->
69
- if widget == "date"
70
- displayDateWidget options.selectedDate, callback
71
- else if widget == "airport"
72
- displayAirportWidget callback
73
- )()
74
-
75
- tw.bridge.alert = (msg) -> alert(msg)
76
-
77
- tw.bridge.openUrl = (url) ->
78
- window.open(url)
79
-
80
- tw.bridge.trackEvent = (pageName, channel, eventName, variables, properties) ->
81
- describedKeyValuePairs = (pairs) -> _.map(pairs, (val, key) -> "#{key}: '#{val}'").join('; ')
82
- console.log "Omniture track event: page: '#{pageName}'; channel: '#{channel}'; events: '#{eventName}'"
83
- console.log "Omniture variables: #{describedKeyValuePairs(variables)}"
84
- console.log "Omniture properties: #{describedKeyValuePairs(properties)}"
85
-
86
- tw.bridge.timers = (() ->
87
- start: (timeout, callback) ->
88
- window.setTimeout(callback, timeout * 1000)
89
-
90
- clearTimer: (timerId) ->
91
- )()
92
-
93
- tw.bridge.dialog = (() ->
94
- display: (dialogName) ->
95
- tw.currentPage.showDialog dialogName
96
- )()
97
-
98
- tw.bridge.request = (options) ->
10
+ calatrava.bridge.web.ajax = (options) ->
99
11
  loader = $("#loader")
100
12
 
101
13
  errorHandler = () ->
@@ -156,3 +68,59 @@ tw.bridge.request = (options) ->
156
68
  showLoader()
157
69
  options.failure()
158
70
  complete: hideLoader
71
+
72
+ calatrava.bridge.web.page = (pageName, proxyId) ->
73
+ real = calatrava.pageView[pageName]()
74
+ handlers = {}
75
+ methods =
76
+ bind: (event, callback) ->
77
+ if event == 'pageOpened'
78
+ handlers.pageOpened = callback
79
+ else
80
+ real.bind(event, callback)
81
+
82
+ trigger: (event) ->
83
+ handlers[event]() if handlers[event]?
84
+
85
+ get: (field, getId) ->
86
+ calatrava.inbound.fieldRead(proxyId, getId, String(real.get(field)))
87
+
88
+ # Most functions just route through to the original
89
+ _.each ['render', 'show', 'hide'], (method) ->
90
+ methods[method] = () -> real[method].apply(real, arguments)
91
+
92
+ methods
93
+
94
+ calatrava.bridge.runtime = (() ->
95
+
96
+ pages = {}
97
+ pagesNamed = {}
98
+ currentPage = null
99
+
100
+ registerProxyForPage: (proxyId, pageName) ->
101
+ pages[proxyId] = calatrava.bridge.web.page(pageName, proxyId)
102
+ pagesNamed[pageName] = pages[proxyId]
103
+
104
+ changePage: (page, options = {}) ->
105
+ pageObject = pagesNamed[page]
106
+ if !options.back
107
+ history.pushState({page: page}, "", "")
108
+ currentPage.hide() if currentPage
109
+ pageObject.show()
110
+ currentPage = pageObject
111
+ pageObject.trigger 'pageOpened'
112
+
113
+ attachProxyEventHandler: (proxyId, event) ->
114
+ pages[proxyId].bind event, () ->
115
+ args = [proxyId, event].concat(_.toArray(arguments))
116
+ calatrava.inbound.dispatchEvent.apply(calatrava.inbound, args)
117
+
118
+ valueOfProxyField: (proxyId, field, getId) -> pages[proxyId].get(field, getId)
119
+ renderProxy: (viewObject, proxyId) -> pages[proxyId].render(viewObject)
120
+ issueRequest: calatrava.bridge.web.ajax
121
+ openUrl: (url) -> window.open(url)
122
+ log: (message) -> console.log(message)
123
+
124
+ startTimerWithTimeout: (timerId, timeout) ->
125
+ window.setTimeout((() -> calatrava.inbound.fireTimer(timerId)), timeout * 1000)
126
+ )()
@@ -1,3 +1,3 @@
1
1
  module Calatrava
2
- Version = "0.0.1"
2
+ Version = "0.5.0"
3
3
  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.0.1
4
+ version: 0.5.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-18 00:00:00.000000000 Z
12
+ date: 2012-10-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70361649032740 !ruby/object:Gem::Requirement
16
+ requirement: &70314197260240 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70361649032740
24
+ version_requirements: *70314197260240
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: aruba
27
- requirement: &70361649032320 !ruby/object:Gem::Requirement
27
+ requirement: &70314197259820 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70361649032320
35
+ version_requirements: *70314197259820
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70361649031900 !ruby/object:Gem::Requirement
38
+ requirement: &70314197259400 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70361649031900
46
+ version_requirements: *70314197259400
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: thor
49
- requirement: &70361649031480 !ruby/object:Gem::Requirement
49
+ requirement: &70314197258980 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70361649031480
57
+ version_requirements: *70314197258980
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: haml
60
- requirement: &70361649031060 !ruby/object:Gem::Requirement
60
+ requirement: &70314197258560 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70361649031060
68
+ version_requirements: *70314197258560
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sass
71
- requirement: &70361649030640 !ruby/object:Gem::Requirement
71
+ requirement: &70314197258140 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70361649030640
79
+ version_requirements: *70314197258140
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: mustache
82
- requirement: &70361648294920 !ruby/object:Gem::Requirement
82
+ requirement: &70314197257720 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *70361648294920
90
+ version_requirements: *70314197257720
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: xcoder
93
- requirement: &70361648292960 !ruby/object:Gem::Requirement
93
+ requirement: &70314197257300 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *70361648292960
101
+ version_requirements: *70314197257300
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: xcodeproj
104
- requirement: &70361648290200 !ruby/object:Gem::Requirement
104
+ requirement: &70314197256880 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :runtime
111
111
  prerelease: false
112
- version_requirements: *70361648290200
112
+ version_requirements: *70314197256880
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: cucumber
115
- requirement: &70361655819580 !ruby/object:Gem::Requirement
115
+ requirement: &70314197256460 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '0'
121
121
  type: :runtime
122
122
  prerelease: false
123
- version_requirements: *70361655819580
123
+ version_requirements: *70314197256460
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: frank-cucumber
126
- requirement: &70361655819160 !ruby/object:Gem::Requirement
126
+ requirement: &70314197256040 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: '0'
132
132
  type: :runtime
133
133
  prerelease: false
134
- version_requirements: *70361655819160
134
+ version_requirements: *70314197256040
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: watir-webdriver
137
- requirement: &70361655818740 !ruby/object:Gem::Requirement
137
+ requirement: &70314197255620 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ! '>='
@@ -142,10 +142,10 @@ dependencies:
142
142
  version: '0'
143
143
  type: :runtime
144
144
  prerelease: false
145
- version_requirements: *70361655818740
145
+ version_requirements: *70314197255620
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: cocoapods
148
- requirement: &70361655818320 !ruby/object:Gem::Requirement
148
+ requirement: &70314197255200 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ! '>='
@@ -153,11 +153,11 @@ dependencies:
153
153
  version: '0'
154
154
  type: :runtime
155
155
  prerelease: false
156
- version_requirements: *70361655818320
156
+ version_requirements: *70314197255200
157
157
  description: A framework to build cross-platform mobile apps with high quality native
158
158
  UIs.
159
159
  email:
160
- - gga@thoughtworks.com
160
+ - giles.alexander@gmail.com
161
161
  executables:
162
162
  - calatrava
163
163
  extensions: []
@@ -174,7 +174,10 @@ files:
174
174
  - calatrava.gemspec
175
175
  - features/cli.feature
176
176
  - features/project.feature
177
+ - features/sample_app.feature
178
+ - features/step_definitions/app_steps.rb
177
179
  - features/step_definitions/template_steps.rb
180
+ - features/support/calatrava_app.rb
178
181
  - features/support/env.rb
179
182
  - lib/calatrava.rb
180
183
  - lib/calatrava/app.rb
@@ -209,11 +212,11 @@ files:
209
212
  - lib/calatrava/templates/config/templates/env.coffee.erb
210
213
  - lib/calatrava/templates/config/templates/httpd.conf.erb
211
214
  - lib/calatrava/templates/droid/app/bridge.coffee
215
+ - lib/calatrava/templates/droid/calatrava/CALATRAVA_TMPL/AndroidManifest.xml.calatrava
216
+ - lib/calatrava/templates/droid/calatrava/CALATRAVA_TMPL/build.xml.calatrava
212
217
  - lib/calatrava/templates/droid/calatrava/ant/calatrava.xml
213
- - lib/calatrava/templates/droid/calatrava/calatrava-build.xml
214
218
  - lib/calatrava/templates/droid/calatrava/ivy.xml
215
219
  - lib/calatrava/templates/droid/calatrava/ivysettings.xml
216
- - lib/calatrava/templates/droid/calatrava/src/com/CALATRAVA_TMPL/AndroidManifest.xml.calatrava
217
220
  - lib/calatrava/templates/droid/calatrava/src/com/CALATRAVA_TMPL/ConversionForm.java.calatrava
218
221
  - lib/calatrava/templates/droid/calatrava/src/com/CALATRAVA_TMPL/Title.java.calatrava
219
222
  - lib/calatrava/templates/droid/calatrava/src/com/calatrava/CalatravaPage.java
@@ -229,7 +232,6 @@ files:
229
232
  - lib/calatrava/templates/droid/manifest.yml
230
233
  - lib/calatrava/templates/ios/Podfile.calatrava
231
234
  - lib/calatrava/templates/ios/manifest.yml
232
- - lib/calatrava/templates/ios/res/js/bridge.js
233
235
  - lib/calatrava/templates/ios/res/xibs/ProgressViewController.xib
234
236
  - lib/calatrava/templates/ios/res/xibs/WebViewController.xib
235
237
  - lib/calatrava/templates/ios/src/AppDelegate.h
@@ -262,7 +264,7 @@ files:
262
264
  - lib/calatrava/templates/shell/layouts/single_page.haml
263
265
  - lib/calatrava/templates/shell/pages/converter/conversionForm.haml
264
266
  - lib/calatrava/templates/shell/pages/converter/page.conversionForm.coffee
265
- - lib/calatrava/templates/shell/shell.scss
267
+ - lib/calatrava/templates/shell/stylesheets/shell.scss
266
268
  - lib/calatrava/templates/shell/support/shell.coffee
267
269
  - lib/calatrava/templates/web/apache/conf/mime.types
268
270
  - lib/calatrava/templates/web/app/source/bridge.coffee
@@ -271,7 +273,7 @@ files:
271
273
  - lib/calatrava/templates/web/deploy/instance.sh
272
274
  - lib/calatrava/templates/web/manifest.yml
273
275
  - lib/calatrava/version.rb
274
- homepage: ''
276
+ homepage: http://calatrava.github.com
275
277
  licenses: []
276
278
  post_install_message:
277
279
  rdoc_options: []
@@ -298,5 +300,8 @@ summary: Cross-platform mobile apps with native UIs
298
300
  test_files:
299
301
  - features/cli.feature
300
302
  - features/project.feature
303
+ - features/sample_app.feature
304
+ - features/step_definitions/app_steps.rb
301
305
  - features/step_definitions/template_steps.rb
306
+ - features/support/calatrava_app.rb
302
307
  - features/support/env.rb