joosy 1.2.0.alpha.59 → 1.2.0.alpha.62

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -1
  3. data/.travis.yml +2 -1
  4. data/Gruntfile.coffee +50 -217
  5. data/bin/joosy +1 -1
  6. data/bower.json +1 -1
  7. data/build/joosy.js +5 -5
  8. data/{generators → lib/generators}/base.coffee +1 -1
  9. data/{generators → lib/generators}/command/command.coffee +1 -1
  10. data/{generators → lib/generators}/command/help.coffee +0 -0
  11. data/{generators → lib/generators}/layout.coffee +0 -0
  12. data/{generators → lib/generators}/page.coffee +0 -0
  13. data/{generators → lib/generators}/project.coffee +1 -1
  14. data/{generators → lib/generators}/project/base.coffee +0 -0
  15. data/{generators → lib/generators}/project/standalone.coffee +9 -4
  16. data/{generators → lib/generators}/templates/application/base/application.coffee +0 -0
  17. data/{generators → lib/generators}/templates/application/base/helpers/application.coffee +0 -0
  18. data/{generators → lib/generators}/templates/application/base/layouts/application.coffee +0 -0
  19. data/{generators → lib/generators}/templates/application/base/pages/application.coffee +0 -0
  20. data/{generators → lib/generators}/templates/application/base/pages/welcome/index.coffee +0 -0
  21. data/{generators → lib/generators}/templates/application/base/routes.coffee +0 -0
  22. data/{generators → lib/generators}/templates/application/base/templates/layouts/application.jst.hamlc +0 -0
  23. data/{generators → lib/generators}/templates/application/base/templates/pages/welcome/index.jst.hamlc +0 -0
  24. data/{generators → lib/generators}/templates/application/standalone/Gruntfile.coffee +11 -25
  25. data/{generators → lib/generators}/templates/application/standalone/Procfile +0 -0
  26. data/{generators → lib/generators}/templates/application/standalone/_gitignore +2 -2
  27. data/{generators/templates/application/standalone/source → lib/generators/templates/application/standalone/app}/haml/index.haml +0 -0
  28. data/{generators/templates/application/standalone/source → lib/generators/templates/application/standalone/app}/stylesheets/application.styl +0 -0
  29. data/{generators → lib/generators}/templates/application/standalone/bower.json +0 -0
  30. data/{generators → lib/generators}/templates/application/standalone/package.json +3 -0
  31. data/{generators → lib/generators}/templates/application/standalone/spec/application_spec.coffee +0 -0
  32. data/{generators → lib/generators}/templates/application/standalone/spec/helpers/environment.coffee +0 -0
  33. data/{generators → lib/generators}/templates/application/standalone/tasks/spec.coffee +0 -0
  34. data/{generators → lib/generators}/templates/layout/basic.coffee +0 -0
  35. data/{generators → lib/generators}/templates/layout/namespaced.coffee +0 -0
  36. data/{generators → lib/generators}/templates/page/basic.coffee +0 -0
  37. data/{generators → lib/generators}/templates/page/namespaced.coffee +0 -0
  38. data/{generators → lib/generators}/templates/widget/basic.coffee +0 -0
  39. data/{generators → lib/generators}/templates/widget/namespaced.coffee +0 -0
  40. data/{generators → lib/generators}/widget.coffee +0 -0
  41. data/lib/joosy.rb +2 -2
  42. data/lib/tasks/build.coffee +16 -0
  43. data/lib/tasks/doc.coffee +80 -0
  44. data/lib/tasks/publish.coffee +29 -0
  45. data/lib/tasks/testem.coffee +58 -0
  46. data/package.json +10 -15
  47. data/source/joosy/helpers/widgets.coffee +1 -1
  48. data/source/joosy/modules/events.coffee +1 -1
  49. data/source/joosy/router.coffee +2 -2
  50. data/source/joosy/templaters/jst.coffee +1 -1
  51. data/source/joosy/widget.coffee +2 -2
  52. data/spec/joosy/core/helpers/routes_spec.coffee +8 -2
  53. data/spec/joosy/core/router_spec.coffee +4 -4
  54. data/tasks/joosy.coffee +2 -0
  55. metadata +39 -42
  56. data/Gemfile +0 -6
  57. data/build/joosy/extensions/preloaders.js +0 -189
  58. data/source/joosy/extensions/preloaders/caching.coffee +0 -169
  59. data/source/joosy/extensions/preloaders/index.coffee +0 -1
  60. data/source/joosy/extensions/preloaders/inline.coffee +0 -56
  61. data/spec/joosy/extensions/preloaders/caching_spec.coffee +0 -36
  62. data/spec/joosy/extensions/preloaders/inline_spec.coffee +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bca3233835310754afca28be9330ec70a839b55e
