joosy 1.1.2 → 1.2.0.alpha.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +6 -7
  3. data/Gemfile +1 -11
  4. data/Gruntfile.coffee +138 -0
  5. data/README.md +65 -24
  6. data/bin/joosy +21 -0
  7. data/bower.json +23 -0
  8. data/joosy.gemspec +6 -12
  9. data/lib/joosy.js +3754 -0
  10. data/lib/joosy.rb +8 -9
  11. data/package.json +37 -0
  12. data/spec/{javascripts/helpers/spec_helper.js.coffee → helpers/helper.coffee} +0 -0
  13. data/spec/{javascripts/joosy/core/application_spec.js.coffee → joosy/core/application_spec.coffee} +0 -0
  14. data/spec/{javascripts/joosy/core/form_spec.js.coffee → joosy/core/form_spec.coffee} +30 -30
  15. data/spec/{javascripts/joosy/core/helpers/forms_spec.js.coffee → joosy/core/helpers/forms_spec.coffee} +0 -0
  16. data/spec/{javascripts/joosy/core/helpers/view_spec.js.coffee → joosy/core/helpers/view_spec.coffee} +0 -0
  17. data/spec/{javascripts/joosy/core/helpers/widgets_spec.js.coffee → joosy/core/helpers/widgets_spec.coffee} +0 -0
  18. data/spec/{javascripts/joosy/core/joosy_spec.js.coffee → joosy/core/joosy_spec.coffee} +0 -0
  19. data/spec/{javascripts/joosy/core/layout_spec.js.coffee → joosy/core/layout_spec.coffee} +0 -0
  20. data/spec/{javascripts/joosy/core/modules/container_spec.js.coffee → joosy/core/modules/container_spec.coffee} +1 -1
  21. data/spec/{javascripts/joosy/core/modules/events_spec.js.coffee → joosy/core/modules/events_spec.coffee} +0 -0
  22. data/spec/{javascripts/joosy/core/modules/filters_spec.js.coffee → joosy/core/modules/filters_spec.coffee} +0 -0
  23. data/spec/{javascripts/joosy/core/modules/log_spec.js.coffee → joosy/core/modules/log_spec.coffee} +0 -0
  24. data/spec/{javascripts/joosy/core/modules/module_spec.js.coffee → joosy/core/modules/module_spec.coffee} +0 -0
  25. data/spec/{javascripts/joosy/core/modules/renderer_spec.js.coffee → joosy/core/modules/renderer_spec.coffee} +35 -0
  26. data/spec/{javascripts/joosy/core/modules/time_manager_spec.js.coffee → joosy/core/modules/time_manager_spec.coffee} +0 -0
  27. data/spec/{javascripts/joosy/core/modules/widget_manager_spec.js.coffee → joosy/core/modules/widget_manager_spec.coffee} +0 -0
  28. data/spec/{javascripts/joosy/core/page_spec.js.coffee → joosy/core/page_spec.coffee} +0 -0
  29. data/spec/{javascripts/joosy/core/resource/collection_spec.js.coffee → joosy/core/resource/collection_spec.coffee} +0 -0
  30. data/spec/{javascripts/joosy/core/resource/generic_spec.js.coffee → joosy/core/resource/generic_spec.coffee} +0 -0
  31. data/spec/{javascripts/joosy/core/resource/rest_collection_spec.js.coffee → joosy/core/resource/rest_collection_spec.coffee} +0 -0
  32. data/spec/{javascripts/joosy/core/resource/rest_spec.js.coffee → joosy/core/resource/rest_spec.coffee} +0 -8
  33. data/spec/{javascripts/joosy/core/router_spec.js.coffee → joosy/core/router_spec.coffee} +19 -22
  34. data/spec/{javascripts/joosy/core/templaters/rails_jst_spec.js.coffee → joosy/core/templaters/rails_jst_spec.coffee} +0 -0
  35. data/spec/{javascripts/joosy/core/widget_spec.js.coffee → joosy/core/widget_spec.coffee} +0 -0
  36. data/spec/{javascripts/joosy/preloaders/caching_spec.js.coffee → joosy/preloaders/caching_spec.coffee} +2 -2
  37. data/spec/{javascripts/joosy/preloaders/inline_spec.js.coffee → joosy/preloaders/inline_spec.coffee} +1 -1
  38. data/spec/support/test.js +1 -0
  39. data/{app/assets/javascripts/joosy/core/application.js.coffee → src/joosy/core/application.coffee} +0 -0
  40. data/{app/assets/javascripts/joosy/core/form.js.coffee → src/joosy/core/form.coffee} +5 -5
  41. data/{app/assets/javascripts/joosy/core/helpers/form.js.coffee → src/joosy/core/helpers/form.coffee} +0 -0
  42. data/{app/assets/javascripts/joosy/core/helpers/view.js.coffee → src/joosy/core/helpers/view.coffee} +0 -0
  43. data/{app/assets/javascripts/joosy/core/helpers/widgets.js.coffee → src/joosy/core/helpers/widgets.coffee} +0 -0
  44. data/{app/assets/javascripts/joosy/core/joosy.js.coffee → src/joosy/core/joosy.coffee} +1 -1
  45. data/{app/assets/javascripts/joosy/core/layout.js.coffee → src/joosy/core/layout.coffee} +0 -0
  46. data/{app/assets/javascripts/joosy/core/modules/container.js.coffee → src/joosy/core/modules/container.coffee} +1 -1
  47. data/{app/assets/javascripts/joosy/core/modules/events.js.coffee → src/joosy/core/modules/events.coffee} +4 -6
  48. data/{app/assets/javascripts/joosy/core/modules/filters.js.coffee → src/joosy/core/modules/filters.coffee} +0 -0
  49. data/{app/assets/javascripts/joosy/core/modules/log.js.coffee → src/joosy/core/modules/log.coffee} +0 -0
  50. data/{app/assets/javascripts/joosy/core/modules/module.js.coffee → src/joosy/core/modules/module.coffee} +0 -0
  51. data/{app/assets/javascripts/joosy/core/modules/renderer.js.coffee → src/joosy/core/modules/renderer.coffee} +1 -1
  52. data/{app/assets/javascripts/joosy/core/modules/time_manager.js.coffee → src/joosy/core/modules/time_manager.coffee} +0 -0
  53. data/{app/assets/javascripts/joosy/core/modules/widgets_manager.js.coffee → src/joosy/core/modules/widgets_manager.coffee} +0 -0
  54. data/{app/assets/javascripts/joosy/core/page.js.coffee → src/joosy/core/page.coffee} +0 -1
  55. data/{app/assets/javascripts/joosy/core/preloader.js.coffee → src/joosy/core/preloader.coffee} +0 -0
  56. data/{app/assets/javascripts/joosy/core/resource/collection.js.coffee → src/joosy/core/resource/collection.coffee} +0 -0
  57. data/{app/assets/javascripts/joosy/core/resource/generic.js.coffee → src/joosy/core/resource/generic.coffee} +5 -5
  58. data/{app/assets/javascripts/joosy/core/resource/rest.js.coffee → src/joosy/core/resource/rest.coffee} +5 -5
  59. data/{app/assets/javascripts/joosy/core/resource/rest_collection.js.coffee → src/joosy/core/resource/rest_collection.coffee} +0 -0
  60. data/src/joosy/core/resource/watcher.coffee +50 -0
  61. data/{app/assets/javascripts/joosy/core/router.js.coffee → src/joosy/core/router.coffee} +28 -30
  62. data/{app/assets/javascripts/joosy/core/templaters/rails_jst.js.coffee → src/joosy/core/templaters/rails_jst.coffee} +12 -2
  63. data/{app/assets/javascripts/joosy/core/widget.js.coffee → src/joosy/core/widget.coffee} +0 -0
  64. data/src/joosy/generators/command.coffee +49 -0
  65. data/src/joosy/generators/generator.coffee +93 -0
  66. data/src/joosy/generators/layout.coffee +20 -0
  67. data/src/joosy/generators/page.coffee +20 -0
  68. data/src/joosy/generators/project/base.coffee +28 -0
  69. data/src/joosy/generators/project/standalone.coffee +25 -0
  70. data/src/joosy/generators/project.coffee +16 -0
  71. data/src/joosy/generators/widget.coffee +20 -0
  72. data/{app/assets/javascripts/joosy/preloaders/caching.js.coffee → src/joosy/preloaders/caching.coffee} +0 -0
  73. data/{app/assets/javascripts/joosy/preloaders/inline.js.coffee → src/joosy/preloaders/inline.coffee} +0 -0
  74. data/src/joosy.coffee +2 -0
  75. data/src/vendor/metamorph.coffee +410 -0
  76. data/tasks/joosy.coffee +63 -0
  77. data/templates/application/base/application.coffee +11 -0
  78. data/{lib/rails/generators/joosy/templates/app/helpers/application.js.coffee → templates/application/base/helpers/application.coffee} +0 -0
  79. data/{lib/rails/generators/joosy/templates/app/layouts/application.js.coffee → templates/application/base/layouts/application.coffee} +0 -0
  80. data/{lib/rails/generators/joosy/templates/app/pages/application.js.coffee → templates/application/base/pages/application.coffee} +0 -0
  81. data/{lib/rails/generators/joosy/templates/app/pages/welcome/index.js.coffee → templates/application/base/pages/welcome/index.coffee} +3 -3
  82. data/templates/application/base/routes.coffee +3 -0
  83. data/{lib/rails/generators/joosy/templates/app → templates/application/base}/templates/layouts/application.jst.hamlc +0 -0
  84. data/{lib/rails/generators/joosy/templates/app → templates/application/base}/templates/pages/welcome/index.jst.hamlc +1 -2
  85. data/templates/application/standalone/.gitignore +5 -0
  86. data/templates/application/standalone/Gruntfile.coffee +40 -0
  87. data/templates/application/standalone/Procfile +1 -0
  88. data/templates/application/standalone/bower.json +7 -0
  89. data/templates/application/standalone/package.json +24 -0
  90. data/templates/application/standalone/source/index.haml +7 -0
  91. data/templates/application/standalone/stylesheets/application.styl +2 -0
  92. data/templates/layout/basic.coffee +2 -0
  93. data/templates/layout/namespaced.coffee +4 -0
  94. data/templates/page/basic.coffee +3 -0
  95. data/templates/page/namespaced.coffee +5 -0
  96. data/templates/widget/basic.coffee +2 -0
  97. data/templates/widget/namespaced.coffee +4 -0
  98. metadata +98 -179
  99. data/.codoopts +0 -5
  100. data/Gemfile.lock +0 -157
  101. data/Guardfile +0 -32
  102. data/LICENSE +0 -22
  103. data/MIT-LICENSE +0 -21
  104. data/Rakefile +0 -14
  105. data/app/assets/javascripts/joosy.js.coffee +0 -5
  106. data/app/helpers/joosy/sprockets_helper.rb +0 -41
  107. data/app/views/layouts/json_wrapper.json.erb +0 -1
  108. data/lib/joosy/rails/engine.rb +0 -24
  109. data/lib/joosy/version.rb +0 -3
  110. data/lib/rails/generators/joosy/application_generator.rb +0 -43
  111. data/lib/rails/generators/joosy/joosy_base.rb +0 -30
  112. data/lib/rails/generators/joosy/layout_generator.rb +0 -30
  113. data/lib/rails/generators/joosy/page_generator.rb +0 -42
  114. data/lib/rails/generators/joosy/preloader_generator.rb +0 -30
  115. data/lib/rails/generators/joosy/resource_generator.rb +0 -40
  116. data/lib/rails/generators/joosy/templates/app/layouts/template.js.coffee +0 -2
  117. data/lib/rails/generators/joosy/templates/app/pages/template.js.coffee +0 -5
  118. data/lib/rails/generators/joosy/templates/app/resources/template.js.coffee +0 -2
  119. data/lib/rails/generators/joosy/templates/app/resources/template_with_namespace.js.coffee +0 -4
  120. data/lib/rails/generators/joosy/templates/app/routes.js.coffee +0 -8
  121. data/lib/rails/generators/joosy/templates/app/widgets/template.js.coffee +0 -2
  122. data/lib/rails/generators/joosy/templates/app.js.coffee +0 -11
  123. data/lib/rails/generators/joosy/templates/app_controller.rb +0 -9
  124. data/lib/rails/generators/joosy/templates/app_preloader.js.coffee.erb +0 -13
  125. data/lib/rails/generators/joosy/templates/app_railties.js.coffee.erb +0 -11
  126. data/lib/rails/generators/joosy/templates/preload.html.erb +0 -26
  127. data/lib/rails/generators/joosy/templates/preload.html.haml +0 -19
  128. data/lib/rails/generators/joosy/templates/preload.html.slim +0 -19
  129. data/lib/rails/generators/joosy/widget_generator.rb +0 -30
  130. data/lib/rails/resources_with_joosy.rb +0 -11
  131. data/spec/javascripts/support/assets/coolface.jpg +0 -0
  132. data/spec/javascripts/support/assets/okay.jpg +0 -0
  133. data/spec/javascripts/support/assets/test.js +0 -1
  134. data/spec/javascripts/support/jasmine.yml +0 -74
  135. data/spec/javascripts/support/jasmine_config.rb +0 -23
  136. data/spec/javascripts/support/jasmine_runner.rb +0 -32
  137. data/spec/javascripts/support/sinon-1.3.1.js +0 -3469
  138. data/spec/javascripts/support/sinon-ie-1.3.1.js.skip +0 -82
  139. data/vendor/assets/javascripts/jquery.form.js +0 -1190
  140. data/vendor/assets/javascripts/jquery.hashchange.js +0 -390
  141. data/vendor/assets/javascripts/metamorph.js +0 -409
  142. data/vendor/assets/javascripts/sugar.js +0 -8637
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 46505115460ed2431dd17b9d3f65f8e01247bbea
4
- data.tar.gz: 881b8abb52e4388865350b5135c88afa1a1f105b
3
+ metadata.gz: 02b11c8b16a833bce2041755884857abb5ebc8d7
4
+ data.tar.gz: 325c12aabae0052cdd11a098e1d2551e59962e77
5
5
  SHA512:
