joosy 1.0.0.RC5 → 1.0.0.RC6

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 CHANGED
@@ -10,8 +10,6 @@ group :development do
10
10
  end
11
11
 
12
12
  group :test do
13
- if RUBY_PLATFORM =~ /linux/
14
- gem 'rb-inotify'
15
- gem 'libnotify'
16
- end
13
+ gem 'rb-inotify', :require => false
14
+ gem 'libnotify', :require => false
17
15
  end
@@ -1,9 +1,9 @@
1
1
  GIT
2
2
  remote: git://github.com/pivotal/jasmine-gem.git
3
- revision: 54b37cf9a51df49a77d15640e3e0caa46a508c1d
3
+ revision: 478c6027a19f391c4fc3ca0faef001915ee7906f
4
4
  specs:
5
- jasmine (1.2.1)
6
- jasmine-core (>= 1.2.0)
5
+ jasmine (1.3.2)
6
+ jasmine-core (~> 1.3.1)
7
7
  rack (~> 1.0)
8
8
  rspec (>= 1.3.1)
9
9
  selenium-webdriver (>= 0.1.3)
@@ -11,7 +11,7 @@ GIT
11
11
  PATH
12
12
  remote: .
13
13
  specs:
14
- joosy (1.0.0.RC4)
14
+ joosy (1.0.0.RC5)
15
15
  coffee-rails
16
16
  haml_coffee_assets
17
17
  i18n-js
@@ -48,6 +48,7 @@ GEM
48
48
  activesupport (3.2.9)
49
49
  i18n (~> 0.6)
50
50
  multi_json (~> 1.0)
51
+ addressable (2.3.2)
51
52
  arel (3.0.2)
52
53
  builder (3.0.4)
53
54
  childprocess (0.3.6)
@@ -67,8 +68,8 @@ GEM
67
68
  eventmachine (1.0.0-java)
68
69
  execjs (1.4.0)
69
70
  multi_json (~> 1.0)
70
- ffi (1.1.5)
71
- ffi (1.1.5-java)
71
+ ffi (1.2.0)
72
+ ffi (1.2.0-java)
72
73
  guard (1.5.4)
73
74
  listen (>= 0.4.2)
74
75
  lumberjack (>= 1.0.2)
@@ -80,7 +81,7 @@ GEM
80
81
  guard-sprockets (0.4.1)
81
82
  guard (>= 1.1.0)
82
83
  sprockets (~> 2.0)
83
- haml_coffee_assets (1.7.2)
84
+ haml_coffee_assets (1.8.2)
84
85
  coffee-script (>= 1.0.0)
85
86
  sprockets (>= 2.0.3)
86
87
  tilt (>= 1.3.3)
@@ -88,16 +89,19 @@ GEM
88
89
  i18n (0.6.1)
89
90
  i18n-js (2.1.2)
90
91
  i18n
91
- jasmine-core (1.2.0)
92
+ jasmine-core (1.3.1)
92
93
  journey (1.0.4)
93
- jquery-rails (2.1.3)
94
- railties (>= 3.1.0, < 5.0)
95
- thor (~> 0.14)
94
+ jquery-rails (2.1.4)
95
+ railties (>= 3.0, < 5.0)
96
+ thor (>= 0.14, < 2.0)
96
97
  json (1.7.5)
97
98
  json (1.7.5-java)
98
- libwebsocket (0.1.6)
99
+ libnotify (0.8.0)
100
+ ffi (>= 1.0.11)
101
+ libwebsocket (0.1.7.1)
102
+ addressable
99
103
  websocket
100
- listen (0.5.3)
104
+ listen (0.6.0)
101
105
  lumberjack (1.0.2)
102
106
  mail (2.4.4)
103
107
  i18n (>= 0.4.0)
@@ -105,7 +109,7 @@ GEM
105
109
  treetop (~> 1.4.8)
106
110
  method_source (0.8.1)
107
111
  mime-types (1.19)
108
- multi_json (1.3.7)
112
+ multi_json (1.5.0)
109
113
  polyglot (0.3.3)
110
114
  pry (0.9.10)
