joosy 1.0.0.RC2 → 1.0.0.RC3
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.
- data/Gemfile.lock +2 -2
- data/app/assets/javascripts/joosy/core/form.js.coffee +10 -6
- data/app/assets/javascripts/joosy/core/page.js.coffee +1 -1
- data/app/assets/javascripts/joosy/core/resource/rest.js.coffee +2 -2
- data/app/assets/javascripts/joosy/core/router.js.coffee +4 -2
- data/lib/joosy/rails/version.rb +1 -1
- data/lib/rails/generators/joosy/templates/preload.html.haml +2 -2
- data/spec/javascripts/joosy/core/form_spec.js.coffee +16 -4
- metadata +20 -20
data/Gemfile.lock
CHANGED
@@ -19,7 +19,7 @@ GIT
|
|
19
19
|
PATH
|
20
20
|
remote: .
|
21
21
|
specs:
|
22
|
-
joosy (1.0.0.
|
22
|
+
joosy (1.0.0.RC3)
|
23
23
|
coffee-rails
|
24
24
|
haml_coffee_assets
|
25
25
|
i18n-js
|
@@ -82,7 +82,7 @@ GEM
|
|
82
82
|
guard-coffeescript (0.5.7)
|
83
83
|
coffee-script (>= 2.2.0)
|
84
84
|
guard (>= 0.8.3)
|
85
|
-
haml_coffee_assets (0.9.
|
85
|
+
haml_coffee_assets (0.9.3)
|
86
86
|
execjs (>= 1.2.9)
|
87
87
|
sprockets (>= 2.0.3)
|
88
88
|
tilt (>= 1.3.3)
|
@@ -164,8 +164,10 @@ class Joosy.Form extends Joosy.Module
|
|
164
164
|
data = resource.data
|
165
165
|
|
166
166
|
filler = (data, scope) =>
|
167
|
-
|
168
|
-
|
167
|
+
return if data.__joosy_form_filler_lock
|
168
|
+
data.__joosy_form_filler_lock = true
|
169
|
+
Object.each data, (property, val) =>
|
170
|
+
key = @concatFieldName scope, property
|
169
171
|
input = @fields.filter("[name='#{key}']:not(:file),[name='#{key.underscore()}']:not(:file),[name='#{key.camelize(false)}']:not(:file)")
|
170
172
|
if input.length > 0
|
171
173
|
unless input.is ':checkbox'
|
@@ -177,10 +179,12 @@ class Joosy.Form extends Joosy.Module
|
|
177
179
|
input.removeAttr 'checked'
|
178
180
|
if Object.isObject val
|
179
181
|
filler val, key
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
182
|
+
else if val instanceof Joosy.Resource.REST
|
183
|
+
filler val.data, @concatFieldName(scope, "[#{property}_attributes][0]")
|
184
|
+
else if val instanceof Joosy.Resource.RESTCollection
|
185
|
+
for entity, i in val.data
|
186
|
+
filler entity.data, @concatFieldName(scope, "[#{property}_attributes][#{i}]")
|
187
|
+
delete data.__joosy_form_filler_lock
|
184
188
|
|
185
189
|
filler data, resource.__entityName
|
186
190
|
|
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
#
|
12
12
|
# Base class for all of your Joosy Pages.
|
13
|
-
# @see http://guides.joosy.ws/guides/layouts-pages-and-routing.html
|
13
|
+
# @see http://guides.joosy.ws/guides/blog/layouts-pages-and-routing.html
|
14
14
|
#
|
15
15
|
# @example Sample application page
|
16
16
|
# class @RumbaPage extends Joosy.Layout
|
@@ -69,8 +69,8 @@ class Joosy.Resource.REST extends Joosy.Resource.Generic
|
|
69
69
|
#
|
70
70
|
# @see Joosy.Resource.REST.collectionPath
|
71
71
|
#
|
72
|
-
collectionPath: ->
|
73
|
-
@constructor.collectionPath
|
72
|
+
collectionPath: (options={}) ->
|
73
|
+
@constructor.collectionPath options
|
74
74
|
|
75
75
|
#
|
76
76
|
# Sends the GET query using collectionPath.
|
@@ -85,10 +85,12 @@ Joosy.Router =
|
|
85
85
|
# during system startup
|
86
86
|
#
|
87
87
|
__setupRoutes: ->
|
88
|
+
$(window).hashchange =>
|
89
|
+
unless @__ignoreRequest && location.hash.match(@__ignoreRequest)
|
90
|
+
@__respondRoute location.hash
|
91
|
+
|
88
92
|
@__prepareRoutes @rawRoutes
|
89
93
|
@__respondRoute location.hash
|
90
|
-
$(window).hashchange =>
|
91
|
-
@__respondRoute location.hash unless @__ignoreRequest && location.hash.match(@__ignoreRequest)
|
92
94
|
|
93
95
|
#
|
94
96
|
# Compiles routes to map object
|
data/lib/joosy/rails/version.rb
CHANGED
@@ -6,14 +6,16 @@ describe "Joosy.Form", ->
|
|
6
6
|
@nudeForm = "<form id='nude'><input name='test[foo]'/><input name='test[bar]'/><input name='test[bool]' type='checkbox' value='1'/></form>"
|
7
7
|
@putForm = "<form id='put' method='put'><input name='test[camel_baz]'/></form>"
|
8
8
|
@moreForm = "<form id='more' method='put'><input name='test[ololo]'/></form>"
|
9
|
-
@nestedForm = "<form id='nested'><input name='test[zee][capped][test]'/></form>"
|
10
|
-
@exactForm = "<form id='
|
9
|
+
@nestedForm = "<form id='nested'><input name='test[zee][capped][test]'/><input name='test[items_attributes][0][attr]'/><input name='test[items_attributes][1][attr]'/><input name='test[single_attributes][0][attr]'/></form>"
|
10
|
+
@exactForm = "<form id='exact'><input name='test[EXact][MATCH]'/></form>"
|
11
11
|
|
12
|
-
@ground.find('#sidebar').after(@nudeForm).after(@putForm).after(@moreForm)
|
12
|
+
@ground.find('#sidebar').after(@nudeForm).after(@putForm).after(@moreForm).after(@nestedForm).after(@exactForm)
|
13
13
|
|
14
14
|
@nudeForm = $('#nude')
|
15
15
|
@putForm = $('#put')
|
16
16
|
@moreForm = $('#more')
|
17
|
+
@nestedForm = $('#nested')
|
18
|
+
@exactForm = $('#exact')
|
17
19
|
|
18
20
|
class Test extends Joosy.Resource.REST
|
19
21
|
@entity 'test'
|
@@ -30,6 +32,8 @@ describe "Joosy.Form", ->
|
|
30
32
|
test: 'test'
|
31
33
|
EXact:
|
32
34
|
MATCH: 'works'
|
35
|
+
items: (new Joosy.Resource.RESTCollection(Test)).load([{attr: 'one'}, {attr: 'two'}])
|
36
|
+
single: Test.build(attr: 'sin')
|
33
37
|
|
34
38
|
afterEach ->
|
35
39
|
@server.restore()
|
@@ -130,9 +134,17 @@ describe "Joosy.Form", ->
|
|
130
134
|
expect(@nudeForm.concatFieldName '[resource][key]', '[key1][key2]').toEqual 'resource[key][key1][key2]'
|
131
135
|
expect(@nudeForm.concatFieldName '[][]', '[][]').toEqual '[][][]' # oops
|
132
136
|
|
133
|
-
it "should fill nested attributes", ->
|
137
|
+
it "should fill nested attributes and resources", ->
|
134
138
|
@nestedForm.fill @resource
|
135
139
|
expect(@nestedForm.fields[0].value).toEqual 'test'
|
140
|
+
expect(@nestedForm.fields[1].value).toEqual 'one'
|
141
|
+
expect(@nestedForm.fields[2].value).toEqual 'two'
|
142
|
+
expect(@nestedForm.fields[3].value).toEqual 'sin'
|
143
|
+
|
144
|
+
it "should break cross-references", ->
|
145
|
+
@resource('single')('trololo', @resource)
|
146
|
+
@nestedForm.fill @resource
|
147
|
+
# expect(you).toBeAlive(), lol
|
136
148
|
|
137
149
|
describe "Callbacks", ->
|
138
150
|
|
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.0.0.
|
4
|
+
version: 1.0.0.RC3
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -12,11 +12,11 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2012-
|
15
|
+
date: 2012-06-09 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: rails
|
19
|
-
requirement: &
|
19
|
+
requirement: &70260746932080 !ruby/object:Gem::Requirement
|
20
20
|
none: false
|
21
21
|
requirements:
|
22
22
|
- - ! '>='
|
@@ -24,10 +24,10 @@ dependencies:
|
|
24
24
|
version: 3.1.0
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
|
-
version_requirements: *
|
27
|
+
version_requirements: *70260746932080
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: coffee-rails
|
30
|
-
requirement: &
|
30
|
+
requirement: &70260746931660 !ruby/object:Gem::Requirement
|
31
31
|
none: false
|
32
32
|
requirements:
|
33
33
|
- - ! '>='
|
@@ -35,10 +35,10 @@ dependencies:
|
|
35
35
|
version: '0'
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
|
-
version_requirements: *
|
38
|
+
version_requirements: *70260746931660
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
40
|
name: jquery-rails
|
41
|
-
requirement: &
|
41
|
+
requirement: &70260746931200 !ruby/object:Gem::Requirement
|
42
42
|
none: false
|
43
43
|
requirements:
|
44
44
|
- - ! '>='
|
@@ -46,10 +46,10 @@ dependencies:
|
|
46
46
|
version: '0'
|
47
47
|
type: :runtime
|
48
48
|
prerelease: false
|
49
|
-
version_requirements: *
|
49
|
+
version_requirements: *70260746931200
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: haml_coffee_assets
|
52
|
-
requirement: &
|
52
|
+
requirement: &70260746930780 !ruby/object:Gem::Requirement
|
53
53
|
none: false
|
54
54
|
requirements:
|
55
55
|
- - ! '>='
|
@@ -57,10 +57,10 @@ dependencies:
|
|
57
57
|
version: '0'
|
58
58
|
type: :runtime
|
59
59
|
prerelease: false
|
60
|
-
version_requirements: *
|
60
|
+
version_requirements: *70260746930780
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: i18n-js
|
63
|
-
requirement: &
|
63
|
+
requirement: &70260746930360 !ruby/object:Gem::Requirement
|
64
64
|
none: false
|
65
65
|
requirements:
|
66
66
|
- - ! '>='
|
@@ -68,10 +68,10 @@ dependencies:
|
|
68
68
|
version: '0'
|
69
69
|
type: :runtime
|
70
70
|
prerelease: false
|
71
|
-
version_requirements: *
|
71
|
+
version_requirements: *70260746930360
|
72
72
|
- !ruby/object:Gem::Dependency
|
73
73
|
name: guard
|
74
|
-
requirement: &
|
74
|
+
requirement: &70260746929940 !ruby/object:Gem::Requirement
|
75
75
|
none: false
|
76
76
|
requirements:
|
77
77
|
- - ! '>='
|
@@ -79,10 +79,10 @@ dependencies:
|
|
79
79
|
version: '0'
|
80
80
|
type: :development
|
81
81
|
prerelease: false
|
82
|
-
version_requirements: *
|
82
|
+
version_requirements: *70260746929940
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: guard-coffeescript
|
85
|
-
requirement: &
|
85
|
+
requirement: &70260746929520 !ruby/object:Gem::Requirement
|
86
86
|
none: false
|
87
87
|
requirements:
|
88
88
|
- - ! '>='
|
@@ -90,10 +90,10 @@ dependencies:
|
|
90
90
|
version: '0'
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
|
-
version_requirements: *
|
93
|
+
version_requirements: *70260746929520
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
95
|
name: guard-sprockets
|
96
|
-
requirement: &
|
96
|
+
requirement: &70260746929100 !ruby/object:Gem::Requirement
|
97
97
|
none: false
|
98
98
|
requirements:
|
99
99
|
- - ! '>='
|
@@ -101,10 +101,10 @@ dependencies:
|
|
101
101
|
version: '0'
|
102
102
|
type: :development
|
103
103
|
prerelease: false
|
104
|
-
version_requirements: *
|
104
|
+
version_requirements: *70260746929100
|
105
105
|
- !ruby/object:Gem::Dependency
|
106
106
|
name: jasmine
|
107
|
-
requirement: &
|
107
|
+
requirement: &70260746928680 !ruby/object:Gem::Requirement
|
108
108
|
none: false
|
109
109
|
requirements:
|
110
110
|
- - ! '>='
|
@@ -112,7 +112,7 @@ dependencies:
|
|
112
112
|
version: '0'
|
113
113
|
type: :development
|
114
114
|
prerelease: false
|
115
|
-
version_requirements: *
|
115
|
+
version_requirements: *70260746928680
|
116
116
|
description: A gem wrapper to include Joosy via the asset pipeline.
|
117
117
|
email: boris@roundlake.ru
|
118
118
|
executables: []
|