slim_breadcrumb 0.0.1 → 0.0.2

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/README.md CHANGED
@@ -1,7 +1,11 @@
1
- # SlimBreadcrumb
1
+ # SlimBreadcrumb [![Build Status](https://secure.travis-ci.org/fiedl/slim_breadcrumb.png?branch=master)](http://travis-ci.org/fiedl/slim_breadcrumb)
2
+
3
+ <img src="https://github.com/fiedl/slim_breadcrumb/raw/master/test_app/app/assets/images/screenshot.png" height="250" align="right" vspace="20" hspace="20" />
2
4
 
3
5
  This is a **ruby on rails gem** to **slim out** certain elements of a **breadcrumb navigation** and show these elements only if the user's mouse dwells on the breadcrumb separator.
4
6
 
7
+ Clicking on a separator also shows the hidden elements near the mouse. Doubleclick anywhere in the breadcrumb area will show all hidden breadcrumb elements.
8
+
5
9
  ## Demo
6
10
 
7
11
  You might want to have a look at [this demo app at heroku](http://slim-breadcrumb-test-app.herokuapp.com/).
data/Rakefile CHANGED
@@ -1,2 +1,8 @@
1
- #!/usr/bin/env rake
2
- require "bundler/gem_tasks"
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rspec/core'
5
+ require 'rspec/core/rake_task'
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ task :default => :spec
@@ -13,6 +13,9 @@ jQuery ->
13
13
  breadcrumb_slim_in_timer = 0
14
14
  breadcrumb_slim_out_timer = 0
15
15
 
16
+ # status variable that knows whether an animation is currently running.
17
+ animating = false
18
+
16
19
  # Time required to dwell.
17
20
  time_to_dwell = 1000 # milliseconds
18
21
 
@@ -26,6 +29,22 @@ jQuery ->
26
29
  clearTimeout( breadcrumb_slim_in_timer )
27
30
  )
28
31
 
32
+ # Show the slim element on click as well.
33
+ $( "li.crumb.sep" ).click( ->
34
+ if not animating
35
+ show_slim_breadcrumbs( $( this ) )
36
+ )
37
+
38
+ # Show all elements on dblclick.
39
+ $( "#breadcrumb" ).dblclick( ->
40
+ delay_time = 0
41
+ delay_time = 600 if animating # because then, a click event is performing an animation
42
+ animating = true
43
+ $( "li.slim.crumb:not(:visible)" ).delay( delay_time ).show( "drop", ->
44
+ animating = false
45
+ )
46
+ )
47
+
29
48
  # If the mouse leaves the breadcrumb, hide the slim elements.