111
115
  coderay (~> 1.0.5)
@@ -138,26 +142,28 @@ GEM
138
142
  rake (>= 0.8.7)
139
143
  rdoc (~> 3.4)
140
144
  thor (>= 0.14.6, < 2.0)
141
- rake (10.0.1)
145
+ rake (10.0.3)
146
+ rb-inotify (0.8.8)
147
+ ffi (>= 0.5.0)
142
148
  rdoc (3.12)
143
149
  json (~> 1.4)
144
150
  rspec (2.12.0)
145
151
  rspec-core (~> 2.12.0)
146
152
  rspec-expectations (~> 2.12.0)
147
153
  rspec-mocks (~> 2.12.0)
148
- rspec-core (2.12.0)
149
- rspec-expectations (2.12.0)
154
+ rspec-core (2.12.2)
155
+ rspec-expectations (2.12.1)
150
156
  diff-lcs (~> 1.1.3)
151
157
  rspec-mocks (2.12.0)
152
158
  rubyzip (0.9.9)
153
- selenium-webdriver (2.26.0)
159
+ selenium-webdriver (2.27.2)
154
160
  childprocess (>= 0.2.5)
155
161
  libwebsocket (~> 0.1.3)
156
162
  multi_json (~> 1.0)
157
163
  rubyzip
158
164
  slop (3.3.3)
159
165
  spoon (0.0.1)
160
- sprockets (2.2.1)
166
+ sprockets (2.2.2)
161
167
  hike (~> 1.2)
162
168
  multi_json (~> 1.0)
163
169
  rack (~> 1.0)
@@ -172,7 +178,7 @@ GEM
172
178
  polyglot
173
179
  polyglot (>= 0.3.1)
174
180
  tzinfo (0.3.35)
175
- websocket (1.0.3)
181
+ websocket (1.0.6)
176
182
 
177
183
  PLATFORMS
178
184
  java
@@ -184,4 +190,6 @@ DEPENDENCIES
184
190
  guard-sprockets
185
191
  jasmine!
186
192
  joosy!
193
+ libnotify
194
+ rb-inotify
187
195
  thin
data/Guardfile CHANGED
@@ -1,3 +1,11 @@
1
+ begin
2
+ if RUBY_PLATFORM.include?('linux')
3
+ require 'rb-notify'
4
+ require 'libnotify'
5
+ end
6
+ rescue LoadError
7
+ end
8
+
1
9
  require 'coffee_script'
2
10
 
3
11
  guard 'coffeescript', :output => 'tmp/spec/javascripts', :all_on_start => true do
@@ -13,6 +13,7 @@ Joosy.Application =
13
13
  loading: true
14
14
  identity: true
15
15
  debug: false
16
+ debounceForms: false
16
17
 
17
18
  #
18
19
  # Starts Joosy application by binding to element and bootstraping routes
@@ -98,6 +98,7 @@ class Joosy.Form extends Joosy.Module
98
98
  # @option options [String] resourceName The string to use as a resource name prefix for fields to match invalidation
99
99
  # @option options [String] action Action URL for the form
100
100
  # @option options [String] method HTTP method, for example PUT, that will passed in _method param
101
+ # @option options [Boolean] debounce Drop submit events while there is a pending submit request
101
102
  #
102
103
  constructor: (form, options={}) ->
103
104
  if Object.isFunction options
@@ -120,10 +121,18 @@ class Joosy.Form extends Joosy.Module
120
121
  @container.ajaxForm
121
122
  dataType: 'json'
122
123
  beforeSend: =>
124
+ return false if @__debounce arguments...
123
125
  @__before arguments...
126
+ @__pending_request = true
127
+ @debugAs this, 'beforeSend: pending_request = true'
128
+ true
124
129
  success: =>
130
+ @__pending_request = false
131
+ @debugAs this, 'success: pending_request = false'
125
132
  @__success arguments...
126
133
  error: =>
134
+ @__pending_request = false
135
+ @debugAs this, 'error: pending_request = false'
127
136
  @__error arguments...
128
137
  xhr: =>
129
138
  xhr = $.ajaxSettings.xhr()