6
- metadata.gz: a706ddbb53453e9635c2d4104a9571b8037d339c8f0db31bbe89a67e8a281e0434a7ebb3b84b3909cb08e812270594cbcf7864aa3719176d43e4e767008d5abb
7
- data.tar.gz: 00c702eaa564ea00c7121d11d28f36d62e908dc05cfebe2648a44be21c89c857d411acdbceabc670593453137dd85297ca252eda2e1488b115004fb600a16c95
6
+ metadata.gz: c70a1a3d66b29e5b3c35bbd9e989128441ab28d680805b17dcc624ae5edabb1be2a13154ca6becf56f048ba059d442ec9ed8ff5dae8d47c3299690cf43f3a5c6
7
+ data.tar.gz: a92fe9856fab357b6953bed3e31744470b5a67028741af7419575bc11295a40f4122224601425c00731dc2f0bf7b5ce7605294da1db17443d265a4b6d7fe77e3
data/.gitignore CHANGED
@@ -1,7 +1,6 @@
1
- .idea/
2
- .bundle/
3
- log/*.log
4
- pkg/
5
- tmp/
6
- .DS_Store
7
- doc/
1
+ node_modules
2
+ components
3
+ .grunt
4
+ index.html
5
+ *.gem
6
+ Gemfile.lock
data/Gemfile CHANGED
@@ -1,15 +1,5 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- # Specify your gem's dependencies in joosy.gemspec
4
3
  gemspec
5
4
 
6
- group :development do
7
- gem 'jasmine', :git => 'git://github.com/pivotal/jasmine-gem.git'
8
- gem 'guard-sprockets'
9
- gem 'thin'
10
- end
11
-
12
- group :test do
13
- gem 'rb-inotify', :require => false
14
- gem 'libnotify', :require => false
15
- end
5
+ gem 'pry'
data/Gruntfile.coffee ADDED
@@ -0,0 +1,138 @@
1
+ module.exports = (grunt) ->
2
+
3
+ Sugar = require 'sugar'
4
+ Mincer = require 'mincer'
5
+ FS = require 'fs'
6
+
7
+ #
8
+ # Locations
9
+ #
10
+ locations =
11
+ source:
12
+ root: 'joosy.coffee'
13
+ path: 'src'
14
+ build: 'lib/joosy.js'
15
+ specs:
16
+ units: 'spec/**/*_spec.*'
17
+ helpers: 'spec/helpers/**/*.*'
18
+ build: '.grunt'
19
+
20
+ #
21
+ # Grunt extensions
22
+ #
23
+ grunt.loadNpmTasks 'grunt-mincer'
24
+ grunt.loadNpmTasks 'grunt-contrib-connect'
25
+ grunt.loadNpmTasks 'grunt-contrib-coffee'
26
+ grunt.loadNpmTasks 'grunt-contrib-jasmine'
27
+ grunt.loadNpmTasks 'grunt-contrib-watch'
28
+ grunt.loadNpmTasks 'grunt-coffeelint'
29
+ grunt.loadNpmTasks 'grunt-release'
30
+
31
+ grunt.initConfig
32
+ release:
33
+ options:
34
+ bump: false
35
+ add: false
36
+ commit: false
37
+ push: false
38
+
39
+ connect:
40
+ specs:
41
+ options:
42
+ port: 8888
43
+
44
+ watch:
45
+ source:
46
+ files: [locations.source.path + '/**/*']
47
+ tasks: ['mince', 'jasmine']
48
+ specs:
49
+ options:
50
+ nospawn: true
51
+ files: [locations.specs.units, locations.specs.helpers]
52
+ tasks: ['coffee', 'jasmine']
53
+
54
+ coffee:
55
+ specs:
56
+ expand: true
57
+ src: [locations.specs.units, locations.specs.helpers]
58
+ dest: locations.specs.build
59
+ ext: '.js'
60
+
61
+ mince:
62
+ main:
63
+ include: [locations.source.path]
64
+ src: locations.source.root
65
+ dest: locations.source.build
66
+
67
+ coffeelint:
68
+ source:
69
+ files:
70
+ src: [locations.source.path + '/joosy/**/*.coffee']
71
+ options:
72
+ 'max_line_length':
73
+ level: 'ignore'
74
+
75
+ jasmine:
76
+ joosy:
77
+ src: locations.source.build
78
+ options:
79
+ host: 'http://localhost:8888/'
80
+ keepRunner: true
81
+ outfile: 'index.html'
82
+ vendor: [
83
+ 'components/sinonjs/sinon.js',
84
+ 'components/jquery/jquery.js',
85
+ 'components/jquery-form/jquery.form.js',
86
+ 'components/sugar/release/sugar-full.min.js'
87
+ ],
88
+ specs: locations.specs.build + '/' + locations.specs.units
89
+ helpers: locations.specs.build + '/' + locations.specs.helpers
90
+
91
+ grunt.event.on 'watch', (action, filepath) ->
92
+ grunt.config ['coffee', 'specs', 'src'], filepath
93
+
94
+ #
95
+ # Tasks
96
+ #
97
+ grunt.registerTask 'default', ['connect', 'build', 'watch']
98
+
99
+ grunt.registerTask 'build', ['mince', 'coffee', 'jasmine:joosy:build', 'bowerize']
100
+
101
+ grunt.registerTask 'test', ['connect', 'mince', 'coffee', 'bowerize', 'jasmine']
102
+
103
+ grunt.registerTask 'bowerize', ->
104
+ bower = require './bower.json'
105
+ meta = require './package.json'
106
+
107
+ bower.version = meta.version
108
+ FS.writeFileSync 'bower.json', JSON.stringify(bower, null, 2)
109
+
110
+ grunt.registerTask 'publish:ensureCommits', ->
111
+ complete = @async()
112
+
113
+ grunt.util.spawn {cmd: "git", args: ["status", "--porcelain" ]}, (error, result) ->
114
+ if !!error || result.stdout.length > 0
115
+ console.log ""
116
+ console.log "Uncommited changes found. Please commit prior to release or use `--force`.".bold
117
+ console.log ""
118
+ complete false
119
+ else
120
+ complete true
121
+
122
+ grunt.registerTask 'publish:gem', ->
123
+ meta = require './package.json'
124
+ complete = @async()
125
+
126
+ grunt.util.spawn {cmd: "gem", args: ["build", "joosy.gemspec"]}, (error, result) ->
127
+ return complete false if error
128
+
129
+ gem = "joosy-#{meta.version.replace('-', '.')}.gem"
130
+ grunt.log.ok "Built #{gem}"
131
+
132
+ grunt.util.spawn {cmd: "gem", args: ["push", gem]}, (error, result) ->
133
+ return complete false if error
134
+ grunt.log.ok "Published #{gem}"
135
+ grunt.file.delete gem
136
+ complete(true)
137
+
138
+ grunt.registerTask 'publish', ['test', 'publish:ensureCommits', 'release', 'publish:gem']
data/README.md CHANGED
@@ -1,56 +1,97 @@
1
- ![Joosy](http://f.cl.ly/items/2N2J453J2B353F1A0t0I/joocy1.1.png)
1
+ # Joosy 1.2: Feather
2
+
3
+ ## WARNING!!!
4
+
5
+ Master branch is currently totally incompatible with the stable 1.1 and 1.0 branches. 1.2 features
6
+ total restructuring of the way we build the gem and the way you are supposed to include it.
7
+
8
+ To keep things working please use either
9
+
10
+ ```ruby
11
+ gem 'joosy', '~> 1.1.0'
12
+ ```
13
+
14
+ or
15
+
16
+ ```ruby
17
+ gem 'joosy', github: 'joosy/joosy', branch: '1.1'
18
+ ```
19
+
20
+ [Guides](http://guides.joosy.ws/) and [API](http://api.joosy.ws/) are also bound to 1.1 branch.
21
+ Again – make sure you use proper gem versions.
22
+
23
+ ### Whatever! I'm ninja!
24
+
25
+ Below in this README you will find new installation instructions. They are still very likely
26
+ to change or work not as expected while 1.2 branch is still early alpha.
27
+
28
+ Keep track on what's going on at the [Wiki](https://github.com/joosy/joosy/wiki#12-feather)
2
29
 
3
30
  ## What is Joosy
4
31
 
32
+ ![Joosy](http://f.cl.ly/items/2N2J453J2B353F1A0t0I/joocy1.1.png)
33
+
5
34
  Joosy is a javascript framework. Being a harmonious extensions to Rails it introduces everything you like about this framework right to your browser. Ready conventions set, extensive CoffeeScript, HAML support, Helpers, seamless backend integration, automatic code generation and more.
6
35
 
7
36
  Joosy allows you to create web apps which work completely in the browser. So that, it helps you to relocate all your Rails Views to the client side. It also helps you with managing the growing quantity of JS code. On another hand, it makes your backend to have exactly one function – to be a simple REST provider. That leads to easier development support and improves the scalability greatly.
8
37
 
9
38
  Besides Rails, Joosy is based on top of [CoffeeScript](http://coffeescript.org/), [jQuery](http://jquery.com/) and [Sugar.js](http://sugarjs.com/) in role of ActiveSupport.
10
39
 
11
- Finally, Joosy boosts your development drastically. Just like the Rails do.
40
+ Finally, Joosy boosts your development drastically. Just like the Rails framework does.
12
41
 
13
- * [Joosy basics](http://guides.joosy.ws/guides/basics/getting-started.html): introduction and architecture highlights
14
- * [Joosy vs X](http://guides.joosy.ws/guides/basics/joosy-vs-x.html): comparison to Backbone and Ember.js
15
- * [Joosy guides](http://guides.joosy.ws/): set of articles that will help you to learn the framework.
16
- * [Joosy API](http://api.joosy.ws/): Codo-documented API of Joosy.
17
-
18
- ### Hello world app
42
+ ### Jump in with Rails
19
43
 
20
44
  Add Joosy gem to your Gemfile:
21
45
 
22
- gem 'joosy'
46
+ ```ruby
47
+ gem 'joosy-rails', '~> 1.2.0'
48
+ ```
23
49
 
24
50
  Using built-in generators you can quickly generate small app inside your Rails app to see Joosy application from inside a bit.
25
51
 
26
52
  rails g joosy:application dummy
27
- rails g joosy:preloader dummy
28
53
 
29
- Now you can `rails s` and see Joosy placeholder at [localhost:3000/dummy](http://localhost:3000/dummy)
54
+ Now you can run `rails s` to get Joosy placeholder at [localhost:3000/dummy](http://localhost:3000/dummy). Generated application will consist of one `Layout` and one `Page` both including very basic practices of Joosy.
30
55
 
31
- Generated application will consist of one `Layout` and one `Page` both including very basic practices of Joosy.
56
+ ### Jump in with Sinatra
32
57
 
33
- # Hacking
58
+ ### Standalone application
34
59
 
35
- Don't forget to run tests!
60
+ Make sure you have Node.js installed. Install joosy package globally to start with:
36
61
 
37
- ```ruby
38
- bundle install
39
- rake guard
40
- rake jasmine
41
- ```
62
+ npm install joosy -g
63
+
64
+ Now run basic application generator with the following command:
65
+
66
+ joosy new dummy
67
+
68
+ Now you can `grunt server` to get Joosy placeholder at [localhost:4000/](http://localhost:4000/). Generated application will consist of one `Layout` and one `Page` both including very basic practices of Joosy.
69
+
70
+ To generate assets statically prior to the deployment run
71
+
72
+ grunt joosy:compile
73
+
74
+ Your assets will appear at `public/` directory.
75
+
76
+ ## Hacking
77
+
78
+ * Ensure you have Node.js available on your system
79
+ * Clone the project
80
+ * Run `npm install` to get required Node modules
81
+ * Run `bower install` to get require JS components
82
+ * Run `grunt test` to run specs once
83
+ * Run `grunt` to watch sources (automatic changes compilations) and run test-server (get your browser to http://localhost:8888/)
42
84
 
43
- http://localhost:8888/ <- they are here :)
85
+ While current repository is, at the same time: NPM package, Ruby gem and Bower component – the main Core
86
+ environment is Node.js.
44
87
 
45
- Credits
46
- -------
88
+ ## Credits
47
89
 
48
90
  * Boris Staal ([@_inossidabile](http://twitter.com/#!/_inossidabile)) [![endorse](http://api.coderwall.com/inossidabile/endorsecount.png)](http://coderwall.com/inossidabile)
49
91
  * Andrew Shaydurov ([@ImGearHead](http://twitter.com/#!/ImGearHead))
50
92
  * Alexander Pavlenko ([@alerticus](http://twitter.com/#!/alerticus))
51
93
  * Peter Zotov ([@whitequark](http://twitter.com/#!/whitequark))
52
94
 
53
- LICENSE
54
- -------
95
+ ## LICENSE
55
96
 
56
97
  It is free software, and may be redistributed under the terms of MIT license.
data/bin/joosy ADDED
@@ -0,0 +1,21 @@
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('src', 'joosy', 'generators', '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/bower.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "joosy",
3
+ "version": "1.2.0-alpha.4",
4
+ "main": "lib/joosy.js",
5
+ "ignore": [
6
+ "bin",
7
+ "spec",
8
+ "tasks",
9
+ "templates",
10
+ "Gemfile",
11
+ "Gruntfile.coffee",
12
+ "joosy.gemspec",
13
+ "package.json"
14
+ ],
15
+ "dependencies": {
16
+ "jquery": "~2.0.2",
17
+ "sugar": "~1.3.9",
18
+ "jquery-form": "~3.32.0-2013.04.09"
19
+ },
20
+ "devDependencies": {
21
+ "sinonjs": "~1.7.1"
22
+ }
23
+ }
data/joosy.gemspec CHANGED
@@ -1,24 +1,18 @@
1
- require File.expand_path("../lib/joosy/version", __FILE__)
1
+ require File.expand_path("../lib/joosy.rb", __FILE__)
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "joosy"
5
5
  s.version = Joosy::VERSION
6
6
  s.platform = Gem::Platform::RUBY
7
- s.summary = "Joosy Framework support for Ruby on Rails"
8
- s.email = "boris@roundlake.ru"
7
+ s.summary = "Joosy Framework"
8
+ s.email = "boris@staal.io"
9
9
  s.homepage = "http://github.com/joosy/joosy"
10
- s.description = "A gem wrapper to include Joosy via the asset pipeline."
10
+ s.description = "A gem wrapper to include Joosy via the asset pipeline"
11
11
  s.authors = ['Boris Staal', 'Andrew Shaydurov', 'Peter Zotov', 'Alexander Pavlenko']
12
12
 
13
- s.files = `git ls-files`.split("\n")
13
+ s.files = `git ls-files`.split("\n")
14
14
  s.require_paths = ["lib"]
15
15
 
16
16
  s.add_dependency 'sprockets'
17
17
  s.add_dependency 'haml_coffee_assets'
18
-
19
- s.add_development_dependency 'jquery-rails'
20
- s.add_development_dependency 'guard'
21
- s.add_development_dependency 'guard-coffeescript'
22
- s.add_development_dependency 'guard-sprockets'
23
- s.add_development_dependency 'jasmine'
24
- end
18
+ end