joosy 0.1.0.RC3 → 0.1.0.alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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