4
- data.tar.gz: fcd2fbff79196181a4f6babbf812d84ee5778ec0
3
+ metadata.gz: 3026cc5a8fa556721dea56bca1cd26624997d893
4
+ data.tar.gz: 7b33f80118d9b346b6e878f65155b5de68c2ddc2
5
5
  SHA512:
6
- metadata.gz: ba8c3caae6da6816987fcab5008ed02fb6a3a62c99accf8af987a15ab564a1afbbe0bae233777a405fabc87c2dd07d777f81fa486ec6f087139095e11d9f7044
7
- data.tar.gz: 78f4d74388d85d3ae2cb05c88061cea9e153fa5edfb1d85c6538e081aaf098d845f4f5354dd01e3896df0c4b8c0cfed1101d2c2348d61938feaa2217d89017d7
6
+ metadata.gz: 12407f1b9f3f29b45cfab2fcacf1a918c2e9a5148fd8b7d9140ec44cb91608cd66ab5d6e71f5413fac82798c6bec8aabf621c93f548473f65b571a74a3c915aa
7
+ data.tar.gz: f22ccf20ee0fc3b87b19ffe598914fdca3241841f2a7de90d0fb678bb0dd9e2dfbe0264051c5bd4e1914ab8117f3b3bbf0d39fefae79d287f4fc368789e1663b
data/.gitignore CHANGED
@@ -2,9 +2,12 @@ node_modules
2
2
  bower_components
3
3
  .grunt
4
4
  *.html
5
- spec/*.html
5
+ spec/*.json
6
6
  *.gem
7
7
  Gemfile.lock
8
8
  .idea/
9
9
  doc
10
10
  doc.tmp
11
+ libpeerconnection.log
12
+ .DS_Store
13
+ testem.log
@@ -2,9 +2,10 @@ language: node_js
2
2
  node_js:
3
3
  - 0.10
4
4
  before_script:
5
+ - npm install -g phantomjs
5
6
  - npm install -g grunt-cli
6
7
  - ./node_modules/.bin/bower -V install
7
- script: "grunt test"
8
+ script: "grunt"
8
9
  branches:
9
10
  except:
10
11
  - 1.0
@@ -1,10 +1,6 @@
1
- module.exports = (grunt) ->
2
-
3
- Sugar = require 'sugar'
4
- Mincer = require 'mincer'
5
- FS = require 'fs'
6
- semver = require 'semver'
1
+ require 'sugar'
7
2
 
3
+ module.exports = (grunt) ->
8
4
  #
9
5
  # Locations
10
6
  #
@@ -14,76 +10,31 @@ module.exports = (grunt) ->
14
10
  path: 'source'
15
11
  build: 'build/joosy.js'
16
12
  extensions: (name) ->
17
- root: "joosy/extensions/#{name}"
18
- build: "build/joosy/extensions/#{name}.js"
13
+ root: "joosy/extensions/#{name || '*'}"
14
+ build: "build/joosy/extensions/#{name || '**/*'}.js"
19
15
  specs:
