joosy 1.0.0.RC5 → 1.0.0.RC6

Sign up to get free protection for your applications and to get access to all the features.
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: