joosy 0.1.0.RC3 → 0.1.0.alpha

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. data/.gitignore +0 -2
  2. data/Gemfile +2 -13
  3. data/Gemfile.lock +62 -80
  4. data/Guardfile +15 -21
  5. data/MIT-LICENSE +2 -2
  6. data/README.rdoc +3 -0
  7. data/app/helpers/joosy/sprockets_helper.rb +11 -23
  8. data/joosy.gemspec +3 -3
  9. data/lib/joosy/forms.rb +12 -2
  10. data/lib/joosy/rails/engine.rb +1 -9
  11. data/lib/joosy/rails/version.rb +2 -2
  12. data/lib/joosy-rails.rb +5 -0
  13. data/lib/rails/generators/joosy/application_generator.rb +3 -13
  14. data/lib/rails/generators/joosy/joosy_base.rb +2 -2
  15. data/lib/rails/generators/joosy/layout_generator.rb +1 -8
  16. data/lib/rails/generators/joosy/page_generator.rb +6 -21
  17. data/lib/rails/generators/joosy/preloader_generator.rb +7 -14
  18. data/lib/rails/generators/joosy/templates/app/layouts/application.js.coffee +0 -1
  19. data/lib/rails/generators/joosy/templates/app/layouts/template.js.coffee +1 -1
  20. data/lib/rails/generators/joosy/templates/app/pages/application.js.coffee +1 -1
  21. data/lib/rails/generators/joosy/templates/app/pages/template.js.coffee +3 -3
  22. data/lib/rails/generators/joosy/templates/app/routes.js.coffee +1 -7
  23. data/lib/rails/generators/joosy/templates/app/widgets/template.js.coffee +2 -2
  24. data/lib/rails/generators/joosy/templates/app.js.coffee +0 -3
  25. data/lib/rails/generators/joosy/templates/app_preloader.js.coffee.erb +12 -9
  26. data/lib/rails/generators/joosy/templates/preload.html.erb +6 -5
  27. data/lib/rails/generators/joosy/templates/preload.html.haml +5 -3
  28. data/lib/rails/generators/joosy/templates/preload.html.slim +21 -0
  29. data/lib/rails/generators/joosy/widget_generator.rb +1 -8
  30. data/spec/javascripts/helpers/spec_helper.js.coffee +0 -20
  31. data/spec/javascripts/joosy/core/modules/container_spec.js.coffee +27 -24
  32. data/spec/javascripts/joosy/core/modules/events_spec.js.coffee +18 -42
  33. data/spec/javascripts/joosy/core/modules/filters_spec.js.coffee +27 -27
  34. data/spec/javascripts/joosy/core/modules/log_spec.js.coffee +3 -3
  35. data/spec/javascripts/joosy/core/modules/module_spec.js.coffee +15 -6
  36. data/spec/javascripts/joosy/core/modules/time_manager_spec.js.coffee +7 -12
  37. data/spec/javascripts/joosy/core/modules/widget_manager_spec.js.coffee +17 -31
  38. data/tmp/javascripts/.gitignore +1 -0
  39. data/tmp/spec/javascripts/helpers/.gitignore +1 -0
  40. data/vendor/assets/javascripts/base64.js +135 -0
  41. data/vendor/assets/javascripts/joosy/core/application.js.coffee +26 -0
  42. data/vendor/assets/javascripts/joosy/core/form.js.coffee +87 -0
  43. data/vendor/assets/javascripts/joosy/core/joosy.js.coffee +62 -0
  44. data/vendor/assets/javascripts/joosy/core/layout.js.coffee +38 -0
  45. data/vendor/assets/javascripts/joosy/core/modules/container.js.coffee +51 -0
  46. data/vendor/assets/javascripts/joosy/core/modules/events.js.coffee +17 -0
  47. data/vendor/assets/javascripts/joosy/core/modules/filters.js.coffee +39 -0
  48. data/vendor/assets/javascripts/joosy/core/modules/log.js.coffee +12 -0
  49. data/vendor/assets/javascripts/joosy/core/modules/module.js.coffee +28 -0
  50. data/vendor/assets/javascripts/joosy/core/modules/time_manager.js.coffee +23 -0
  51. data/vendor/assets/javascripts/joosy/core/modules/widgets_manager.js.coffee +45 -0
  52. data/vendor/assets/javascripts/joosy/core/page.js.coffee +136 -0
  53. data/vendor/assets/javascripts/joosy/core/resource/rest.js.coffee +69 -0
  54. data/vendor/assets/javascripts/joosy/core/resource/rest_collection.js.coffee +42 -0
  55. data/vendor/assets/javascripts/joosy/core/router.js.coffee +75 -0
  56. data/vendor/assets/javascripts/joosy/core/widget.js.coffee +35 -0
  57. data/vendor/assets/javascripts/joosy/preloader/development.js.coffee +27 -0
  58. data/vendor/assets/javascripts/joosy/preloader/production.js.coffee +84 -0
  59. data/{app → vendor}/assets/javascripts/joosy.js.coffee +0 -0
  60. data/vendor/assets/javascripts/jquery.form.js +963 -978
  61. data/vendor/assets/javascripts/sugar.js +1 -1
  62. metadata +48 -77
  63. data/.codoopts +0 -5
  64. data/README.md +0 -95
  65. data/app/assets/javascripts/joosy/core/application.js.coffee +0 -50
  66. data/app/assets/javascripts/joosy/core/form.js.coffee +0 -304
  67. data/app/assets/javascripts/joosy/core/helpers/view.js.coffee +0 -30
  68. data/app/assets/javascripts/joosy/core/joosy.js.coffee +0 -129
  69. data/app/assets/javascripts/joosy/core/layout.js.coffee +0 -162
  70. data/app/assets/javascripts/joosy/core/modules/container.js.coffee +0 -104
  71. data/app/assets/javascripts/joosy/core/modules/events.js.coffee +0 -123
  72. data/app/assets/javascripts/joosy/core/modules/filters.js.coffee +0 -67
  73. data/app/assets/javascripts/joosy/core/modules/log.js.coffee +0 -36
  74. data/app/assets/javascripts/joosy/core/modules/module.js.coffee +0 -105
  75. data/app/assets/javascripts/joosy/core/modules/renderer.js.coffee +0 -195
  76. data/app/assets/javascripts/joosy/core/modules/time_manager.js.coffee +0 -46
  77. data/app/assets/javascripts/joosy/core/modules/widgets_manager.js.coffee +0 -84
  78. data/app/assets/javascripts/joosy/core/page.js.coffee +0 -375
  79. data/app/assets/javascripts/joosy/core/preloader.js.coffee +0 -13
  80. data/app/assets/javascripts/joosy/core/resource/collection.js.coffee +0 -174
  81. data/app/assets/javascripts/joosy/core/resource/generic.js.coffee +0 -254
  82. data/app/assets/javascripts/joosy/core/resource/rest.js.coffee +0 -197
  83. data/app/assets/javascripts/joosy/core/resource/rest_collection.js.coffee +0 -125
  84. data/app/assets/javascripts/joosy/core/router.js.coffee +0 -163
  85. data/app/assets/javascripts/joosy/core/templaters/rails_jst.js.coffee +0 -36
  86. data/app/assets/javascripts/joosy/core/widget.js.coffee +0 -80
  87. data/app/assets/javascripts/joosy/preloaders/caching.js.coffee +0 -169
  88. data/app/assets/javascripts/joosy/preloaders/inline.js.coffee +0 -56
  89. data/lib/joosy.rb +0 -9
  90. data/lib/rails/generators/joosy/resource_generator.rb +0 -29
  91. data/lib/rails/generators/joosy/templates/app/helpers/application.js.coffee +0 -4
  92. data/lib/rails/generators/joosy/templates/app/pages/welcome/index.js.coffee +0 -22
  93. data/lib/rails/generators/joosy/templates/app/resources/template.js.coffee +0 -2
  94. data/lib/rails/generators/joosy/templates/app/templates/layouts/application.jst.hamlc +0 -2
  95. data/lib/rails/generators/joosy/templates/app/templates/pages/welcome/index.jst.hamlc +0 -7
  96. data/spec/javascripts/joosy/core/application_spec.js.coffee +0 -40
  97. data/spec/javascripts/joosy/core/form_spec.js.coffee +0 -184
  98. data/spec/javascripts/joosy/core/joosy_spec.js.coffee +0 -72
  99. data/spec/javascripts/joosy/core/layout_spec.js.coffee +0 -50
  100. data/spec/javascripts/joosy/core/modules/renderer_spec.js.coffee +0 -185
  101. data/spec/javascripts/joosy/core/page_spec.js.coffee +0 -178
  102. data/spec/javascripts/joosy/core/resource/collection_spec.js.coffee +0 -84
  103. data/spec/javascripts/joosy/core/resource/generic_spec.js.coffee +0 -118
  104. data/spec/javascripts/joosy/core/resource/rest_collection_spec.js.coffee +0 -58
  105. data/spec/javascripts/joosy/core/resource/rest_spec.js.coffee +0 -129
  106. data/spec/javascripts/joosy/core/router_spec.js.coffee +0 -123
  107. data/spec/javascripts/joosy/core/templaters/rails_jst_spec.js.coffee +0 -25
  108. data/spec/javascripts/joosy/core/widget_spec.js.coffee +0 -40
  109. data/spec/javascripts/joosy/preloaders/caching_spec.js.coffee +0 -36
  110. data/spec/javascripts/joosy/preloaders/inline_spec.js.coffee +0 -16
  111. data/spec/javascripts/support/assets/coolface.jpg +0 -0
  112. data/spec/javascripts/support/assets/okay.jpg +0 -0
  113. data/spec/javascripts/support/assets/test.js +0 -1
  114. data/spec/javascripts/support/sinon-ie-1.3.1.js +0 -82
  115. data/vendor/assets/javascripts/metamorph.js +0 -409