20
- units:
21
- environments: 'spec/joosy/environments/*_spec.*'
22
- core: 'spec/joosy/core/**/*_spec.*'
23
- extensions: 'spec/joosy/extensions/**/*_spec.*'
24
- helpers: 'spec/helpers/**/*.*'
25
- build: '.grunt'
26
-
27
- specOptions = (category, specs, vendor=[]) ->
28
- host: 'http://localhost:8888/'
29
- keepRunner: true
30
- outfile: "spec/#{category}.html"
31
- vendor: [
32
- 'bower_components/sinonjs/sinon.js',
33
- 'bower_components/sugar/release/sugar-full.min.js'
34
- ].concat(vendor),
35
- specs: "#{locations.specs.build}/#{specs}"
36
- helpers: locations.specs.build + '/' + locations.specs.helpers
16
+ helpers: [
17
+ 'bower_components/sinonjs/sinon.js',
18
+ 'bower_components/sugar/release/sugar-full.min.js',
19
+ 'spec/helpers/*.coffee'
20
+ ]
37
21
 
38
22
  #
39
23
  # Grunt extensions
40
24
  #
41
- grunt.loadNpmTasks 'grunt-contrib-connect'
42
- grunt.loadNpmTasks 'grunt-contrib-coffee'
43
- grunt.loadNpmTasks 'grunt-contrib-jasmine'
44
- grunt.loadNpmTasks 'grunt-contrib-watch'
25
+ grunt.loadTasks 'lib/tasks'
45
26
  grunt.loadNpmTasks 'grunt-coffeelint'
46
27
  grunt.loadNpmTasks 'grunt-release'
47
28
 
29
+ #
30
+ # Config
31
+ #
48
32
  grunt.initConfig
49
- release:
50
- options:
51
- bump: false
52
- add: false
53
- commit: false
54
- push: false
55
-
56
- connect:
57
- specs:
58
- options:
59
- port: 8888
60
-
61
- watch:
62
- source:
63
- files: [locations.source.path + '/**/*']
64
- tasks: ['mince']
65
- specs:
66
- options:
67
- nospawn: true
68
- files: [ locations.specs.helpers ].add(Object.values locations.specs.units)
69
- tasks: ['coffee']
70
-
71
- coffee:
72
- specs:
73
- expand: true
74
- src: [ locations.specs.helpers ].add(Object.values locations.specs.units)
75
- dest: locations.specs.build
76
- ext: '.js'
77
-
78
33
  mince:
79
34
  core:
80
35
  include: [locations.source.path]
81
36
  src: locations.source.root
82
37
  dest: locations.source.build
83
- preloaders:
84
- include: [locations.source.path]
85
- src: locations.source.extensions('preloaders').root
86
- dest: locations.source.extensions('preloaders').build
87
38
  resources:
88
39
  include: [locations.source.path]
89
40
  src: locations.source.extensions('resources').root
@@ -101,170 +52,52 @@ module.exports = (grunt) ->
101
52
  'max_line_length':
102
53
  level: 'ignore'
103
54
 
104
- jasmine:
55
+ testem:
105
56
  core:
106
- options: specOptions('core', locations.specs.units.core, [
107
- 'bower_components/jquery/jquery.js'
108
- ])
109
- src: locations.source.build
110
-
57
+ src: locations.specs.helpers
58
+ .include('bower_components/jquery/jquery.js')
59
+ .include(locations.source.build)
60
+ .include('spec/joosy/core/**/*_spec.coffee')
111
61
  zepto:
112
- options: specOptions('zepto', locations.specs.units.core, [
113
- 'bower_components/zepto/zepto.js'
114
- ])
115
- src: locations.source.build
116
-
62
+ src: locations.specs.helpers
63
+ .include('bower_components/zepto/zepto.js')
64
+ .include(locations.source.build)
65
+ .include('spec/joosy/core/**/*_spec.coffee')
117
66
  'environments-global':