30
49
  $( "#breadcrumb" ).mouseout( ->
31
50
  breadcrumb_slim_out_timer = setTimeout( ->
@@ -41,13 +60,19 @@ jQuery ->
41
60
  elements_to_show = close_slim_elements( next_to_element )
42
61
  for elem in elements_to_show
43
62
  unless $( elem ).is( ":visible" )
44
- $( elem ).show( breadcrumb_slim_effect )
63
+ animating = true
64
+ $( elem ).show( breadcrumb_slim_effect, ->
65
+ animating = false
66
+ )
45
67
 
46
68
  # hide animation:
47
69
  hide_slim_breadcrumbs = () ->
48
70
  if $( "li.slim.crumb:visible" ).html()
71
+ animating = true
49
72
  $( "li.crumb" ).hide( "fade", "fast", ->
50
- $( "li.crumb:not(.slim)" ).show( "fade" )
73
+ $( "li.crumb:not(.slim)" ).show( "fade", ->
74
+ animating = false
75
+ )
51
76
  )
52
77
 
53
78
  # helper function to find nearby slim elements
@@ -1,3 +1,3 @@
1
1
  module SlimBreadcrumb
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -20,16 +20,34 @@ describe "slim_breadcrumb behaviour", js: true do
20
20
  end
21
21
  end
22
22
 
23
- it "should *not* appear after hovering the separator #3" do
24
- find( "#crumb_sep3" ).trigger( :mouseover )
23
+ # it "should *not* appear after hovering the separator #3" do
24
+ # find( "#crumb_sep3" ).trigger( :mouseover )
25
+ # sleep 1.2
26
+ # page.should_not have_selector( "#crumb1", visible: true )
27
+ # end
28
+
29
+ it "should disappear after moving out the mouse" do
30
+ find( "#crumb_sep1" ).trigger( :mouseover )
25
31
  sleep 1.2
32
+ find( "#breadcrumb" ).trigger( :mouseout )
26
33
  page.should_not have_selector( "#crumb1", visible: true )
27
34
  end
28
35
 
29
- it "should disappear after moving out the mouse" do
30
- find( "#crumb_sep1" ).trigger( :mouseover )
36
+ it "should appear after clicking on the separator #1 and disappear after mouseout" do
37
+ find( "#crumb_sep1" ).trigger( :click )
31
38
  sleep 1.2
39
+ page.should have_selector( "#crumb1", visible: true )
40
+ find( "#breadcrumb" ).trigger( :mouseout )
41
+ sleep 1.2
42
+ page.should_not have_selector( "#crumb1", visible: true )
43
+ end
44
+
45
+ it "should appear after dblclick on separator #4, since all elements are shown after dblclick" do
46
+ find( "#crumb_sep4" ).trigger( :dblclick )
47
+ sleep 2.0
48
+ page.should have_selector( "#crumb1", visible: true )
32
49
  find( "#breadcrumb" ).trigger( :mouseout )
50
+ sleep 2.0
33
51
  page.should_not have_selector( "#crumb1", visible: true )
34
52
  end
35
53
 
data/test_app/Gemfile CHANGED
@@ -49,4 +49,6 @@ end
49
49
 
50
50
  gem "mocha", :group => :test
51
51
 
52
- gem "slim_breadcrumb", path: "../"
52
+ # gem "slim_breadcrumb"
53
+ #gem "slim_breadcrumb", path: "../"
54
+ gem "slim_breadcrumb", git: "https://github.com/fiedl/slim_breadcrumb.git"
data/test_app/README.md CHANGED
@@ -1,7 +1,11 @@
1
- # SlimBreadcrumb
1
+ # SlimBreadcrumb [![Build Status](https://secure.travis-ci.org/fiedl/slim_breadcrumb.png?branch=master)](http://travis-ci.org/fiedl/slim_breadcrumb)
2
+
3
+ <img src="https://github.com/fiedl/slim_breadcrumb/raw/master/test_app/app/assets/images/screenshot.png" height="250" align="right" vspace="20" hspace="20" />
2
4
 
3
5
  This is a **ruby on rails gem** to **slim out** certain elements of a **breadcrumb navigation** and show these elements only if the user's mouse dwells on the breadcrumb separator.
4
6
 
7
+ Clicking on a separator also shows the hidden elements near the mouse. Doubleclick anywhere in the breadcrumb area will show all hidden breadcrumb elements.
8
+
5
9
  ## Demo
6
10
 
7
11
  You might want to have a look at [this demo app at heroku](http://slim-breadcrumb-test-app.herokuapp.com/).
@@ -27,6 +27,8 @@
27
27
 
28
28
  <p>This <strong>demo app</strong> show how the ruby gem <a href="https://github.com/fiedl/slim_breadcrumb/">slim_breadcrumb</a> looks like in action.</p>
29
29
 
30
+ <p>Hover, click or doubleclick on the breadcrumb separators to show hidden breadcrumb elements. <strong>Hovering</strong> and <strong>clicking</strong> shows hidden elements nearby the mouse cursor, <strong>doubleclicking</strong> shows all hidden breadcrumb elements.</p>
31
+
30
32
  <p>
31
33
  The above breadcrumb bar has got just the following HTML code and a usual breadcrumb css file. The rest is done automatically via JavaScript.
32
34
  </p>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slim_breadcrumb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-11 00:00:00.000000000 Z
12
+ date: 2012-10-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: !ruby/object:Gem::Requirement
16
+ requirement: &74417110 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,15 +21,10 @@ dependencies:
21
21
  version: '3.2'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '3.2'
24
+ version_requirements: *74417110
30
25
  - !ruby/object:Gem::Dependency
31
26
  name: jquery-rails
32
- requirement: !ruby/object:Gem::Requirement
27
+ requirement: &74416720 !ruby/object:Gem::Requirement
33
28
  none: false
34
29
  requirements:
35
30
  - - ! '>='
@@ -37,15 +32,10 @@ dependencies:
37
32
  version: '0'
38
33
  type: :runtime
39
34
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
35
+ version_requirements: *74416720
46
36
  - !ruby/object:Gem::Dependency
47
37
  name: sass-rails
48
- requirement: !ruby/object:Gem::Requirement
38
+ requirement: &74319670 !ruby/object:Gem::Requirement
49
39
  none: false
50
40
  requirements:
51
41
  - - ! '>='
@@ -53,15 +43,10 @@ dependencies:
53
43
  version: '0'
54
44
  type: :runtime
55
45
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
46
+ version_requirements: *74319670
62
47
  - !ruby/object:Gem::Dependency
63
48
  name: coffee-rails
64
- requirement: !ruby/object:Gem::Requirement
49
+ requirement: &74318370 !ruby/object:Gem::Requirement
65
50
  none: false
66
51
  requirements:
67
52
  - - ! '>='
@@ -69,15 +54,10 @@ dependencies:
69
54
  version: '0'
70
55
  type: :runtime
71
56
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
57
+ version_requirements: *74318370
78
58
  - !ruby/object:Gem::Dependency
79
59
  name: rake
80
- requirement: !ruby/object:Gem::Requirement
60
+ requirement: &74317550 !ruby/object:Gem::Requirement
81
61
  none: false
82
62
  requirements:
83
63
  - - ! '>='
@@ -85,15 +65,10 @@ dependencies:
85
65
  version: '0'
86
66
  type: :development
87
67
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
68
+ version_requirements: *74317550
94
69
  - !ruby/object:Gem::Dependency
95
70
  name: bundler
96
- requirement: !ruby/object:Gem::Requirement
71
+ requirement: &74316320 !ruby/object:Gem::Requirement
97
72
  none: false
98
73
  requirements:
99
74
  - - ! '>='
@@ -101,15 +76,10 @@ dependencies:
101
76
  version: '0'
102
77
  type: :development
103
78
  prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: '0'
79
+ version_requirements: *74316320
110
80
  - !ruby/object:Gem::Dependency
111
81
  name: rspec-rails
112
- requirement: !ruby/object:Gem::Requirement
82
+ requirement: &74314560 !ruby/object:Gem::Requirement
113
83
  none: false
114
84
  requirements:
115
85
  - - ! '>='
@@ -117,31 +87,21 @@ dependencies:
117
87
  version: 2.8.0
118
88
  type: :development
119
89
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - ! '>='
124
- - !ruby/object:Gem::Version
125
- version: 2.8.0
90
+ version_requirements: *74314560
126
91
  - !ruby/object:Gem::Dependency
127
92
  name: guard
128
- requirement: !ruby/object:Gem::Requirement
93
+ requirement: &74313330 !ruby/object:Gem::Requirement
129
94
  none: false
130
95
  requirements:
131
- - - '='
96
+ - - =
132
97
  - !ruby/object:Gem::Version
133
98
  version: 1.0.1
134
99
  type: :development
135
100
  prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - '='
140
- - !ruby/object:Gem::Version
141
- version: 1.0.1
101
+ version_requirements: *74313330
142
102
  - !ruby/object:Gem::Dependency
143
103
  name: nokogiri
144
- requirement: !ruby/object:Gem::Requirement
104
+ requirement: &74312590 !ruby/object:Gem::Requirement
145
105
  none: false
146
106
  requirements:
147
107
  - - ! '>='
@@ -149,15 +109,10 @@ dependencies:
149
109
  version: 1.5.0
150
110
  type: :development
151
111
  prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - ! '>='
156
- - !ruby/object:Gem::Version
157
- version: 1.5.0
112
+ version_requirements: *74312590
158
113
  - !ruby/object:Gem::Dependency
159
114
  name: capybara
160
- requirement: !ruby/object:Gem::Requirement
115
+ requirement: &74656170 !ruby/object:Gem::Requirement
161
116
  none: false
162
117
  requirements:
163
118
  - - ! '>='
@@ -165,47 +120,32 @@ dependencies:
165
120
  version: '0'
166
121
  type: :development
167
122
  prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
- requirements:
171
- - - ! '>='
172
- - !ruby/object:Gem::Version
173
- version: '0'
123
+ version_requirements: *74656170
174
124
  - !ruby/object:Gem::Dependency
175
125
  name: rspec-rails
176
- requirement: !ruby/object:Gem::Requirement
126
+ requirement: &74655220 !ruby/object:Gem::Requirement
177
127
  none: false
178
128
  requirements:
179
- - - '='
129
+ - - =
180
130
  - !ruby/object:Gem::Version
181
131
  version: 2.10.0
182
132
  type: :development
183
133
  prerelease: false
184
- version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
- requirements:
187
- - - '='
188
- - !ruby/object:Gem::Version
189
- version: 2.10.0
134
+ version_requirements: *74655220
190
135
  - !ruby/object:Gem::Dependency
191
136
  name: guard-rspec
192
- requirement: !ruby/object:Gem::Requirement
137
+ requirement: &74650670 !ruby/object:Gem::Requirement
193
138
  none: false
194
139
  requirements:
195
- - - '='
140
+ - - =
196
141
  - !ruby/object:Gem::Version
197
142
  version: 0.5.5
198
143
  type: :development
199
144
  prerelease: false
200
- version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
- requirements:
203
- - - '='
204
- - !ruby/object:Gem::Version
205
- version: 0.5.5
145
+ version_requirements: *74650670
206
146
  - !ruby/object:Gem::Dependency
207
147
  name: execjs
208
- requirement: !ruby/object:Gem::Requirement
148
+ requirement: &74649760 !ruby/object:Gem::Requirement
209
149
  none: false
210
150
  requirements:
211
151
  - - ! '>='
@@ -213,15 +153,10 @@ dependencies:
213
153
  version: '0'
214
154
  type: :development
215
155
  prerelease: false
216
- version_requirements: !ruby/object:Gem::Requirement
217
- none: false
218
- requirements:
219
- - - ! '>='
220
- - !ruby/object:Gem::Version
221
- version: '0'
156
+ version_requirements: *74649760
222
157
  - !ruby/object:Gem::Dependency
223
158
  name: therubyracer
224
- requirement: !ruby/object:Gem::Requirement
159
+ requirement: &74878300 !ruby/object:Gem::Requirement
225
160
  none: false
226
161
  requirements:
227
162
  - - ! '>='
@@ -229,12 +164,7 @@ dependencies:
229
164
  version: '0'
230
165
  type: :development
231
166
  prerelease: false
232
- version_requirements: !ruby/object:Gem::Requirement
233
- none: false
234
- requirements:
235
- - - ! '>='
236
- - !ruby/object:Gem::Version
237
- version: '0'
167
+ version_requirements: *74878300
238
168
  description: Slim out certain elements of a breadcrumb navigation and show these elements
239
169
  only if the user\'s mouse dwellls on the breadcrumb separator.
240
170
  email:
@@ -329,15 +259,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
329
259
  - - ! '>='
330
260
  - !ruby/object:Gem::Version
331
261
  version: '0'
262
+ segments:
263
+ - 0
264
+ hash: -279479309
332
265
  required_rubygems_version: !ruby/object:Gem::Requirement
333
266
  none: false
334
267
  requirements:
335
268
  - - ! '>='
336
269
  - !ruby/object:Gem::Version
337
270
  version: '0'
271
+ segments:
272
+ - 0
273
+ hash: -279479309
338
274
  requirements: []
339
275
  rubyforge_project:
340
- rubygems_version: 1.8.23
276
+ rubygems_version: 1.8.11
341
277
  signing_key:
342
278
  specification_version: 3
343
279
  summary: Slim out certain elements of a breadcrumb navigation and show these elements