slim_breadcrumb 0.0.1 → 0.0.2

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