118
- options: specOptions('environments-global', ['spec/joosy/environments/global*'], [
119
- 'bower_components/jquery/jquery.js'
120
- ])
121
- src: locations.source.build
122
-
67
+ src: locations.specs.helpers
68
+ .include('bower_components/jquery/jquery.js')
69
+ .include(locations.source.build)
70
+ .include('spec/joosy/environments/global_spec.coffee')
123
71
  'environments-amd':
124
- options: specOptions('environments-amd', ['spec/joosy/environments/amd*'], [
125
- 'bower_components/jquery/jquery.js',
126
- 'bower_components/requirejs/require.js'
127
- ])
128
- src: locations.source.build
129
-
72
+ src: locations.specs.helpers
73
+ .include('bower_components/jquery/jquery.js')
74
+ .include('bower_components/requirejs/require.js')
75
+ .include(locations.source.build)
76
+ .include('spec/joosy/environments/amd_spec.coffee')
130
77
  extensions:
131
- options: specOptions('extensions', locations.specs.units.extensions, [
132
- 'bower_components/jquery/jquery.js',
133
- 'bower_components/jquery-form/jquery.form.js'
134
- ])
135
- src: [locations.source.build].include ['preloaders', 'resources', 'resources-form'].map (x) ->
136
- locations.source.extensions(x).build
137
-
138
- #
139
- # Preparations
140
- #
141
- grunt.registerTask 'prepare', ->
142
- complete = @async()
143
-
144
- base = process.cwd()
145
- git = (args, callback) ->
146
- grunt.util.spawn {cmd: "git", args: args, opts: {stdio: [0,1,2]}}, callback
147
-
148
- if grunt.file.exists 'doc'
149
- grunt.fatal "Documentation directory exists. Please remove it"
150
-
151
- git ["clone", "git@github.com:joosy/joosy.git", "doc"], (error, result) ->
152
- grunt.fatal "Erorr cloning repo" if error
153
- process.chdir 'doc'
154
-
155
- git ["checkout", "gh-pages"], (error, result) ->
156
- grunt.fatal "Erorr checking branch out" if error
157
-
158
- process.chdir base
159
- complete()
160
-
161
- #
162
- # Builders
163
- #
164
- grunt.registerMultiTask 'mince', ->
165
- Mincer.CoffeeEngine.configure bare: false
166
- environment = new Mincer.Environment
167
- environment.appendPath x for x in @data.include
168
- grunt.file.write @data.dest, environment.findAsset(@data.src).toString()
169
-
170
- grunt.registerTask 'default', ['connect', 'build', 'watch']
171
-
172
- grunt.registerTask 'build', ['mince', 'coffee', 'jasmine:core:build', 'jasmine:extensions:build', 'bowerize']
173
-
174
- grunt.registerTask 'test', ['connect', 'mince', 'coffee', 'bowerize', 'jasmine']
175
-
176
- grunt.registerTask 'bowerize', ->
177
- bower = require './bower.json'
178
- meta = require './package.json'
179
-
180
- bower.version = meta.version
181
- FS.writeFileSync 'bower.json', JSON.stringify(bower, null, 2)
182
-
183
- #
184
- # Documentation
185
- #
186
- grunt.registerTask 'doc', ->
187
- complete = @async()
188
- version = require('./package.json').version.split('-')
189
- version = version[0]+'-'+version[1]?.split('.')[0]
190
- destination = "doc/#{version}"
191
- args = ['source', '--output-dir', destination]
192
-
193
- git = (args, callback) ->
194
- grunt.util.spawn {cmd: "git", args: args, opts: {stdio: [0,1,2], cwd: 'doc'}}, callback
195
-
196
- date = (version) ->
197
- return undefined unless version
198
- Date.create(grunt.file.read "doc/#{version}/DATE").format "{d} {Month} {yyyy}"
199
-
200
- git ['pull'], (error, result) ->
201
- grunt.fatal "Error pulling from git" if error
202
-
203
- grunt.file.delete destination if grunt.file.exists destination
204
- grunt.util.spawn {cmd: "codo", args: args, opts: {stdio: [0,1,2]}}, (error, result) ->
205
- grunt.fatal "Error generating docs" if error
206
- grunt.file.write "#{destination}/DATE", (new Date).toISOString()
207
-
208
- versions = []
209
- for version in grunt.file.expand({cwd: 'doc'}, '*')
210
- versions.push version if semver.valid(version)
211
-
212
- versions = versions.sort(semver.rcompare)
213
- edge = versions.find (x) -> x.has('-')
214
- stable = versions.find (x) -> !x.has('-')
215
- versions = versions.remove edge, stable
216
-
217
- versions = {
218
- edge:
219
- version: edge
220
- date: date(edge)
221
- stable:
222
- version: stable
223
- date: date(stable)
224
- versions: versions.map (x) -> { version: x, date: date(x) }
225
- }
226
- grunt.file.write 'doc/versions.js', "window.versions = #{JSON.stringify(versions)}"
227
-
228
- git ['add', '-A'], (error, result) ->
229
- grunt.fatal "Error adding files" if error
230
-
231
- git ['commit', '-m', "Updated at #{(new Date).toISOString()}"], (error, result) ->
232
- grunt.fatal "Error commiting" if error
233
-
234
- git ['push', 'origin', 'gh-pages'], (error, result) ->
235
- grunt.fatal "Error pushing" if error
236
- complete()
78
+ src: locations.specs.helpers
79
+ .include('bower_components/jquery/jquery.js')
80
+ .include('bower_components/jquery-form/jquery.form.js')
81
+ .include(locations.source.build)
82
+ .include(locations.source.extensions().build)
83
+ .include('spec/joosy/extensions/**/*_spec.coffee')
237
84
 