data/.gitignore CHANGED
@@ -3,5 +3,3 @@
3
3
  log/*.log
4
4
  pkg/
5
5
  tmp/
6
- .DS_Store
7
- doc/
data/Gemfile CHANGED
@@ -1,15 +1,4 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- # Specify your gem's dependencies in joosy.gemspec
4
- gemspec
5
-
6
- gem 'jasmine', :git => 'git://github.com/pivotal/jasmine-gem.git'
7
- gem 'guard-sprockets', :git => 'git://github.com/roundlake/guard-sprockets.git'
8
- gem 'thin'
9
-
10
- group :test do
11
- if RUBY_PLATFORM =~ /linux/
12
- gem 'rb-inotify'
13
- gem 'libnotify'
14
- end
15
- end
3
+ # Specify your gem's dependencies in joosy-rails.gemspec
4
+ gemspec
data/Gemfile.lock CHANGED
@@ -1,124 +1,110 @@
1
- GIT
2
- remote: git://github.com/pivotal/jasmine-gem.git
3
- revision: 953d17dff4b4adba79b2a808b55cf33f4ff93af7
4
- specs:
5
- jasmine (1.2.0.rc2)
6
- jasmine-core (>= 1.2.0.rc1)
7
- rack (>= 1.1)
8
- rspec (>= 1.3.1)
9
- selenium-webdriver (>= 0.1.3)
10
-
11
- GIT
12
- remote: git://github.com/roundlake/guard-sprockets.git
13
- revision: ba7574363f41b2c2c950f095b3b5cfc08762a6cc
14
- specs:
15
- guard-sprockets (0.2.0)
16
- guard (>= 0.2.2)
17
- sprockets (~> 2)
18
-
19
1
  PATH
20
2
  remote: .
21
3
  specs:
22
- joosy (0.1.0.RC2)
4
+ joosy-rails (0.1.0)
23
5
  coffee-rails
24
- haml_coffee_assets
25
6
  jquery-rails
26
- rails (>= 3.1.0)
7
+ rails (>= 3.0.0)
27
8
 
28
9
  GEM
29
10
  remote: http://rubygems.org/
30
11
  specs:
31
- actionmailer (3.2.1)
32
- actionpack (= 3.2.1)
33
- mail (~> 2.4.0)
34
- actionpack (3.2.1)
35
- activemodel (= 3.2.1)
36
- activesupport (= 3.2.1)
12
+ actionmailer (3.1.3)
13
+ actionpack (= 3.1.3)
14
+ mail (~> 2.3.0)
15
+ actionpack (3.1.3)
16
+ activemodel (= 3.1.3)
17
+ activesupport (= 3.1.3)
37
18
  builder (~> 3.0.0)
38
19
  erubis (~> 2.7.0)
39
- journey (~> 1.0.1)
40
- rack (~> 1.4.0)
20
+ i18n (~> 0.6)
21
+ rack (~> 1.3.5)
41
22
  rack-cache (~> 1.1)
23
+ rack-mount (~> 0.8.2)
42
24
  rack-test (~> 0.6.1)
43
- sprockets (~> 2.1.2)
44
- activemodel (3.2.1)
45
- activesupport (= 3.2.1)
25
+ sprockets (~> 2.0.3)
26
+ activemodel (3.1.3)
27
+ activesupport (= 3.1.3)
46
28
  builder (~> 3.0.0)
47
- activerecord (3.2.1)
48
- activemodel (= 3.2.1)
49
- activesupport (= 3.2.1)
50
- arel (~> 3.0.0)
51
- tzinfo (~> 0.3.29)
52
- activeresource (3.2.1)
53
- activemodel (= 3.2.1)
54
- activesupport (= 3.2.1)
55
- activesupport (3.2.1)
56
29
  i18n (~> 0.6)
30
+ activerecord (3.1.3)
31
+ activemodel (= 3.1.3)
32
+ activesupport (= 3.1.3)
33
+ arel (~> 2.2.1)
34
+ tzinfo (~> 0.3.29)
35
+ activeresource (3.1.3)
36
+ activemodel (= 3.1.3)
37
+ activesupport (= 3.1.3)
38
+ activesupport (3.1.3)
57
39
  multi_json (~> 1.0)
58
- arel (3.0.0)
40
+ arel (2.2.1)
59
41
  builder (3.0.0)
60
42
  childprocess (0.3.0)
61
43
  ffi (~> 1.0.6)
62
- coffee-rails (3.2.2)
44
+ coffee-rails (3.1.1)
63
45
  coffee-script (>= 2.2.0)
64
- railties (~> 3.2.0)
46
+ railties (~> 3.1.0)
65
47
  coffee-script (2.2.0)
66
48
  coffee-script-source
67
49
  execjs
68
50
  coffee-script-source (1.2.0)
69
- daemons (1.1.8)
70
51
  diff-lcs (1.1.3)
71
52
  erubis (2.7.0)
72
- eventmachine (0.12.10)
73
- eventmachine (0.12.10-java)
74
- execjs (1.3.0)
53
+ execjs (1.2.13)
75
54
  multi_json (~> 1.0)
76
55
  ffi (1.0.11)
77
56
  ffi (1.0.11-java)
78
- guard (1.0.0)
57
+ guard (0.10.0)
79
58
  ffi (>= 0.5.0)
80
59
  thor (~> 0.14.6)
81
60
  guard-coffeescript (0.5.4)
82
61
  coffee-script (>= 2.2.0)
83
62
  guard (>= 0.8.3)
84
- haml_coffee_assets (0.8.2)
85
- execjs (>= 1.2.9)
86
- sprockets (>= 2.0.3)
87
- tilt (>= 1.3.3)
63
+ guard-shell (0.2.0)
64
+ guard (>= 0.2.0)
65
+ guard-sprockets (0.2.0)
66
+ guard (>= 0.2.2)
67
+ sprockets (~> 2)
88
68
  hike (1.2.1)
89
69
  i18n (0.6.0)
90
- jasmine-core (1.2.0.rc1)
91
- journey (1.0.1)
92
- jquery-rails (2.0.0)
93
- railties (>= 3.2.0.beta, < 5.0)
70
+ jasmine (1.1.2)
71
+ jasmine-core (>= 1.1.0)
72
+ rack (>= 1.1)
73
+ rspec (>= 1.3.1)
74
+ selenium-webdriver (>= 0.1.3)
75
+ jasmine-core (1.1.0)
76
+ jquery-rails (1.0.19)
77
+ railties (~> 3.0)
94
78
  thor (~> 0.14)
95
- json (1.6.5)
96
- json (1.6.5-java)
97
- mail (2.4.1)
79
+ json (1.6.4)
80
+ json (1.6.4-java)
81
+ mail (2.3.0)
98
82
  i18n (>= 0.4.0)
99
83
  mime-types (~> 1.16)
100
84
  treetop (~> 1.4.8)
101
85
  mime-types (1.17.2)
102
86
  multi_json (1.0.4)
103
87
  polyglot (0.3.3)
104
- rack (1.4.1)
88
+ rack (1.3.6)
105
89
  rack-cache (1.1)
106
90
  rack (>= 0.4)
91
+ rack-mount (0.8.3)
92
+ rack (>= 1.0.0)
107
93
  rack-ssl (1.3.2)
108
94
  rack
109
95
  rack-test (0.6.1)
110
96
  rack (>= 1.0)
111
- rails (3.2.1)
112
- actionmailer (= 3.2.1)
113
- actionpack (= 3.2.1)
114
- activerecord (= 3.2.1)
115
- activeresource (= 3.2.1)
116
- activesupport (= 3.2.1)
97
+ rails (3.1.3)
98
+ actionmailer (= 3.1.3)
99
+ actionpack (= 3.1.3)
100
+ activerecord (= 3.1.3)
101
+ activeresource (= 3.1.3)
102
+ activesupport (= 3.1.3)
117
103
  bundler (~> 1.0)
118
- railties (= 3.2.1)
119
- railties (3.2.1)
120
- actionpack (= 3.2.1)
121
- activesupport (= 3.2.1)
104
+ railties (= 3.1.3)
105
+ railties (3.1.3)
106
+ actionpack (= 3.1.3)
107
+ activesupport (= 3.1.3)
122
108
  rack-ssl (~> 1.3.2)
123
109
  rake (>= 0.8.7)
124
110
  rdoc (~> 3.4)
@@ -140,14 +126,10 @@ GEM
140
126
  ffi (~> 1.0.9)
141
127
  multi_json (~> 1.0.4)
142
128
  rubyzip
143
- sprockets (2.1.2)
129
+ sprockets (2.0.3)
144
130
  hike (~> 1.2)
145
131
  rack (~> 1.0)
146
132
  tilt (~> 1.1, != 1.3.0)
147
- thin (1.3.1)
148
- daemons (>= 1.0.9)
149
- eventmachine (>= 0.12.6)
150
- rack (>= 1.0.0)
151
133
  thor (0.14.6)
152
134
  tilt (1.3.3)
153
135
  treetop (1.4.10)
@@ -162,7 +144,7 @@ PLATFORMS
162
144
  DEPENDENCIES
163
145
  guard
164
146
  guard-coffeescript
165
- guard-sprockets!
166
- jasmine!
167
- joosy!
168
- thin
147
+ guard-shell
148
+ guard-sprockets
149
+ jasmine
150
+ joosy-rails!
data/Guardfile CHANGED
@@ -1,30 +1,24 @@
1
- guard 'coffeescript', :output => 'tmp/spec/javascripts' do
2
- watch(%r{^spec/javascripts/(.+)[sS]pec\.js\.coffee$})
1
+ guard 'coffeescript',
2
+ :output => 'tmp/spec/javascripts' do
3
+ watch(%r{^spec/javascripts/(.+)[sS]pec\.js\.coffee$})
3
4
  end
4
5
 
5
- guard 'coffeescript', :output => 'tmp/spec/javascripts/helpers' do
6
- watch(%r{^spec/javascripts/helpers/(.+)\.js\.coffee$})
6
+ guard 'coffeescript',
7
+ :output => 'tmp/spec/javascripts/helpers' do
8
+ watch(%r{^spec/javascripts/helpers/(.+)\.js\.coffee$})
7
9
  end
8
10
 
9
11
  jquery_path = File.join(Gem.loaded_specs['jquery-rails'].full_gem_path, 'vendor/assets/javascripts')
10
-
11
- guard 'sprockets', :destination => 'tmp/javascripts',
12
- :asset_paths => ['app/assets/javascripts', 'vendor/assets/javascripts', jquery_path],
13
- :root_file => 'app/assets/javascripts/joosy.js.coffee' do
14
- watch %r{^app/assets/javascripts/joosy/core.+\.js}
15
- watch 'app/assets/javascripts/joosy.js.coffee'
16
- end
17
-
18
- guard 'sprockets', :destination => 'tmp/javascripts',
19
- :asset_paths => ['app/assets/javascripts', 'vendor/assets/javascripts', jquery_path],
20
- :root_file => 'app/assets/javascripts/joosy/preloaders/caching.js.coffee' do
21
- watch 'app/assets/javascripts/joosy/preloaders/caching.js.coffee'
12
+ guard 'sprockets',
13
+ :destination => 'tmp/javascripts',
14
+ :asset_paths => ['vendor/assets/javascripts', jquery_path] do
15
+ watch('vendor/assets/javascripts/joosy.js.coffee')
22
16
  end
23
17
 
24
- guard 'sprockets', :destination => 'tmp/javascripts',
25
- :asset_paths => ['app/assets/javascripts', 'vendor/assets/javascripts', jquery_path],
26
- :root_file => 'app/assets/javascripts/joosy/preloaders/inline.js.coffee' do
27
- watch 'app/assets/javascripts/joosy/preloaders/inline.js.coffee'
18
+ guard 'shell' do
19
+ watch(%r{^vendor/assets/javascripts/(?!joosy\.js).+\.js}) do
20
+ `touch vendor/assets/javascripts/joosy.js.coffee`
21
+ end
28
22
  end
29
23
 
30
- puts 'HI! Hit <Enter> to generate all stuff.'
24
+ puts 'HI! Hit <Enter> to generate all stuff.'
data/MIT-LICENSE CHANGED
@@ -1,5 +1,5 @@
1
- Copyright (C) 2011, 2012 by Boris Staal <boris@roundlake.ru>,
2
- Peter Zotov <p.zotov@roundlake.ru>.
1
+ Copyright (C) 2011 by Boris Staal <boris@roundlake.ru>,
2
+ Peter Zotov <p.zotov@roundlake.ru>.
3
3
 
4
4
  Permission is hereby granted, free of charge, to any person obtaining
5
5
  a copy of this software and associated documentation files (the
data/README.rdoc ADDED
@@ -0,0 +1,3 @@
1
+ = Joosy on Rails
2
+
3
+ $ rails generate joosy_boilerplate yourapp
@@ -1,26 +1,14 @@
1
- require 'uri'
2
-
3
- module Joosy::SprocketsHelper
4
- def extract_sources_and_sizes_from_include_tag(name)
5
- code = javascript_include_tag name
6
- resources = code.scan(/(?:href|src)=['"]([^'"]+)['"]/).flatten
7
-
8
- resources.map do |resource|
9
- uri = URI.parse resource
10
- path = ::Rails.root.to_s + "/public" + uri.path
11
- size = File.size(path) rescue false
12
- [resource, size]
13
- end.to_json.html_safe
14
- end
15
-
16
- def require_joosy_preloader_for(app_asset, options={})
17
- preloader_asset = "joosy/preloaders/#{options[:preloader] || 'caching'}"
18
- force_preloader = options[:force] || false
19
-
20
- if force_preloader
21
- require_asset preloader_asset
22
- else
23
- require_asset Rails.env == 'development' ? app_asset : preloader_asset
1
+ module Joosy
2
+ module SprocketsHelper
3
+ def extract_sources_and_sizes_from_include_tag(name)
4
+ code = javascript_include_tag name
5
+ resources = code.scan(/(?:href|src)=['"]([^'"]+)['"]/).flatten
6
+
7
+ resources.map do |resource|
8
+ path = ::Rails.root.to_s + "/public" + resource.split('?')[0]
9
+ size = File.size(path) rescue false
10
+ [resource, size]
11
+ end.to_json.html_safe
24
12
  end
25
13
  end
26
14
  end
data/joosy.gemspec CHANGED
@@ -6,19 +6,19 @@ Gem::Specification.new do |s|
6
6
  s.platform = Gem::Platform::RUBY
7
7
  s.summary = "Joosy Framework support for Ruby on Rails"
8
8
  s.email = "boris@roundlake.ru"
9
- s.homepage = "http://github.com/roundlake/joosy"
9
+ s.homepage = "http://github.com/roundlake/joosy-rails"
10
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
13
  s.files = `git ls-files`.split("\n")
14
14
  s.require_paths = ["lib"]
15
15
 
16
- s.add_dependency 'rails', ">= 3.1.0"
16
+ s.add_dependency 'rails', ">= 3.0.0"
17
17
  s.add_dependency 'coffee-rails'
18
18
  s.add_dependency 'jquery-rails'
19
- s.add_dependency 'haml_coffee_assets'
20
19
 
21
20
  s.add_development_dependency 'guard'
21
+ s.add_development_dependency 'guard-shell'
22
22
  s.add_development_dependency 'guard-coffeescript'
23
23
  s.add_development_dependency 'guard-sprockets'
24
24
  s.add_development_dependency 'jasmine'
data/lib/joosy/forms.rb CHANGED
@@ -9,13 +9,23 @@ module Joosy
9
9
  if entity.save
10
10
  joosy_succeed(data, entity, &block)
11
11
  else
12
- joosy_fail(entity.errors, entity.class.name)
12
+ joosy_fail(entity.errors.messages, entity.class.name)
13
13
  end
14
14
  end
15
15
 
16
16
  def joosy_fail(errors, entity=false)
17
17
  errors = Hash[*errors.map {|x| [x, nil]}.flatten] if errors.is_a?(Array)
18
- joosy_respond errors, :unprocessable_entity
18
+
19
+ if !entity
20
+ notifications = errors
21
+ else
22
+ notifications = {}
23
+ errors.each do |k, v|
24
+ notifications["#{entity.underscore}[#{k}]"] = v
25
+ end
26
+ end
27
+
28
+ joosy_respond notifications, :unprocessable_entity
19
29
  end
20
30
 
21
31
  def joosy_succeed(data, entity=nil, &block)
@@ -3,15 +3,7 @@ require 'rails/engine'
3
3
  module Joosy
4
4
  module Rails
5
5
  class Engine < ::Rails::Engine
6
-
7
- initializer 'joosy.extend.sprockets' do |app|
8
- ActiveSupport.on_load(:action_view) do
9
- app.assets.context_class.instance_eval do
10
- include ::Joosy::SprocketsHelper
11
- end
12
- end
13
- end
14
-
6
+ # auto wire
15
7
  end
16
8
  end
17
9
  end
@@ -1,5 +1,5 @@
1
1
  module Joosy
2
2
  module Rails
3
- VERSION = "0.1.0.RC3"
3
+ VERSION = "0.1.0.alpha"
4
4
  end
5
- end
5
+ end
@@ -0,0 +1,5 @@
1
+ require 'joosy/rails/engine'
2
+ require 'joosy/rails/version'
3
+ require 'joosy/forms'
4
+
5
+ ActionController::Base.send :include, Joosy::Forms
@@ -6,7 +6,7 @@ module Joosy
6
6
  source_root File.join(File.dirname(__FILE__), 'templates')
7
7
 
8
8
  def create_files
9
- super
9
+ self.destination_root = "app/assets/javascripts"
10
10
 
11
11
  template "app.js.coffee", "#{file_path}.js.coffee"
12
12
 
@@ -14,26 +14,16 @@ module Joosy
14
14
 
15
15
  template "app/routes.js.coffee", "#{file_path}/routes.js.coffee"
16
16
 
17
- empty_directory "#{file_path}/helpers"
18
- template "app/helpers/application.js.coffee", "#{file_path}/helpers/application.js.coffee"
19
-
20
17
  empty_directory "#{file_path}/layouts"
21
18
  template "app/layouts/application.js.coffee", "#{file_path}/layouts/application.js.coffee"
22
19
 
23
- empty_directory "#{file_path}/pages/welcome"
20
+ empty_directory "#{file_path}/pages"
24
21
  template "app/pages/application.js.coffee", "#{file_path}/pages/application.js.coffee"
25
- template "app/pages/welcome/index.js.coffee", "#{file_path}/pages/welcome/index.js.coffee"
26
-
27
- empty_directory "#{file_path}/templates/layouts"
28
- template "app/templates/layouts/application.jst.hamlc", "#{file_path}/templates/layouts/application.jst.hamlc"
29
-
30
- empty_directory "#{file_path}/templates/pages/welcome"
31
- template "app/templates/pages/welcome/index.jst.hamlc", "#{file_path}/templates/pages/welcome/index.jst.hamlc"
32
22
 
33
23
  empty_directory_with_gitkeep "#{file_path}/widgets"
34
- empty_directory_with_gitkeep "#{file_path}/resources"
35
24
 
36
25
  empty_directory_with_gitkeep "#{file_path}/templates/layouts"
26
+ empty_directory_with_gitkeep "#{file_path}/templates/pages"
37
27
  empty_directory_with_gitkeep "#{file_path}/templates/widgets"
38
28
  end
39
29
  end
@@ -3,8 +3,8 @@ require 'rails/generators/named_base'
3
3
  module Rails
4
4
  module Generators
5
5
  class JoosyBase < ::Rails::Generators::NamedBase
6
- class_option :template_kind, :type => :string, :aliases => "-T", :default => 'hamlc',
7
- :desc => "Generate templates with specified extension (default: .hamlc)"
6
+ class_option :template_kind, :type => :string, :aliases => "-T", :default => 'jade',
7
+ :desc => "Generate templates with specified extension (default: .jade)"
8
8
 
9
9
  class_option :skip_git, :type => :boolean, :aliases => "-G", :default => false,
10
10
  :desc => "Skip Git keeps"
@@ -18,14 +18,7 @@ module Joosy
18
18
  protected
19
19
 
20
20
  def app_path
21
- unless class_path.size == 1
22
- puts <<HELP
23
- Usage: rails generate joosy:layout joosy_app_name/layout_name
24
- Tip: do not add Layout suffix to layout_name
25
- HELP
26
- exit 1
27
- end
28
- class_path[0]
21
+ File.join class_path
29
22
  end
30
23
  end
31
24
  end
@@ -8,36 +8,21 @@ module Joosy
8
8
  def create_files
9
9
  super
10
10
 
11
- empty_directory "#{app_path}/pages/#{namespace_path}"
12
- template "app/pages/template.js.coffee", "#{app_path}/pages/#{namespace_path}/#{file_name}.js.coffee"
11
+ empty_directory "#{app_path}/pages"
12
+ template "app/pages/template.js.coffee", "#{app_path}/pages/#{layout_name}/#{file_name}.js.coffee"
13
13
 
14
- empty_directory "#{app_path}/templates/pages/#{namespace_path}"
15
- create_file "#{app_path}/templates/pages/#{namespace_path}/#{file_name}.jst.#{options[:template_kind]}"
14
+ empty_directory "#{app_path}/templates/pages/#{layout_name}"
15
+ create_file "#{app_path}/templates/pages/#{layout_name}/#{file_name}.jst.#{options[:template_kind]}"
16
16
  end
17
17
 
18
18
  protected
19
19
 
20
20
  def app_path
21
- if class_path.size < 2
22
- puts <<HELP
23
- Usage: rails generate joosy:page joosy_app_name/page_namespace/page_name
24
- Tip: do not add Page suffix to page_name
25
- HELP
26
- exit 1
27
- end
28
- class_path[0]
29
- end
30
-
31
- def namespace_path
32
- File.join class_path[1..-1]
33
- end
34
-
35
- def namespace_name
36
- class_path[1..-1].map(&:camelize).join '.'
21
+ File.join class_path[0..-2]
37
22
  end
38
23
 
39
24
  def layout_name
40
- class_path[1]
25
+ class_path.last
41
26
  end
42
27
  end
43
28
  end
@@ -4,28 +4,21 @@ module Joosy
4
4
  module Generators
5
5
  class PreloaderGenerator < ::Rails::Generators::NamedBase
6
6
  class_option :template_engine, :type => :string,
7
- :desc => "Generate templates for specified engine."
7
+ :desc => "Generate templates for specified engine."
8
8
 
9
9
  source_root File.join(File.dirname(__FILE__), 'templates')
10
10
 
11
11
  def create_preloader_files
12
- unless class_path.empty?
13
- puts <<HELP
14
- Usage: rails generate joosy:preloader joosy_app_name
15
- HELP
16
- exit 1
17
- end
12
+ template "app_preloader.js.coffee.erb", "app/assets/javascripts/#{file_path}_preloader.js.coffee.erb"
18
13
 
19
- template "app_preloader.js.coffee.erb", "app/assets/javascripts/#{file_name}_preloader.js.coffee.erb"
14
+ empty_directory "app/controllers/#{File.join class_path}"
15
+ template "app_controller.rb", "app/controllers/#{file_path}_controller.rb"
20
16
 
21
- empty_directory "app/controllers"
22
- template "app_controller.rb", "app/controllers/#{file_name}_controller.rb"
23
-
24
- empty_directory "app/views/layouts"
17
+ empty_directory "app/views/layouts/#{File.join class_path}"
25
18
  template "preload.html.#{options[:template_engine]}",
26
- "app/views/layouts/#{file_name}.html.#{options[:template_engine]}"
19
+ "app/views/layouts/#{file_path}.html.#{options[:template_engine]}"
27
20
 
28
- route "match '#{file_name}' => '#{file_name}#index'"
21
+ route "match '#{file_path}' => '#{file_path}#index'"
29
22
  end
30
23
  end
31
24
  end
@@ -1,2 +1 @@
1
1
  class @ApplicationLayout extends Joosy.Layout
2
- @view 'application'
@@ -1,2 +1,2 @@
1
1
  class @<%= file_name.camelize %>Layout extends ApplicationLayout
2
- @view '<%= file_name %>'
2
+ view: JST['<%= app_path %>/templates/layouts/<%= file_name %>']
@@ -1 +1 @@
1
- class @ApplicationPage extends Joosy.Page
1
+ class @ApplicationPage extends Joosy.Page
@@ -1,5 +1,5 @@
1
- Joosy.namespace '<%= namespace_name %>', ->
1
+ Joosy.namespace '<%= layout_name.camelize %>', ->
2
2
 
3
3
  class @<%= file_name.camelize %>Page extends ApplicationPage
4
- @layout ApplicationLayout
5
- @view '<%= file_name %>'
4
+ layout: <%= layout_name.camelize %>Layout
5
+ view: JST['<%= app_path %>/templates/pages/<%= layout_name %>/<%= file_name %>']
@@ -1,8 +1,2 @@
1
1
  Joosy.Router.map
2
- 404 : (path) -> alert "Page '#{path}' was not found :("
3
- '/' : Welcome.IndexPage
4
- # '/resources' :
5
- # '/' : Resource.IndexPage
6
- # '/:id' : Resource.ShowPage
7
- # '/:id/edit' : Resource.EditPage
8
- # '/new' : Resource.EditPage
2
+ 404 : (path) -> alert "Page '#{path}' was not found :("
@@ -1,2 +1,2 @@
1
- class @<%= file_name.camelize %>Widget extends Joosy.Widget
2
- @view '<%= file_name %>'
1
+ class @<%= file_name.camelize %>Widget extends Joosy.Layout
2
+ view: JST['<%= app_path %>/templates/widgets/<%= file_name %>']
@@ -1,9 +1,6 @@
1
- #= require hamlcoffee
2
1
  #= require joosy
3
2
  #
4
- #= require_tree ./<%= file_name %>/helpers
5
3
  #= require_tree ./<%= file_name %>/templates
6
- #= require_tree ./<%= file_name %>/resources
7
4
  #= require_tree ./<%= file_name %>/widgets
8
5
  #= require_tree ./<%= file_name %>/layouts
9
6
  #= require_tree ./<%= file_name %>/pages
@@ -1,13 +1,16 @@
1
- <%= "<%= require_joosy_preloader_for '" %><%= file_name %><%= "', preloader: 'caching', force: false %" + ">" %>
1
+ <%= '<% require_asset "joosy/preloader/#{Rails.env}" %'+'>' %>
2
2
 
3
3
  bootstrap = ->
4
- $('#preloader').remove()
5
- Joosy.Application.initialize '<%= file_name %>','#application',
6
- environment: window.joosy.environment
7
- debug: false
4
+ $('#preloader').slideUp ->
5
+ location.hash = '!/' if !location.hash
6
+
7
+ Joosy.debug = window.preload.development
8
+ Joosy.Application.initialize('#application')
8
9
 
9
10
  window.onload = ->
10
- Preloader.load window.joosy.libraries,
11
- complete: bootstrap
12
- start: -> document.getElementById('preloader').style.display = 'block'
13
- progress: (percent) -> document.getElementById('percents').innerHTML = percent + '%'
11
+ Preloader.force = false
12
+ Preloader.complete = bootstrap
13
+ Preloader.start = -> document.getElementById('preloader').style.display = 'block'
14
+ Preloader.progress = (percent) -> document.getElementById('percents').innerHTML = percent + '%'
15
+
16
+ Preloader.load window.preload.libraries