joosy 1.2.0.alpha.62 → 1.2.0.alpha.63
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/Gruntfile.coffee +32 -22
- data/bower.json +1 -1
- data/lib/joosy.rb +1 -5
- data/package.json +3 -6
- data/templates/application/application.coffee.tt +12 -0
- data/{lib/generators/templates/application/base → templates/application}/helpers/application.coffee +0 -0
- data/{lib/generators/templates/application/base → templates/application}/layouts/application.coffee +0 -0
- data/{lib/generators/templates/application/base → templates/application}/pages/application.coffee +0 -0
- data/{lib/generators/templates/application/base → templates/application}/pages/welcome/index.coffee +0 -0
- data/{lib/generators/templates/application/base → templates/application}/routes.coffee +0 -0
- data/{lib/generators/templates/application/base → templates/application}/templates/layouts/application.jst.hamlc +0 -0
- data/{lib/generators/templates/application/base → templates/application}/templates/pages/welcome/index.jst.hamlc +0 -0
- data/{lib/generators/templates/application/standalone/_gitignore → templates/environment/.gitignore} +0 -0
- data/{lib/generators/templates/application/standalone → templates/environment}/Gruntfile.coffee +15 -13
- data/{lib/generators/templates/application/standalone → templates/environment}/Procfile +0 -0
- data/{lib/generators/templates/application/standalone → templates/environment}/app/haml/index.haml +0 -0
- data/{lib/generators/templates/application/standalone → templates/environment}/app/stylesheets/application.styl +0 -0
- data/{lib/generators/templates/application/standalone → templates/environment}/bower.json +0 -0
- data/{lib/generators/templates/application/standalone → templates/environment}/package.json +4 -4
- data/{lib/generators/templates/application/standalone → templates/environment}/spec/application_spec.coffee +0 -0
- data/{lib/generators/templates/application/standalone → templates/environment}/spec/helpers/environment.coffee +0 -0
- data/templates/layout/layouts/%name%.coffee.tt +9 -0
- data/templates/layout/templates/layouts/%name%.jst.hamlc +0 -0
- data/templates/page/pages/%name%.coffee.tt +11 -0
- data/templates/page/templates/pages/%name%.jst.hamlc +0 -0
- data/templates/widget/templates/widgets/%name%.jst.hamlc +0 -0
- data/templates/widget/widgets/%name%.coffee.tt +9 -0
- metadata +25 -37
- data/bin/joosy +0 -21
- data/lib/generators/base.coffee +0 -108
- data/lib/generators/command/command.coffee +0 -63
- data/lib/generators/command/help.coffee +0 -38
- data/lib/generators/layout.coffee +0 -26
- data/lib/generators/page.coffee +0 -26
- data/lib/generators/project.coffee +0 -24
- data/lib/generators/project/base.coffee +0 -40
- data/lib/generators/project/standalone.coffee +0 -51
- data/lib/generators/templates/application/base/application.coffee +0 -12
- data/lib/generators/templates/application/standalone/tasks/spec.coffee +0 -15
- data/lib/generators/templates/layout/basic.coffee +0 -2
- data/lib/generators/templates/layout/namespaced.coffee +0 -4
- data/lib/generators/templates/page/basic.coffee +0 -3
- data/lib/generators/templates/page/namespaced.coffee +0 -5
- data/lib/generators/templates/widget/basic.coffee +0 -2
- data/lib/generators/templates/widget/namespaced.coffee +0 -4
- data/lib/generators/widget.coffee +0 -26
- data/lib/tasks/testem.coffee +0 -58
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69739c36a5ebd92252282522b35939310ad81bc1
|
4
|
+
data.tar.gz: d594f2adcdeefa91aacf255cbf0a3985e23de4de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91bb29b74b08df165afa9623556424de32ea0540692d09e2e929df9b89089983377d21f20cd9b4ae4f3ce2b5ca6681f7055d12e6670947cbd843951eca808d08
|
7
|
+
data.tar.gz: 4846c9b0cdc628f0d75c958936d18191fc42d9bfa15ad23660963b4850ca9536c24602831f71654e27857be7eedb0dcad87005ea1472631d8fc8a20633b8a5a2
|
data/.travis.yml
CHANGED
data/Gruntfile.coffee
CHANGED
@@ -2,27 +2,35 @@ require 'sugar'
|
|
2
2
|
|
3
3
|
module.exports = (grunt) ->
|
4
4
|
#
|
5
|
-
#
|
5
|
+
# Common settings
|
6
6
|
#
|
7
7
|
locations =
|
8
|
+
|
8
9
|
source:
|
9
|
-
root:
|
10
|
-
path:
|
10
|
+
root: 'joosy.coffee'
|
11
|
+
path: 'source'
|
11
12
|
build: 'build/joosy.js'
|
13
|
+
|
12
14
|
extensions: (name) ->
|
13
|
-
root:
|
15
|
+
root: "joosy/extensions/#{name || '*'}"
|
14
16
|
build: "build/joosy/extensions/#{name || '**/*'}.js"
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
|
18
|
+
specs: [
|
19
|
+
'bower_components/sinonjs/sinon.js',
|
20
|
+
'bower_components/sugar/release/sugar-full.min.js',
|
21
|
+
'spec/helpers/*.coffee'
|
22
|
+
]
|
23
|
+
|
24
|
+
testem =
|
25
|
+
parallel: 8
|
26
|
+
launch_in_dev: ['PhantomJS'],
|
27
|
+
launch_in_ci: ['PhantomJS', 'Chrome', 'Firefox', 'Safari', 'IE7', 'IE8', 'IE9']
|
21
28
|
|
22
29
|
#
|
23
30
|
# Grunt extensions
|
24
31
|
#
|
25
32
|
grunt.loadTasks 'lib/tasks'
|
33
|
+
grunt.loadNpmTasks 'grunt-contrib-testem'
|
26
34
|
grunt.loadNpmTasks 'grunt-coffeelint'
|
27
35
|
grunt.loadNpmTasks 'grunt-release'
|
28
36
|
|
@@ -54,33 +62,38 @@ module.exports = (grunt) ->
|
|
54
62
|
|
55
63
|
testem:
|
56
64
|
core:
|
57
|
-
src: locations.specs
|
65
|
+
src: locations.specs
|
58
66
|
.include('bower_components/jquery/jquery.js')
|
59
67
|
.include(locations.source.build)
|
60
68
|
.include('spec/joosy/core/**/*_spec.coffee')
|
69
|
+
options: testem
|
61
70
|
zepto:
|
62
|
-
src: locations.specs
|
71
|
+
src: locations.specs
|
63
72
|
.include('bower_components/zepto/zepto.js')
|
64
73
|
.include(locations.source.build)
|
65
74
|
.include('spec/joosy/core/**/*_spec.coffee')
|
75
|
+
options: testem
|
66
76
|
'environments-global':
|
67
|
-
src: locations.specs
|
77
|
+
src: locations.specs
|
68
78
|
.include('bower_components/jquery/jquery.js')
|
69
79
|
.include(locations.source.build)
|
70
80
|
.include('spec/joosy/environments/global_spec.coffee')
|
81
|
+
options: testem
|
71
82
|
'environments-amd':
|
72
|
-
src: locations.specs
|
83
|
+
src: locations.specs
|
73
84
|
.include('bower_components/jquery/jquery.js')
|
74
85
|
.include('bower_components/requirejs/require.js')
|
75
86
|
.include(locations.source.build)
|
76
87
|
.include('spec/joosy/environments/amd_spec.coffee')
|
88
|
+
options: testem
|
77
89
|
extensions:
|
78
|
-
src: locations.specs
|
90
|
+
src: locations.specs
|
79
91
|
.include('bower_components/jquery/jquery.js')
|
80
|
-
.include('bower_components/jquery-form/jquery.form.js')
|
81
92
|
.include(locations.source.build)
|
93
|
+
.include('bower_components/jquery-form/jquery.form.js')
|
82
94
|
.include(locations.source.extensions().build)
|
83
95
|
.include('spec/joosy/extensions/**/*_spec.coffee')
|
96
|
+
options: testem
|
84
97
|
|
85
98
|
release:
|
86
99
|
options:
|
@@ -92,12 +105,9 @@ module.exports = (grunt) ->
|
|
92
105
|
#
|
93
106
|
# Main tasks
|
94
107
|
#
|
95
|
-
grunt.registerTask 'default',
|
108
|
+
grunt.registerTask 'default', 'testem'
|
96
109
|
|
97
110
|
grunt.registerTask 'test', ->
|
98
|
-
grunt.
|
99
|
-
|
100
|
-
grunt.task.run "testem:generate:#{@args[0]}"
|
101
|
-
grunt.task.run "testem:run:#{@args[0]}"
|
111
|
+
grunt.task.run if @args[0] then "testem:run:#{@args[0]}" else 'testem'
|
102
112
|
|
103
|
-
grunt.registerTask 'publish', ['testem
|
113
|
+
grunt.registerTask 'publish', ['testem', 'publish:ensureCommits', 'doc', 'release', 'publish:gem']
|
data/bower.json
CHANGED
data/lib/joosy.rb
CHANGED
@@ -12,11 +12,7 @@ module Joosy
|
|
12
12
|
]
|
13
13
|
end
|
14
14
|
|
15
|
-
def self.generators_path
|
16
|
-
File.expand_path '../../lib/generators', __FILE__
|
17
|
-
end
|
18
|
-
|
19
15
|
def self.templates_path
|
20
|
-
File.expand_path '../../
|
16
|
+
File.expand_path '../../templates', __FILE__
|
21
17
|
end
|
22
18
|
end
|
data/package.json
CHANGED
@@ -4,16 +4,13 @@
|
|
4
4
|
"keywords": [
|
5
5
|
"joosy"
|
6
6
|
],
|
7
|
-
"version": "1.2.0-alpha.
|
7
|
+
"version": "1.2.0-alpha.63",
|
8
8
|
"author": "Boris Staal <boris@staal.io>",
|
9
9
|
"homepage": "http://joosy.ws/",
|
10
10
|
"repository": {
|
11
11
|
"type": "git",
|
12
12
|
"url": "git://github.com/joosy/joosy.git"
|
13
13
|
},
|
14
|
-
"bin": {
|
15
|
-
"joosy": "bin/joosy"
|
16
|
-
},
|
17
14
|
"engines": {
|
18
15
|
"node": ">=0.4.0"
|
19
16
|
},
|
@@ -32,8 +29,8 @@
|
|
32
29
|
"bower": "~1.1.2",
|
33
30
|
"mincer": ">= 0.5.5",
|
34
31
|
"semver": "~2.1.0",
|
35
|
-
"testem": "~0.3.24",
|
36
32
|
"grunt-coffeelint": "0.0.6",
|
37
|
-
"grunt-release": "~0.3.5"
|
33
|
+
"grunt-release": "~0.3.5",
|
34
|
+
"grunt-contrib-testem": ">=0.2.0"
|
38
35
|
}
|
39
36
|
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<%= dependencies %>
|
2
|
+
#
|
3
|
+
#= require joosy
|
4
|
+
#
|
5
|
+
#= require_tree ./
|
6
|
+
|
7
|
+
$ ->
|
8
|
+
Joosy.Application.initialize 'body',
|
9
|
+
router:
|
10
|
+
html5: <%= html5 %><% if (typeof prefix !== 'undefined' && prefix.length > 0) { %>
|
11
|
+
templater:
|
12
|
+
prefix: '<%= prefix %>'<% } %>
|
data/{lib/generators/templates/application/base → templates/application}/helpers/application.coffee
RENAMED
File without changes
|
data/{lib/generators/templates/application/base → templates/application}/layouts/application.coffee
RENAMED
File without changes
|
data/{lib/generators/templates/application/base → templates/application}/pages/application.coffee
RENAMED
File without changes
|
data/{lib/generators/templates/application/base → templates/application}/pages/welcome/index.coffee
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/{lib/generators/templates/application/standalone/_gitignore → templates/environment/.gitignore}
RENAMED
File without changes
|
data/{lib/generators/templates/application/standalone → templates/environment}/Gruntfile.coffee
RENAMED
@@ -3,8 +3,7 @@ module.exports = (grunt) ->
|
|
3
3
|
grunt.loadNpmTasks 'joosy'
|
4
4
|
grunt.loadNpmTasks 'grunt-contrib-uglify'
|
5
5
|
grunt.loadNpmTasks 'grunt-contrib-cssmin'
|
6
|
-
grunt.loadNpmTasks 'grunt-contrib-
|
7
|
-
grunt.loadNpmTasks 'grunt-contrib-coffee'
|
6
|
+
grunt.loadNpmTasks 'grunt-contrib-testem'
|
8
7
|
|
9
8
|
#
|
10
9
|
# Config
|
@@ -31,23 +30,26 @@ module.exports = (grunt) ->
|
|
31
30
|
files:
|
32
31
|
'public/application.css': 'public/application.css'
|
33
32
|
|
34
|
-
|
33
|
+
testem:
|
35
34
|
application:
|
36
|
-
src:
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
35
|
+
src: [
|
36
|
+
'public/application.js',
|
37
|
+
'spec/helpers/*.coffee',
|
38
|
+
'spec/**/*_spec.coffee'
|
39
|
+
]
|
40
|
+
options:
|
41
|
+
parallel: 4
|
42
|
+
launch_in_dev: ['PhantomJS'],
|
43
|
+
launch_in_ci: ['PhantomJS']
|
42
44
|
|
43
45
|
#
|
44
46
|
# Tasks
|
45
47
|
#
|
46
|
-
grunt.loadTasks 'tasks'
|
47
|
-
|
48
48
|
grunt.registerTask 'compile', ['joosy:compile', 'uglify', 'cssmin']
|
49
49
|
grunt.registerTask 'server', ['joosy:server']
|
50
50
|
|
51
|
-
grunt.registerTask 'spec', ['
|
51
|
+
grunt.registerTask 'spec', ['testem']
|
52
52
|
|
53
|
-
grunt.registerTask '
|
53
|
+
grunt.registerTask 'deploy', ->
|
54
|
+
if process.env['NODE_ENV'] == 'production'
|
55
|
+
grunt.task.run ['joosy:bower', 'joosy:compile']
|
File without changes
|
data/{lib/generators/templates/application/standalone → templates/environment}/app/haml/index.haml
RENAMED
File without changes
|
File without changes
|
File without changes
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"dependencies": {
|
3
|
-
"joosy": "
|
3
|
+
"joosy": "<%= joosy %>",
|
4
4
|
"haml-coffee": "~1.11.1",
|
5
5
|
"stylus": "~0.32.1",
|
6
6
|
"nib": "~0.9.1",
|
@@ -8,10 +8,10 @@
|
|
8
8
|
"grunt-cli": "~0.1.9",
|
9
9
|
"grunt-contrib-uglify": "~0.2.2",
|
10
10
|
"grunt-contrib-cssmin": "~0.6.1",
|
11
|
-
"grunt-contrib-
|
12
|
-
"
|
11
|
+
"grunt-contrib-testem": "~0.2.0",
|
12
|
+
"phantom": "~0.5.2"
|
13
13
|
},
|
14
14
|
"scripts": {
|
15
|
-
"postinstall": "node_modules/.bin/grunt
|
15
|
+
"postinstall": "node_modules/.bin/grunt deploy"
|
16
16
|
}
|
17
17
|
}
|
File without changes
|
File without changes
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<% if (typeof namespace !== 'undefined' && namespace.length > 0) { -%>
|
2
|
+
Joosy.namespace '<%= namespace %>', ->
|
3
|
+
|
4
|
+
class @<%= klass %>Layout extends ApplicationLayout
|
5
|
+
@view '<%= view %>'
|
6
|
+
<% } else { -%>
|
7
|
+
class @<%= klass %>Layout extends ApplicationLayout
|
8
|
+
@view '<%= view %>'
|
9
|
+
<% } -%>
|
File without changes
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<% if (typeof namespace !== 'undefined' && namespace.length > 0) { -%>
|
2
|
+
Joosy.namespace '<%= namespace %>', ->
|
3
|
+
|
4
|
+
class @<%= klass %>Page extends ApplicationPage
|
5
|
+
@layout ApplicationLayout
|
6
|
+
@view '<%= view %>'
|
7
|
+
<% } else { -%>
|
8
|
+
class @<%= klass %>Page extends ApplicationPage
|
9
|
+
@layout ApplicationLayout
|
10
|
+
@view '<%= view %>'
|
11
|
+
<% } -%>
|
File without changes
|
File without changes
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<% if (typeof namespace !== 'undefined' && namespace.length > 0) { -%>
|
2
|
+
Joosy.namespace '<%= namespace %>', ->
|
3
|
+
|
4
|
+
class @<%= klass %>Widget extends Joosy.Widget
|
5
|
+
@view '<%= view %>'
|
6
|
+
<% } else { -%>
|
7
|
+
class @<%= klass %>Widget extends Joosy.Widget
|
8
|
+
@view '<%= view %>'
|
9
|
+
<% } -%>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: joosy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.0.alpha.
|
4
|
+
version: 1.2.0.alpha.63
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Boris Staal
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-08-
|
13
|
+
date: 2013-08-20 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: sprockets
|
@@ -51,50 +51,15 @@ files:
|
|
51
51
|
- .travis.yml
|
52
52
|
- Gruntfile.coffee
|
53
53
|
- README.md
|
54
|
-
- bin/joosy
|
55
54
|
- bower.json
|
56
55
|
- build/joosy.js
|
57
56
|
- build/joosy/extensions/resources-form.js
|
58
57
|
- build/joosy/extensions/resources.js
|
59
58
|
- joosy.gemspec
|
60
|
-
- lib/generators/base.coffee
|
61
|
-
- lib/generators/command/command.coffee
|
62
|
-
- lib/generators/command/help.coffee
|
63
|
-
- lib/generators/layout.coffee
|
64
|
-
- lib/generators/page.coffee
|
65
|
-
- lib/generators/project.coffee
|
66
|
-
- lib/generators/project/base.coffee
|
67
|
-
- lib/generators/project/standalone.coffee
|
68
|
-
- lib/generators/templates/application/base/application.coffee
|
69
|
-
- lib/generators/templates/application/base/helpers/application.coffee
|
70
|
-
- lib/generators/templates/application/base/layouts/application.coffee
|
71
|
-
- lib/generators/templates/application/base/pages/application.coffee
|
72
|
-
- lib/generators/templates/application/base/pages/welcome/index.coffee
|
73
|
-
- lib/generators/templates/application/base/routes.coffee
|
74
|
-
- lib/generators/templates/application/base/templates/layouts/application.jst.hamlc
|
75
|
-
- lib/generators/templates/application/base/templates/pages/welcome/index.jst.hamlc
|
76
|
-
- lib/generators/templates/application/standalone/Gruntfile.coffee
|
77
|
-
- lib/generators/templates/application/standalone/Procfile
|
78
|
-
- lib/generators/templates/application/standalone/_gitignore
|
79
|
-
- lib/generators/templates/application/standalone/app/haml/index.haml
|
80
|
-
- lib/generators/templates/application/standalone/app/stylesheets/application.styl
|
81
|
-
- lib/generators/templates/application/standalone/bower.json
|
82
|
-
- lib/generators/templates/application/standalone/package.json
|
83
|
-
- lib/generators/templates/application/standalone/spec/application_spec.coffee
|
84
|
-
- lib/generators/templates/application/standalone/spec/helpers/environment.coffee
|
85
|
-
- lib/generators/templates/application/standalone/tasks/spec.coffee
|
86
|
-
- lib/generators/templates/layout/basic.coffee
|
87
|
-
- lib/generators/templates/layout/namespaced.coffee
|
88
|
-
- lib/generators/templates/page/basic.coffee
|
89
|
-
- lib/generators/templates/page/namespaced.coffee
|
90
|
-
- lib/generators/templates/widget/basic.coffee
|
91
|
-
- lib/generators/templates/widget/namespaced.coffee
|
92
|
-
- lib/generators/widget.coffee
|
93
59
|
- lib/joosy.rb
|
94
60
|
- lib/tasks/build.coffee
|
95
61
|
- lib/tasks/doc.coffee
|
96
62
|
- lib/tasks/publish.coffee
|
97
|
-
- lib/tasks/testem.coffee
|
98
63
|
- package.json
|
99
64
|
- source/joosy.coffee
|
100
65
|
- source/joosy/application.coffee
|
@@ -157,6 +122,29 @@ files:
|
|
157
122
|
- spec/joosy/extensions/resources/rest_spec.coffee
|
158
123
|
- spec/support/test.js
|
159
124
|
- tasks/joosy.coffee
|
125
|
+
- templates/application/application.coffee.tt
|
126
|
+
- templates/application/helpers/application.coffee
|
127
|
+
- templates/application/layouts/application.coffee
|
128
|
+
- templates/application/pages/application.coffee
|
129
|
+
- templates/application/pages/welcome/index.coffee
|
130
|
+
- templates/application/routes.coffee
|
131
|
+
- templates/application/templates/layouts/application.jst.hamlc
|
132
|
+
- templates/application/templates/pages/welcome/index.jst.hamlc
|
133
|
+
- templates/environment/.gitignore
|
134
|
+
- templates/environment/Gruntfile.coffee
|
135
|
+
- templates/environment/Procfile
|
136
|
+
- templates/environment/app/haml/index.haml
|
137
|
+
- templates/environment/app/stylesheets/application.styl
|
138
|
+
- templates/environment/bower.json
|
139
|
+
- templates/environment/package.json
|
140
|
+
- templates/environment/spec/application_spec.coffee
|
141
|
+
- templates/environment/spec/helpers/environment.coffee
|
142
|
+
- templates/layout/layouts/%name%.coffee.tt
|
143
|
+
- templates/layout/templates/layouts/%name%.jst.hamlc
|
144
|
+
- templates/page/pages/%name%.coffee.tt
|
145
|
+
- templates/page/templates/pages/%name%.jst.hamlc
|
146
|
+
- templates/widget/templates/widgets/%name%.jst.hamlc
|
147
|
+
- templates/widget/widgets/%name%.coffee.tt
|
160
148
|
homepage: http://github.com/joosy/joosy
|
161
149
|
licenses:
|
162
150
|
- MIT
|
data/bin/joosy
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
#!/usr/bin/env node
|
2
|
-
|
3
|
-
'use strict';
|
4
|
-
|
5
|
-
var resolve = require('resolve').sync
|
6
|
-
var path = require('path')
|
7
|
-
var base = ''
|
8
|
-
var location = path.join('lib', 'generators', 'command', 'command')
|
9
|
-
|
10
|
-
try {
|
11
|
-
base = resolve('joosy', {
|
12
|
-
basedir: process.cwd(),
|
13
|
-
extensions: ['.coffee'],
|
14
|
-
packageFilter: function(pkg) { pkg.main = location; return pkg; }
|
15
|
-
});
|
16
|
-
} catch (ex) {
|
17
|
-
base = path.join('..', location);
|
18
|
-
}
|
19
|
-
|
20
|
-
require('coffee-script');
|
21
|
-
require(base)();
|
data/lib/generators/base.coffee
DELETED
@@ -1,108 +0,0 @@
|
|
1
|
-
if module?
|
2
|
-
File = require('grunt').file
|
3
|
-
Log = require('grunt').log
|
4
|
-
Path = require('path')
|
5
|
-
EJS = require('ejs')
|
6
|
-
Commander = require('commander')
|
7
|
-
|
8
|
-
class Base
|
9
|
-
constructor: (@options, @destination, @templates) ->
|
10
|
-
@destination ||= process?.cwd()
|
11
|
-
@templates ||= @join(__dirname, 'templates') if __dirname?
|
12
|
-
@actions = []
|
13
|
-
|
14
|
-
getNamespace: (name) ->
|
15
|
-
name = name.split('/')
|
16
|
-
name.pop()
|
17
|
-
name
|
18
|
-
|
19
|
-
getBasename: (name) ->
|
20
|
-
name = name.split('/')
|
21
|
-
name.pop()
|
22
|
-
|
23
|
-
template: (source, destination, data) ->
|
24
|
-
source = @join(source...) if source instanceof Array
|
25
|
-
destination = @join(destination...) if destination instanceof Array
|
26
|
-
|
27
|
-
@actions.push ['template', destination, source, data]
|
28
|
-
|
29
|
-
file: (destination, content='') ->
|
30
|
-
destination = @join(destination...) if destination instanceof Array
|
31
|
-
|
32
|
-
@actions.push ['file', destination, content]
|
33
|
-
|
34
|
-
copy: (source, destination) ->
|
35
|
-
source = @join(source...) if source instanceof Array
|
36
|
-
destination = @join(destination...) if destination instanceof Array
|
37
|
-
|
38
|
-
@actions.push ['copy', destination, source]
|
39
|
-
|
40
|
-
camelize: (string) ->
|
41
|
-
parts = (part.charAt(0).toUpperCase() + part.substr(1) for part in string.split(/_|-/))
|
42
|
-
parts.join ''
|
43
|
-
|
44
|
-
join: ->
|
45
|
-
if Path?
|
46
|
-
Path.join arguments...
|
47
|
-
else
|
48
|
-
Array.prototype.slice.call(arguments, 0).join('/')
|
49
|
-
|
50
|
-
#
|
51
|
-
# Methods that have to be overrided outside of Node.js
|
52
|
-
#
|
53
|
-
version: ->
|
54
|
-
require('../../package.json').version
|
55
|
-
|
56
|
-
#
|
57
|
-
# Node-base performer
|
58
|
-
#
|
59
|
-
compileTemplate: (source, data) ->
|
60
|
-
EJS.render File.read(source), data
|
61
|
-
|
62
|
-
perform: (callback) ->
|
63
|
-
actions = @actions.clone()
|
64
|
-
@performAction actions.pop(), actions, callback
|
65
|
-
|
66
|
-
performAction: (action, actions, callback) ->
|
67
|
-
method = "perform#{action.shift().camelize()}Action"
|
68
|
-
next = =>
|
69
|
-
if actions.length > 0
|
70
|
-
@performAction(actions.pop(), actions, callback)
|
71
|
-
else
|
72
|
-
callback()
|
73
|
-
|
74
|
-
@[method] next, action...
|
75
|
-
|
76
|
-
performCopyAction: (callback, destination, source) ->
|
77
|
-
write = =>
|
78
|
-
File.copy @join(@templates, source), @join(@destination, destination)
|
79
|
-
Log.ok "#{destination} copied..."
|
80
|
-
|
81
|
-
if File.exists(@destination, destination)
|
82
|
-
Commander.confirm "#{destination} exists. Overwrite? ", (y) ->
|
83
|
-
write() if y
|
84
|
-
callback()
|
85
|
-
else
|
86
|
-
write()
|
87
|
-
callback()
|
88
|
-
|
89
|
-
performFileAction: (callback, destination, content) ->
|
90
|
-
write = =>
|
91
|
-
File.write(@join(@destination, destination), content)
|
92
|
-
Log.ok "#{destination} generated..."
|
93
|
-
|
94
|
-
if File.exists(@destination, destination)
|
95
|
-
Commander.confirm "#{destination} exists. Overwrite? ", (y) ->
|
96
|
-
write() if y
|
97
|
-
callback()
|
98
|
-
else
|
99
|
-
write()
|
100
|
-
callback()
|
101
|
-
|
102
|
-
performTemplateAction: (callback, destination, source, data) ->
|
103
|
-
@performFileAction callback, destination, @compileTemplate(@join(@templates, source), data)
|
104
|
-
|
105
|
-
if module?
|
106
|
-
module.exports = Base
|
107
|
-
else
|
108
|
-
@Base = Base
|
@@ -1,63 +0,0 @@
|
|
1
|
-
module.exports = ->
|
2
|
-
Sugar = require 'sugar'
|
3
|
-
cli = require 'command-router'
|
4
|
-
meta = require '../../../package.json'
|
5
|
-
grunt = require 'grunt'
|
6
|
-
path = require 'path'
|
7
|
-
|
8
|
-
cli.command /help\s?(.*)/, ->
|
9
|
-
name = cli.params.splats[0]
|
10
|
-
commands = ['new', 'generate']
|
11
|
-
name = 'banner' if name == ''
|
12
|
-
|
13
|
-
if !commands.some(name) && name != 'banner'
|
14
|
-
console.error "Unknown command '#{name}'. Possible values: #{commands.join(', ')}."
|
15
|
-
process.exit 1
|
16
|
-
|
17
|
-
helper = require('./help')
|
18
|
-
helper[name]()
|
19
|
-
|
20
|
-
cli.command /new\s?(.*)?/, ->
|
21
|
-
name = cli.params.splats[0]
|
22
|
-
|
23
|
-
unless name?
|
24
|
-
console.error "Usage: `new :name`. Run `help` for details."
|
25
|
-
process.exit(1)
|
26
|
-
|
27
|
-
generator = require('../project')
|
28
|
-
generator = new generator(name: name)
|
29
|
-
generator.generate()
|
30
|
-
generator.perform -> process.exit 0
|
31
|
-
|
32
|
-
cli.command /g(enerate)?\s?(.*)/, ->
|
33
|
-
params = cli.params.splats[1].split(' ')
|
34
|
-
entity = params[0]
|
35
|
-
name = params[1]
|
36
|
-
|
37
|
-
generators = ['page', 'resource', 'widget', 'layout']
|
38
|
-
|
39
|
-
if !entity? || !name?
|
40
|
-
console.error "Usage: `generate :entity :name`. Run `help` for details."
|
41
|
-
process.exit 1
|
42
|
-
|
43
|
-
unless generators.some(entity)
|
44
|
-
console.error "Don't know how to generate '#{entity}'. Possible values: #{generators.join(', ')}."
|
45
|
-
process.exit 1
|
46
|
-
|
47
|
-
unless grunt.file.exists(process.cwd(), 'source')
|
48
|
-
console.error "Failed: `source' directory not found. Are you in the root of project?"
|
49
|
-
process.exit 1
|
50
|
-
|
51
|
-
generator = require("../#{entity}")
|
52
|
-
generator = new generator({name: name}, path.join(process.cwd(), 'source'))
|
53
|
-
generator.generate()
|
54
|
-
generator.perform -> process.exit 0
|
55
|
-
|
56
|
-
|
57
|
-
cli.on 'notfound', (action) ->
|
58
|
-
if action.length > 0
|
59
|
-
console.error "'#{action}' is an unknown action :("
|
60
|
-
else
|
61
|
-
console.log "Joosy #{meta.version}. Run `help` to list possible commands."
|
62
|
-
|
63
|
-
cli.parse process.argv
|
@@ -1,38 +0,0 @@
|
|
1
|
-
module.exports =
|
2
|
-
|
3
|
-
generate: ->
|
4
|
-
console.log 'Usage:'
|
5
|
-
console.log ' joosy generate :generator'
|
6
|
-
console.log ''
|
7
|
-
console.log 'Description:'
|
8
|
-
console.log ' Runs one of the following generators to create something for you:'
|
9
|
-
console.log ''
|
10
|
-
console.log ' page create new page'
|
11
|
-
console.log ' resource create new resource'
|
12
|
-
console.log ' widget create new widget'
|
13
|
-
console.log ' layout create new layout'
|
14
|
-
|
15
|
-
new: ->
|
16
|
-
console.log 'Usage:'
|
17
|
-
console.log ' joosy new :name'
|
18
|
-
console.log ''
|
19
|
-
console.log 'Description:'
|
20
|
-
console.log ' Generates brand new Joosy application named :name (directory with the name of application will be created)'
|
21
|
-
|
22
|
-
banner: ->
|
23
|
-
console.log ' __________________________'
|
24
|
-
console.log ' /_ ____ ____ ____ __ __/'
|
25
|
-
console.log ' __/ / / / ___/ / /'
|
26
|
-
console.log ' / / / / / / /__ / / /'
|
27
|
-
console.log ' /____/____/____/____/__ /'
|
28
|
-
console.log '/_________________________/'
|
29
|
-
console.log ''
|
30
|
-
console.log 'Usage:'
|
31
|
-
console.log ' joosy COMMAND [ARGS]'
|
32
|
-
console.log ''
|
33
|
-
console.log 'Available commands:'
|
34
|
-
console.log ' generate Insert new entity in the application (short-cut alias "g")'
|
35
|
-
console.log ' new Create a new application'
|
36
|
-
console.log ''
|
37
|
-
console.log 'Description:'
|
38
|
-
console.log ' Help is also available on per-command basis (joosy help command)'
|
@@ -1,26 +0,0 @@
|
|
1
|
-
@Base = require './base' if module?
|
2
|
-
|
3
|
-
#
|
4
|
-
# Possible options:
|
5
|
-
#
|
6
|
-
# name: name of layout including namespace (i.e. 'foo/bar/baz')
|
7
|
-
#
|
8
|
-
class Layout extends @Base
|
9
|
-
generate: ->
|
10
|
-
namespace = @getNamespace @options.name
|
11
|
-
basename = @getBasename @options.name
|
12
|
-
template = if namespace.length > 0 then 'namespaced' else 'basic'
|
13
|
-
|
14
|
-
@template ['layout', "#{template}.coffee"], ['layouts', @join(namespace...), "#{basename}.coffee"],
|
15
|
-
namespace_name: (@camelize(x) for x in namespace).join('.')
|
16
|
-
class_name: @camelize(basename)
|
17
|
-
view_name: basename
|
18
|
-
|
19
|
-
@file ['templates', 'layouts', @join(namespace...), "#{basename}.jst.hamlc"]
|
20
|
-
|
21
|
-
@actions
|
22
|
-
|
23
|
-
if module?
|
24
|
-
module.exports = Layout
|
25
|
-
else
|
26
|
-
@Generator = Layout
|
data/lib/generators/page.coffee
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
@Base = require './base' if module?
|
2
|
-
|
3
|
-
#
|
4
|
-
# Possible options:
|
5
|
-
#
|
6
|
-
# name: name of page including namespace (i.e. 'foo/bar/baz')
|
7
|
-
#
|
8
|
-
class Page extends @Base
|
9
|
-
generate: ->
|
10
|
-
namespace = @getNamespace @options.name
|
11
|
-
basename = @getBasename @options.name
|
12
|
-
template = if namespace.length > 0 then 'namespaced' else 'basic'
|
13
|
-
|
14
|
-
@template ['page', "#{template}.coffee"], ['pages', @join(namespace...), "#{basename}.coffee"],
|
15
|
-
namespace_name: (@camelize(x) for x in namespace).join('.')
|
16
|
-
class_name: @camelize(basename)
|
17
|
-
view_name: basename
|
18
|
-
|
19
|
-
@file ['templates', 'pages', @join(namespace...), "#{basename}.jst.hamlc"]
|
20
|
-
|
21
|
-
@actions
|
22
|
-
|
23
|
-
if module?
|
24
|
-
module.exports = Page
|
25
|
-
else
|
26
|
-
@Generator = Page
|
@@ -1,24 +0,0 @@
|
|
1
|
-
Standalone = require './project/standalone'
|
2
|
-
Base = require './project/base'
|
3
|
-
Path = require 'path'
|
4
|
-
|
5
|
-
module.exports = class
|
6
|
-
constructor: (@options) ->
|
7
|
-
@options.enableHTML5 = true
|
8
|
-
@options.dependencies = """
|
9
|
-
#= require jquery/jquery.js
|
10
|
-
#= require jquery-form/jquery.form.js
|
11
|
-
#= require sugar/release/sugar.min.js
|
12
|
-
"""
|
13
|
-
|
14
|
-
@standalone = new Standalone(@options)
|
15
|
-
@base = new Base(@options, Path.join(@standalone.destination, 'app/javascript'))
|
16
|
-
|
17
|
-
generate: ->
|
18
|
-
@standalone.generate()
|
19
|
-
@base.generate()
|
20
|
-
|
21
|
-
perform: (callback) ->
|
22
|
-
@standalone.perform =>
|
23
|
-
@base.perform =>
|
24
|
-
callback()
|
@@ -1,40 +0,0 @@
|
|
1
|
-
@Base = require '../base' if module?
|
2
|
-
|
3
|
-
#
|
4
|
-
# Possible options:
|
5
|
-
#
|
6
|
-
# name: name of project
|
7
|
-
#
|
8
|
-
class ProjectBase extends @Base
|
9
|
-
constructor: (@options, destination, templates) ->
|
10
|
-
super(@options, destination, templates)
|
11
|
-
|
12
|
-
generate: ->
|
13
|
-
@file ['resources', '.gitkeep']
|
14
|
-
@file ['widgets', '.gitkeep']
|
15
|
-
@file ['templates', 'widgets', '.gitkeep']
|
16
|
-
|
17
|
-
@copy ['application', 'base', 'routes.coffee'], ['routes.coffee']
|
18
|
-
@copy ['application', 'base', 'helpers', 'application.coffee'], ['helpers', 'application.coffee']
|
19
|
-
@copy ['application', 'base', 'layouts', 'application.coffee'], ['layouts', 'application.coffee']
|
20
|
-
@copy ['application', 'base', 'pages', 'application.coffee'], ['pages', 'application.coffee']
|
21
|
-
@copy ['application', 'base', 'pages', 'welcome', 'index.coffee'], ['pages', 'welcome', 'index.coffee']
|
22
|
-
|
23
|
-
@copy ['application', 'base', 'templates', 'layouts', 'application.jst.hamlc'],
|
24
|
-
['templates', 'layouts', 'application.jst.hamlc']
|
25
|
-
|
26
|
-
@copy ['application', 'base', 'templates', 'pages', 'welcome', 'index.jst.hamlc'],
|
27
|
-
['templates', 'pages', 'welcome', 'index.jst.hamlc']
|
28
|
-
|
29
|
-
|
30
|
-
@template ['application', 'base', 'application.coffee'], ['application.coffee'],
|
31
|
-
templaterPrefix: @options.templaterPrefix || null
|
32
|
-
enableHTML5: !!@options.enableHTML5
|
33
|
-
dependencies: @options.dependencies.replace /^\s+|\s+$/g, ''
|
34
|
-
|
35
|
-
@actions
|
36
|
-
|
37
|
-
if module?
|
38
|
-
module.exports = ProjectBase
|
39
|
-
else
|
40
|
-
@Generator = ProjectBase
|
@@ -1,51 +0,0 @@
|
|
1
|
-
@Base = require '../base' if module?
|
2
|
-
|
3
|
-
#
|
4
|
-
# Possible options:
|
5
|
-
#
|
6
|
-
# name: name of project
|
7
|
-
#
|
8
|
-
class ProjectStandalone extends @Base
|
9
|
-
constructor: (@options, destination, templates) ->
|
10
|
-
destination = @join process.cwd(), @options.name if !destination? && process?
|
11
|
-
super(@options, destination, templates)
|
12
|
-
|
13
|
-
generate: ->
|
14
|
-
@file ['public', '.gitkeep']
|
15
|
-
@file ['vendor', '.gitkeep']
|
16
|
-
|
17
|
-
@copy ['application', 'standalone', '_gitignore'], ['.gitignore']
|
18
|
-
@copy ['application', 'standalone', 'Gruntfile.coffee'], ['Gruntfile.coffee']
|
19
|
-
@copy ['application', 'standalone', 'Procfile'], ['Procfile']
|
20
|
-
|
21
|
-
@copy ['application', 'standalone', 'app', 'haml', 'index.haml'],
|
22
|
-
['app', 'haml', 'index.haml']
|
23
|
-
|
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']
|
30
|
-
|
31
|
-
@copy ['application', 'standalone', 'tasks', 'spec.coffee'],
|
32
|
-
['tasks', 'spec.coffee']
|
33
|
-
|
34
|
-
@copy ['application', 'standalone', 'spec', 'helpers', 'environment.coffee'],
|
35
|
-
['spec', 'helpers', 'environment.coffee']
|
36
|
-
|
37
|
-
@copy ['application', 'standalone', 'spec', 'application_spec.coffee'],
|
38
|
-
['spec', 'application_spec.coffee']
|
39
|
-
|
40
|
-
@template ['application', 'standalone', 'bower.json'], ['bower.json'],
|
41
|
-
application: @options.name
|
42
|
-
|
43
|
-
@template ['application', 'standalone', 'package.json'], ['package.json'],
|
44
|
-
joosy_version: @version()
|
45
|
-
|
46
|
-
@actions
|
47
|
-
|
48
|
-
if module?
|
49
|
-
module.exports = ProjectStandalone
|
50
|
-
else
|
51
|
-
@Generator = ProjectStandalone
|
@@ -1,12 +0,0 @@
|
|
1
|
-
<%= dependencies %>
|
2
|
-
#
|
3
|
-
#= require joosy
|
4
|
-
#
|
5
|
-
#= require_tree ./
|
6
|
-
|
7
|
-
$ ->
|
8
|
-
Joosy.Application.initialize 'body',
|
9
|
-
router:
|
10
|
-
html5: <%= enableHTML5 %><% if (templaterPrefix && templaterPrefix.length > 0) { %>
|
11
|
-
templater:
|
12
|
-
prefix: '<%= templaterPrefix %>'<% } %>
|
@@ -1,15 +0,0 @@
|
|
1
|
-
module.exports = (grunt) ->
|
2
|
-
|
3
|
-
grunt.config.data.coffee ||= {}
|
4
|
-
|
5
|
-
grunt.config.data.coffee.specs =
|
6
|
-
expand: true
|
7
|
-
src: 'spec/**/*_spec.coffee'
|
8
|
-
dest: '.grunt'
|
9
|
-
ext: '.js'
|
10
|
-
|
11
|
-
grunt.config.data.coffee.spec_helpers =
|
12
|
-
expand: true
|
13
|
-
src: 'spec/helpers/**/*.coffee'
|
14
|
-
dest: '.grunt'
|
15
|
-
ext: '.js'
|
@@ -1,26 +0,0 @@
|
|
1
|
-
@Base = require './base' if module?
|
2
|
-
|
3
|
-
#
|
4
|
-
# Possible options:
|
5
|
-
#
|
6
|
-
# name: name of widget including namespace (i.e. 'foo/bar/baz')
|
7
|
-
#
|
8
|
-
class Widget extends @Base
|
9
|
-
generate: ->
|
10
|
-
namespace = @getNamespace @options.name
|
11
|
-
basename = @getBasename @options.name
|
12
|
-
template = if namespace.length > 0 then 'namespaced' else 'basic'
|
13
|
-
|
14
|
-
@template ['widget', "#{template}.coffee"], ['widgets', @join(namespace...), "#{basename}.coffee"],
|
15
|
-
namespace_name: (@camelize(x) for x in namespace).join('.')
|
16
|
-
class_name: @camelize(basename)
|
17
|
-
view_name: basename
|
18
|
-
|
19
|
-
@file ['templates', 'widgets', @join(namespace...), "#{basename}.jst.hamlc"]
|
20
|
-
|
21
|
-
@actions
|
22
|
-
|
23
|
-
if module?
|
24
|
-
module.exports = Widget
|
25
|
-
else
|
26
|
-
@Generator = Widget
|
data/lib/tasks/testem.coffee
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
Path = require 'path'
|
2
|
-
|
3
|
-
module.exports = (grunt) ->
|
4
|
-
|
5
|
-
grunt.registerTask 'testem:generate', ->
|
6
|
-
unless @args[0]
|
7
|
-
grunt.config.requires 'testem'
|
8
|
-
return Object.each grunt.config.get('testem'), (key, value) ->
|
9
|
-
grunt.task.run "testem:generate:#{key}"
|
10
|
-
|
11
|
-
grunt.config.requires "testem.#{@args[0]}"
|
12
|
-
|
13
|
-
coffee = []
|
14
|
-
source = grunt.file.expand grunt.config.get("testem.#{@args[0]}.src")
|
15
|
-
|
16
|
-
serve = source.map (name) ->
|
17
|
-
if Path.extname(name) == '.coffee'
|
18
|
-
destination = ".grunt/#{Path.dirname(name)}/#{Path.basename(name, '.coffee')}.js"
|
19
|
-
coffee.push "coffee -o #{Path.dirname(destination)} -c #{name}"
|
20
|
-
destination
|
21
|
-
else
|
22
|
-
name
|
23
|
-
|
24
|
-
result =
|
25
|
-
framework: 'jasmine',
|
26
|
-
src_files: source
|
27
|
-
serve_files: serve
|
28
|
-
before_tests: 'grunt mince;'+coffee.join(';')
|
29
|
-
launch_in_dev: ['PhantomJS'],
|
30
|
-
launch_in_ci: ['PhantomJS', 'Chrome', 'Firefox', 'Safari', 'IE7', 'IE8', 'IE9']
|
31
|
-
|
32
|
-
grunt.file.write "spec/#{@args[0]}.json", JSON.stringify(result, null, 2)
|
33
|
-
|
34
|
-
grunt.registerTask 'testem:ci', ->
|
35
|
-
unless @args[0]
|
36
|
-
grunt.config.requires 'testem'
|
37
|
-
return Object.each grunt.config.get('testem'), (key, value) ->
|
38
|
-
grunt.task.run "testem:ci:#{key}"
|
39
|
-
|
40
|
-
complete = @async()
|
41
|
-
|
42
|
-
grunt.config.requires "testem.#{@args[0]}"
|
43
|
-
|
44
|
-
command = "node_modules/.bin/testem"
|
45
|
-
options = ['ci', '-f', "spec/#{@args[0]}.json", '-R', 'dot', '-P', '8']
|
46
|
-
|
47
|
-
grunt.util.spawn {cmd: command, args: options, opts: {stdio: [0,1,2]}}, (error, result) ->
|
48
|
-
grunt.fatal "Tests did not succed" if error
|
49
|
-
complete()
|
50
|
-
|
51
|
-
grunt.registerTask 'testem:run', ->
|
52
|
-
complete = @async()
|
53
|
-
|
54
|
-
command = "node_modules/.bin/testem"
|
55
|
-
options = ['-f', "spec/#{@args[0]}.json"]
|
56
|
-
|
57
|
-
grunt.util.spawn {cmd: command, args: options, opts: {stdio: [0,1,2]}}, (error, result) ->
|
58
|
-
complete()
|