85
+ release:
86
+ options:
87
+ bump: false
88
+ add: false
89
+ commit: false
90
+ push: false
238
91
 
239
92
  #
240
- # Publishing
93
+ # Main tasks
241
94
  #
242
- grunt.registerTask 'publish:ensureCommits', ->
243
- complete = @async()
244
-
245
- grunt.util.spawn {cmd: "git", args: ["status", "--porcelain" ]}, (error, result) ->
246
- if !!error || result.stdout.length > 0
247
- console.log ""
248
- console.log "Uncommited changes found. Please commit prior to release or use `--force`.".bold
249
- console.log ""
250
- complete false
251
- else
252
- complete true
253
-
254
- grunt.registerTask 'publish:gem', ->
255
- meta = require './package.json'
256
- complete = @async()
257
-
258
- grunt.util.spawn {cmd: "gem", args: ["build", "joosy.gemspec"]}, (error, result) ->
259
- return complete false if error
95
+ grunt.registerTask 'default', ['testem:generate', 'testem:ci']
260
96
 
261
- gem = "joosy-#{meta.version.replace('-', '.')}.gem"
262
- grunt.log.ok "Built #{gem}"
97
+ grunt.registerTask 'test', ->
98
+ grunt.fatal "Specify module to run manual tests for" unless @args[0]
263
99
 
264
- grunt.util.spawn {cmd: "gem", args: ["push", gem]}, (error, result) ->
265
- return complete false if error
266
- grunt.log.ok "Published #{gem}"
267
- grunt.file.delete gem
268
- complete(true)
100
+ grunt.task.run "testem:generate:#{@args[0]}"
101
+ grunt.task.run "testem:run:#{@args[0]}"
269
102
 
270
- grunt.registerTask 'publish', ['test', 'publish:ensureCommits', 'doc', 'release', 'publish:gem']
103
+ grunt.registerTask 'publish', ['testem:ci', 'publish:ensureCommits', 'doc', 'release', 'publish:gem']
data/bin/joosy CHANGED
@@ -5,7 +5,7 @@
5
5
  var resolve = require('resolve').sync
6
6
  var path = require('path')
7
7
  var base = ''
8
- var location = path.join('generators', 'command', 'command')
8
+ var location = path.join('lib', 'generators', 'command', 'command')
9
9
 