@@ -133,16 +142,16 @@ class Joosy.Form extends Joosy.Module
133
142
  @progress (event.position / event.total * 100).round 2
134
143
  xhr
135
144
 
136
- if options.resource?
137
- @fill(options.resource, options)
145
+ if @resource?
146
+ @fill(@resource, options)
138
147
  delete @resource
139
148
 
140
- if options.action?
141
- @container.attr 'action', options.action
149
+ if @action?
150
+ @container.attr 'action', @action
142
151
  @container.attr 'method', 'POST'
143
152
 
144
- if options.method?
145
- @__markMethod options.method
153
+ if @method?
154
+ @__markMethod @method
146
155
 
147
156
  #
148
157
  # Resets form submit behavior to default
@@ -198,6 +207,7 @@ class Joosy.Form extends Joosy.Module
198
207
 
199
208
  filler data, resource.__entityName || options.resourceName
200
209
 
210
+ $('input[name=_method]', @container).remove()
201
211
  @__markMethod(options?.method || 'PUT') if resource.id()
202
212
 
203
213
  url = options?.action || (if resource.id()? then resource.memberPath() else resource.collectionPath())
@@ -267,6 +277,18 @@ class Joosy.Form extends Joosy.Module
267
277
 
268
278
  return false
269
279
 
280
+ #
281
+ # Aborts form submit if there is already another one pending XHR
282
+ #
283
+ __debounce: (xhr) ->
284
+ @debugAs this, "debounce: pending_request == #{@__pending_request}"
285
+ if @__pending_request && @debounce != false
286
+ if @debounce || Joosy.Application.debounceForms
287
+ xhr.abort()
288
+ @debugAs this, "debounce: xhr aborted"
289
+ return true
290
+ false
291
+
270
292
  #
271
293
  # Finds field by field name.
272
294
  # This is not inlined since we want to override
@@ -8,26 +8,38 @@ Joosy.Modules.Events =
8
8
  #
9
9
  # Waits for the list of given events to happen at least once. Then runs callback.
10
10
  #
11
- # @param [String] events List of events to wait for separated by space
11
+ # @param [String|Array] events List of events to wait for separated by space
12
12
  # @param [Function] callback Action to run when all events were triggered at least once
13
+ # @param [Hash] options Options
13
14
  #
14
- wait: (events, callback) ->
15
+ # @option options [Boolean] unique Call has no effect if true and the given pair
16
+ # of events and callback is already set up
17
+ #
18
+ wait: (events, callback, options = {}) ->
15
19
  events = @__splitEvents events
16
20
  @__validateEvents events
17
21
 
22
+ return if options.unique && @__isBound(events, callback, true)
23
+
18
24
  @__oneShotEvents ||= []
19
25
  @__oneShotEvents.push [events, callback]
20
26
 
21
27
  #
22
28
  # Binds action to run each time any of given even was triggered
23
29
  #
24
- # @param [String] events List of events separated by space
30
+ # @param [String|Array] events List of events separated by space
25
31
  # @param [Function] callback Action to run on trigger
32
+ # @param [Hash] options Options
26
33
  #
27
- bind: (events, callback) ->
34
+ # @option options [Boolean] unique Call has no effect if true and the given pair
35
+ # of events and callback is already set up
36
+ #
37
+ bind: (events, callback, options = {}) ->
28
38
  events = @__splitEvents events
29
39
  @__validateEvents events
30
40
 
41
+ return if options.unique && @__isBound(events, callback)
42
+
31
43
  @__boundEvents ||= []
32
44
  @__boundEvents.push [events, callback]
33
45
 
@@ -101,6 +113,20 @@ Joosy.Modules.Events =
101
113
  unless Object.isArray(events) && events.length > 0
102
114
  throw new Error "#{Joosy.Module.__className @}> bind invalid events: #{events}"
103
115
 
116
+ __isBound: (events, callback, oneShot = false) ->
117
+ haystack = if oneShot
118
+ @__oneShotEvents
119
+ else
120
+ @__boundEvents
121
+
122
+ return false unless haystack
123
+
124
+ result = haystack.find (item) ->
125
+ item[0].length == events.length &&
126
+ item[0].subtract(events).isEmpty() &&
127
+ item[1] == callback
128
+
129
+ !!result
104
130
 
