eligo-rails 0.0.2 → 0.0.3

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/eligo-rails.gemspec CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'eligo-rails'
16
- s.version = '0.0.2'
16
+ s.version = '0.0.3'
17
17
  s.date = '2012-01-05'
18
18
 
19
19
  ## Make sure your summary is short. The description may be as long
data/lib/eligo-rails.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Eligo
2
2
  module Rails
3
- VERSION = '0.0.2'
3
+ VERSION = '0.0.3'
4
4
 
5
5
  class Engine < ::Rails::Engine
6
6
  end
@@ -48,6 +48,21 @@ describe 'shiftClickable()', ->
48
48
  expect(second).toBeChecked()
49
49
  expect(third) .toBeChecked()
50
50
 
51
+ it 'checks checkboxes when clicking parent list item', ->
52
+ first.closest('li').trigger 'click'
53
+
54
+ deferExpect ->
55
+ expect(first) .toBeChecked()
56
+
57
+ it 'checks checkboxes when shift-clicking parent list item', ->
58
+ first.trigger 'click'
59
+ third.closest('li').trigger shiftClickEvent()
60
+
61
+ deferExpect ->
62
+ expect(first) .toBeChecked()
63
+ expect(second).toBeChecked()
64
+ expect(third) .toBeChecked()
65
+
51
66
  it 'triggers the change event on checkboxes', ->
52
67
  first.trigger 'click'
53
68
  spyOnEvent second, 'change'
@@ -5,21 +5,27 @@ $.fn.shiftClickable = ->
5
5
  list = $ this
6
6
  anchor = null
7
7
  anchorIndex = -> anchor?.index() ? 0
8
+ checkboxSelector = 'input[type=checkbox]'
8
9
 
9
10
  shiftClick = (clicked) ->
10
11
  [ first, last ] = [ anchorIndex(), clicked.index() ]
11
12
  [ first, last ] = [ last, first ] if first > last
12
13
 
13
- checked = clicked.find(':checkbox').prop('checked')
14
+ checked = clicked.find(checkboxSelector).prop('checked')
14
15
  list.children('li')
15
16
  .slice(first, last + 1)
16
17
  .not(clicked)
17
- .find(':checkbox')
18
+ .find(checkboxSelector)
18
19
  .prop('checked', checked)
19
20
  .change()
20
21
 
21
22
  list.click (e) ->
22
- clicked = $(e.target).closest('li')
23
+ clicked = $ e.target
24
+ if clicked.is 'li'
25
+ clicked.find(checkboxSelector)
26
+ .trigger $.Event('click', shiftKey: e.shiftKey)
27
+ else
28
+ clicked = clicked.closest 'li'
23
29
 
24
30
  # It seems WebKit triggers `change` before `click`, but I'm not too
25
31
  # confident that all browsers must trigger events in exactly the same way.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eligo-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-01-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties
16
- requirement: &2223176680 !ruby/object:Gem::Requirement
16
+ requirement: &70188917783640 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2223176680
24
+ version_requirements: *70188917783640
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: jquery-rails
27
- requirement: &2223175600 !ruby/object:Gem::Requirement
27
+ requirement: &70188917782640 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2223175600
35
+ version_requirements: *70188917782640
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: jasmine-headless-webkit
38
- requirement: &2223174560 !ruby/object:Gem::Requirement
38
+ requirement: &70188917781460 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.8.4
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2223174560
46
+ version_requirements: *70188917781460
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jasmine-spec-extras
49
- requirement: &2223173320 !ruby/object:Gem::Requirement
49
+ requirement: &70188917780220 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: 0.0.2
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *2223173320
57
+ version_requirements: *70188917780220
58
58
  description: Add shift-click selection to a list of checkboxes.
59
59
  email: larry@marburger.cc
60
60
  executables: []