10
10
  try {
11
11
  base = resolve('joosy', {
data/bower.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "joosy",
3
- "version": "1.2.0-alpha.59",
3
+ "version": "1.2.0-alpha.62",
4
4
  "main": "lib/joosy.js",
5
5
  "ignore": [
6
6
  "bin",
@@ -1965,18 +1965,18 @@
1965
1965
  if (this.config.html5) {
1966
1966
  this.config.prefix = ('/' + this.config.prefix + '/').replace(/\/{2,}/g, '/');
1967
1967
  }
1968
- if (respond) {
1969
- this.respond(this.canonizeLocation());
1970
- }
1971
1968
  if (this.config.html5) {
1972
- return this.listener = this.bind('popstate pushstate', function() {
1969
+ this.listener = this.bind('popstate pushstate', function() {
1973
1970
  return _this.respond(_this.canonizeLocation());
1974
1971
  });
1975
1972
  } else {
1976
- return $(window).bind('hashchange.JoosyRouter', function() {
1973
+ $(window).bind('hashchange.JoosyRouter', function() {
1977
1974
  return _this.respond(_this.canonizeLocation());
1978
1975
  });
1979
1976
  }
1977
+ if (respond) {
1978
+ return this.respond(this.canonizeLocation());
1979
+ }
1980
1980
  };
1981
1981
 
1982
1982
  Router.reset = function() {
@@ -51,7 +51,7 @@ class Base
51
51
  # Methods that have to be overrided outside of Node.js
52
52
  #
53
53
  version: ->
54
- require('../package.json').version
54
+ require('../../package.json').version
55
55
 
56
56
  #
57
57
  # Node-base performer
@@ -1,7 +1,7 @@
1
1
  module.exports = ->
2
2
  Sugar = require 'sugar'
3
3
  cli = require 'command-router'
4
- meta = require '../../package.json'
4
+ meta = require '../../../package.json'
5
5
  grunt = require 'grunt'
6
6
  path = require 'path'
7
7
 
@@ -12,7 +12,7 @@ module.exports = class
12
12
  """
13
13
 
14
14
  @standalone = new Standalone(@options)
15
- @base = new Base(@options, Path.join(@standalone.destination, 'source/javascript'))
15
+ @base = new Base(@options, Path.join(@standalone.destination, 'app/javascript'))
16
16
 
17
17
  generate: ->
18
18
  @standalone.generate()
@@ -18,11 +18,15 @@ class ProjectStandalone extends @Base
18
18
  @copy ['application', 'standalone', 'Gruntfile.coffee'], ['Gruntfile.coffee']
19
19
  @copy ['application', 'standalone', 'Procfile'], ['Procfile']
20
20
 
21
- @copy ['application', 'standalone', 'source', 'haml', 'index.haml'],
22
- ['source', 'haml', 'index.haml']
21
+ @copy ['application', 'standalone', 'app', 'haml', 'index.haml'],
22
+ ['app', 'haml', 'index.haml']
23
23
 
24
- @copy ['application', 'standalone', 'source', 'stylesheets', 'application.styl'],
25
- ['source', 'stylesheets', 'application.styl']
24
+ @copy ['application', 'standalone', 'app', 'stylesheets', 'application.styl'],
25
+ ['app', 'stylesheets', 'application.styl']
26
+
27
+ @file ['app', 'images', '.gitkeep']
28
+
29
+ @file ['app', 'fonts', '.gitkeep']
26
30
 
27
31
  @copy ['application', 'standalone', 'tasks', 'spec.coffee'],
28
32
  ['tasks', 'spec.coffee']
@@ -35,6 +39,7 @@ class ProjectStandalone extends @Base
35
39
 
36
40
  @template ['application', 'standalone', 'bower.json'], ['bower.json'],
37
41
  application: @options.name
42
+
38
43
  @template ['application', 'standalone', 'package.json'], ['package.json'],
39
44
  joosy_version: @version()
40
45