105
131
  #
106
132
  # Internal representation of {Joosy.Modules.Events.synchronize} context
@@ -96,10 +96,6 @@ class Joosy.Page extends Joosy.Module
96
96
  @paint: (callback) ->
97
97
  @::__paint = callback
98
98
 
99
- #
100
- # @todo Does anybody have idea why we could need this method?
101
- # Looks like something should be removed from here and bootstrap proccess.
102
- #
103
99
  @afterPaint: (callback) ->
104
100
  @::__afterPaint = callback
105
101
 
@@ -324,6 +320,7 @@ class Joosy.Page extends Joosy.Module
324
320
  @__fixHeight()
325
321
 
326
322
  @wait "stageClear dataReceived", =>
323
+ @previous?.__afterPaint?(callbacksParams)
327
324
  @__callSyncedThrough this, '__paint', callbacksParams, =>
328
325
  # Page HTML
329
326
  @swapContainer @layout.content(), @__renderer(@data || {})
@@ -173,8 +173,8 @@ class Joosy.Resource.Generic extends Joosy.Module
173
173
  shim = Joosy.Resource.Generic.identity[klass][id]
174
174
  shim.load data
175
175
  else
176
- @apply shim, [data]
177
176
  Joosy.Resource.Generic.identity[klass][id] = shim
177
+ @apply shim, [data]
178
178
  else
179
179
  @apply shim, [data]
180
180
 
@@ -6,7 +6,7 @@ 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/joosy/joosy"
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
 
@@ -1,5 +1,5 @@
1
1
  module Joosy
2
2
  module Rails
3
- VERSION = "1.0.0.RC5"
3
+ VERSION = "1.0.0.RC6"
4
4
  end
5
5
  end
@@ -69,11 +69,22 @@ describe "Joosy.Form", ->
69
69
 
70
70
  it "should hijack form method if it differs from POST/GET", ->
71
71
  form = new Joosy.Form @putForm, callback=sinon.spy()
72
- marker = @putForm.find "input[type=hidden]"
72
+ marker = @putForm.find "input[name=_method]"
73
73
  expect(@putForm.attr('method')?.toLowerCase()).toEqual 'post'
74
- expect(marker.attr 'name').toEqual '_method'
74
+ expect(marker.attr 'type').toEqual 'hidden'
75
75
  expect(marker.attr 'value').toEqual 'put'
76
76
 
77
+ it "should not stack _method inputs", ->
78
+ form = new Joosy.Form @putForm
79
+ 3.times =>
80
+ form.fill @resource
81
+ marker = @putForm.find "input[name=_method]"
82
+ expect(marker.length).toEqual 1
83
+ expect(marker.attr 'value').toEqual 'PUT'
84
+ form.fill Test
85
+ marker = @putForm.find "input[name=_method]"
86
+ expect(marker.length).toEqual 0
87
+
77
88
  describe "Filling", ->
78
89
 
79
90
  beforeEach ->
@@ -159,6 +170,56 @@ describe "Joosy.Form", ->
159
170
  @nestedForm.fill @resource
160
171
  # expect(you).toBeAlive(), lol
161
172
 
