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 CHANGED
@@ -19,7 +19,7 @@ GIT
19
19
  PATH
20
20
  remote: .
21
21
  specs:
22
- joosy (1.0.0.RC1)
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.1)
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
- Object.each data, (key, val) =>
168
- key = @concatFieldName scope, key
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
- # TODO: decide how to make these cases compatible with Rails
181
- # else if val instanceof Joosy.Resource.REST
182
- # #filler val.data, key
183
- # else if val instanceof Joosy.Resource.RESTCollection
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
@@ -1,5 +1,5 @@
1
1
  module Joosy
2
2
  module Rails
3
- VERSION = "1.0.0.RC2"
3
+ VERSION = "1.0.0.RC3"
4
4
  end
5
5
  end
@@ -3,8 +3,8 @@
3
3
  %head
4
4
  %title> <%= file_path %>
5
5
 
6
- javascript:
7
- window.preload = {
6
+ :javascript
7
+ window.joosy = {
8
8
  libraries: #{extract_sources_and_sizes_from_include_tag('<%= file_path %>')}
9
9
  };
10
10
 
@@ -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='nested'><input name='test[EXact][MATCH]'/></form>"
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.RC2
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-05-30 00:00:00.000000000 Z
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: &70270595054760 !ruby/object:Gem::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: *70270595054760
27
+ version_requirements: *70260746932080
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: coffee-rails
30
- requirement: &70270595054340 !ruby/object:Gem::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: *70270595054340
38
+ version_requirements: *70260746931660
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: jquery-rails
41
- requirement: &70270595053880 !ruby/object:Gem::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: *70270595053880
49
+ version_requirements: *70260746931200
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: haml_coffee_assets
52
- requirement: &70270595053460 !ruby/object:Gem::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: *70270595053460
60
+ version_requirements: *70260746930780
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: i18n-js
63
- requirement: &70270595053040 !ruby/object:Gem::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: *70270595053040
71
+ version_requirements: *70260746930360
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: guard
74
- requirement: &70270595052620 !ruby/object:Gem::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: *70270595052620
82
+ version_requirements: *70260746929940
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: guard-coffeescript
85
- requirement: &70270595052200 !ruby/object:Gem::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: *70270595052200
93
+ version_requirements: *70260746929520
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: guard-sprockets
96
- requirement: &70270595051780 !ruby/object:Gem::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: *70270595051780
104
+ version_requirements: *70260746929100
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: jasmine
107
- requirement: &70270595051360 !ruby/object:Gem::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: *70270595051360
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: []