173
+ describe 'Submit', ->
174
+
175
+ beforeEach ->
176
+ @xhr = sinon.useFakeXMLHttpRequest()
177
+ @requests = []
178
+ @xhr.onCreate = (xhr) =>
179
+ @requests.push xhr
180
+
181
+ afterEach ->
182
+ @xhr.restore()
183
+ delete @requests
184
+
185
+ describe 'Global debouncing disabled', ->
186
+
187
+ it 'should allow multiple submit', ->
188
+ @nudeForm = new Joosy.Form @nudeForm
189
+ 3.times =>
190
+ @nudeForm.container.submit()
191
+ expect(@requests.length).toEqual 3
192
+
193
+ it 'should optionally prevent multiple submit', ->
194
+ @nudeForm = new Joosy.Form @nudeForm, debounce: true
195
+ [200, 404, 500].each (code) =>
196
+ 3.times =>
197
+ @nudeForm.container.submit()
198
+ expect(@requests.length).toEqual 1
199
+ @requests[0].respond(code, {}, '{}')
200
+ expect(@requests.length).toEqual 1
201
+ @requests = []
202
+
203
+ describe 'Global debouncing enabled', ->
204
+
205
+ beforeEach ->
206
+ Joosy.Application.debounceForms = true
207
+
208
+ afterEach ->
209
+ Joosy.Application.debounceForms = false
210
+
211
+ it 'should optionally allow multiple submit', ->
212
+ @nudeForm = new Joosy.Form @nudeForm, debounce: false
213
+ 3.times =>
214
+ @nudeForm.container.submit()
215
+ expect(@requests.length).toEqual 3
216
+
217
+ it 'should prevent multiple submit', ->
218
+ @nudeForm = new Joosy.Form @nudeForm
219
+ 3.times =>
220
+ @nudeForm.container.submit()
221
+ expect(@requests.length).toEqual 1
222
+
162
223
  describe "Callbacks", ->
163
224
 
164
225
  beforeEach ->
@@ -54,6 +54,30 @@ describe "Joosy.Modules.Events", ->
54
54
  @box.trigger 'event'
55
55
  expect(callback.callCount).toEqual 3
56
56
 
57
+ it "should allow multiple binding", ->
58
+ callback = ->
59
+
60
+ 3.times =>
61
+ @box.bind 'event', callback
62
+ expect(@box.__boundEvents).toEqual [[['event'], callback], [['event'], callback], [['event'], callback]]
63
+
64
+ 3.times =>
65
+ @box.wait 'event', callback
66
+ expect(@box.__oneShotEvents).toEqual [[['event'], callback], [['event'], callback], [['event'], callback]]
67
+
68
+ it "should ignore multiple binding", ->
69
+ callback = ->
70
+
71
+ @box.bind 'event', callback
72
+ 3.times =>
73
+ @box.bind 'event', callback, unique: true
74
+ expect(@box.__boundEvents).toEqual [[['event'], callback]]
75
+
76
+ @box.wait 'event', callback
77
+ 3.times =>
78
+ @box.wait 'event', callback, unique: true
79
+ expect(@box.__oneShotEvents).toEqual [[['event'], callback]]
80
+
57
81
  it "should handle inheritance well", ->
58
82
  callback = sinon.spy()
59
83
  @sub.wait 'foo', callback
@@ -112,6 +112,40 @@ describe "Joosy.Modules.Renderer", ->
112
112
  runs ->
113
113
  expect(elem.text()).toBe "suck"
114
114
 
115
+ it "renders collections and track its new items", ->
116
+ class Foo extends Joosy.Resource.Generic
117
+ @entity 'foo'
118
+
119
+ data = new Joosy.Resource.Collection(Foo)
120
+ data.load [
121
+ {key: 1},
122
+ {key: 2}
123
+ ]
124
+
125
+ @TestContainer.view (locals) ->
126
+ template = -> @data.map((item) -> item('key')).join('')
127
+ @renderDynamic(template, locals)
128
+
129
+ elem = $("<div></div>")
130
+ @ground.append elem
131
+ elem.html @dummyContainer.__renderer(data)
132
+
133
+ waits 0
134
+
135
+ runs ->
136
+ expect(elem.text()).toBe "12"
137
+ data.add Foo.build(key: 3)
138
+
139
+ waits 0
140
+
141
+ runs ->
142
+ expect(elem.text()).toBe "123"
143
+ data.at(2)('key', 6)
144
+
145
+ waits 0
146
+
147
+ runs ->
148
+ expect(elem.text()).toBe "126"
115
149
 
116
150
  it "debounces morpher updates", ->
117
151
  @TestContainer.view (locals) ->
@@ -7,6 +7,11 @@ describe "Joosy.Resource.Generic", ->
7
7
  @entity 'test'
8
8
  @map 'test_inlines', TestInline
9
9
 
10
+ class TestNode extends Joosy.Resource.Generic
11
+ @entity 'test_node'
12
+ @map 'children', TestNode
13
+ @map 'parent', TestNode
14
+
10
15
  beforeEach ->
11
16
  @resource = Joosy.Resource.Generic.build @data =
12
17
  foo: 'bar'
@@ -153,3 +158,10 @@ describe "Joosy.Resource.Generic", ->
153
158
  inline('foo', 'bar')
154
159
 
155
160
  expect(root('test_inlines').at(0)('foo')).toEqual 'bar'
161
+
162
+ it "handles nested bi-directional reference", ->
163
+ biDirectionTestNode = TestNode.build
164
+ id: 1
165
+ children: [{id: 2, parent: {id: 1}}]
166
+
167
+ expect(biDirectionTestNode).toEqual(biDirectionTestNode('children').at(0)('parent'))
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.RC5
4
+ version: 1.0.0.RC6
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-12-14 00:00:00.000000000 Z
15
+ date: 2013-01-09 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rails
19
- requirement: &70277116410620 !ruby/object:Gem::Requirement
19
+ requirement: &70125953693180 !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: *70277116410620
27
+ version_requirements: *70125953693180
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: coffee-rails
30
- requirement: &70277116408700 !ruby/object:Gem::Requirement
30
+ requirement: &70125953692180 !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: *70277116408700
38
+ version_requirements: *70125953692180
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: jquery-rails
41
- requirement: &70277116407280 !ruby/object:Gem::Requirement
41
+ requirement: &70125953691180 !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: *70277116407280
49
+ version_requirements: *70125953691180
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: haml_coffee_assets
52
- requirement: &70277116405680 !ruby/object:Gem::Requirement
52
+ requirement: &70125953689800 !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: *70277116405680
60
+ version_requirements: *70125953689800
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: i18n-js
63
- requirement: &70277116402480 !ruby/object:Gem::Requirement
63
+ requirement: &70125953491060 !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: *70277116402480
71
+ version_requirements: *70125953491060
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: guard
74
- requirement: &70277116399260 !ruby/object:Gem::Requirement
74
+ requirement: &70125953487880 !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: *70277116399260
82
+ version_requirements: *70125953487880
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: guard-coffeescript
85
- requirement: &70277116397960 !ruby/object:Gem::Requirement
85
+ requirement: &70125953487340 !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: *70277116397960
93
+ version_requirements: *70125953487340
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: guard-sprockets
96
- requirement: &70277116396780 !ruby/object:Gem::Requirement
96
+ requirement: &70125953486620 !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: *70277116396780
104
+ version_requirements: *70125953486620
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: jasmine
107
- requirement: &70277116396020 !ruby/object:Gem::Requirement
107
+ requirement: &70125953485680 !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: *70277116396020
115
+ version_requirements: *70125953485680
116
116
  description: A gem wrapper to include Joosy via the asset pipeline.
117
117
  email: boris@roundlake.ru
118
118
  executables: []
@@ -220,12 +220,12 @@ files:
220
220
  - spec/javascripts/support/jasmine_config.rb
221
221
  - spec/javascripts/support/jasmine_runner.rb
222
222
  - spec/javascripts/support/sinon-1.3.1.js
223
- - spec/javascripts/support/sinon-ie-1.3.1.js
223
+ - spec/javascripts/support/sinon-ie-1.3.1.js.skip
224
224
  - vendor/assets/javascripts/jquery.form.js
225
225
  - vendor/assets/javascripts/jquery.hashchange.js
226
226
  - vendor/assets/javascripts/metamorph.js
227
227
  - vendor/assets/javascripts/sugar.js
228
- homepage: http://github.com/roundlake/joosy
228
+ homepage: http://github.com/joosy/joosy
229
229
  licenses: []
230
230
  post_install_message:
231
231
  rdoc_options: []
@@ -250,3 +250,4 @@ signing_key:
250
250
  specification_version: 3
251
251
  summary: Joosy Framework support for Ruby on Rails
252
252
  test_files: []
253
+ has_rdoc: