bettertabs 1.2.3 → 1.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/.gitignore +1 -0
- data/.rspec +1 -0
- data/Gemfile +11 -1
- data/Gemfile.lock +106 -1
- data/MIT-LICENSE +20 -0
- data/README.md +35 -30
- data/Rakefile +16 -2
- data/{lib/bettertabs → app/assets}/javascripts/jquery.bettertabs.js +0 -0
- data/{lib/bettertabs/javascripts/jquery.bettertabs.coffee → app/assets/javascripts/jquery.bettertabs.js.coffee} +0 -0
- data/{lib/bettertabs → app/assets}/javascripts/jquery.bettertabs.min.js +0 -0
- data/{lib/bettertabs → app/helpers}/bettertabs_helper.rb +0 -0
- data/bettertabs.gemspec +12 -5
- data/{CHANGELOG → doc/CHANGELOG.md} +0 -0
- data/{EXAMPLES.md → doc/EXAMPLES.md} +0 -0
- data/{lib/bettertabs/javascripts/README.md → doc/JAVASCRIPTS-DEV-GUIDE.md} +0 -0
- data/{lib/bettertabs/stylesheets/README.md → doc/STYLESHEETS-GUIDE.md} +0 -0
- data/lib/bettertabs/engine.rb +6 -0
- data/lib/bettertabs/version.rb +2 -2
- data/lib/bettertabs.rb +2 -7
- data/script/rails +6 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/Rakefile +2 -2
- data/spec/dummy/app/assets/javascripts/application.js +10 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/{test/ruby_1_9/rails_3_0/public → spec/dummy/app/assets}/stylesheets/bettertabs.css +0 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/app/controllers/application_controller.rb +0 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/app/controllers/bettertabs_controller.rb +0 -0
- data/{test/ruby_1_9/rails_3_0/public/favicon.ico → spec/dummy/app/mailers/.gitkeep} +0 -0
- data/spec/dummy/app/models/.gitkeep +0 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/app/views/bettertabs/_ajax.html.haml +0 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/app/views/bettertabs/_link.html.haml +0 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/app/views/bettertabs/_mixed.html.haml +0 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/app/views/bettertabs/_tab_content.html.haml +0 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/app/views/bettertabs/ajax.html.haml +0 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/app/views/bettertabs/link_tab_1.html.haml +0 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/app/views/bettertabs/link_tab_2.html.haml +0 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/app/views/bettertabs/mixed.html.haml +0 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/app/views/bettertabs/mixed_with_erb.html.erb +0 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/app/views/bettertabs/static.html.haml +0 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/app/views/layouts/application.html.erb +4 -4
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/config/application.rb +14 -7
- data/spec/dummy/config/boot.rb +10 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/config/environment.rb +1 -1
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/config/environments/development.rb +8 -4
- data/spec/dummy/config/environments/production.rb +60 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/config/environments/test.rb +9 -2
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/inflections.rb +10 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/config/initializers/mime_types.rb +0 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/config/initializers/secret_token.rb +1 -1
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/config/initializers/session_store.rb +2 -2
- data/spec/dummy/config/initializers/wrap_parameters.rb +9 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/config/routes.rb +1 -2
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/config.ru +1 -1
- data/spec/dummy/lib/assets/.gitkeep +0 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/public/404.html +0 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/public/422.html +0 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/public/500.html +0 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/{test/ruby_1_9/rails_3_0 → spec/dummy}/script/rails +0 -0
- data/{test/ruby_1_9/rails_3_0/spec → spec}/requests/bettertabs_spec.rb +0 -0
- data/spec/spec_helper.rb +16 -0
- metadata +132 -84
- data/test/README_for_TEST.txt +0 -5
- data/test/ruby_1_9/rails_3_0/.rspec +0 -1
- data/test/ruby_1_9/rails_3_0/.rvmc +0 -1
- data/test/ruby_1_9/rails_3_0/Gemfile +0 -13
- data/test/ruby_1_9/rails_3_0/Gemfile.lock +0 -108
- data/test/ruby_1_9/rails_3_0/README +0 -3
- data/test/ruby_1_9/rails_3_0/app/helpers/application_helper.rb +0 -2
- data/test/ruby_1_9/rails_3_0/config/boot.rb +0 -6
- data/test/ruby_1_9/rails_3_0/public/images/rails.png +0 -0
- data/test/ruby_1_9/rails_3_0/public/javascripts/jquery-1.3.min.js +0 -19
- data/test/ruby_1_9/rails_3_0/public/javascripts/jquery.bettertabs.js +0 -81
- data/test/ruby_1_9/rails_3_0/public/javascripts/rails.js +0 -278
- data/test/ruby_1_9/rails_3_0/public/robots.txt +0 -5
- data/test/ruby_1_9/rails_3_0/public/stylesheets/layout.css +0 -8
- data/test/ruby_1_9/rails_3_0/spec/spec_helper.rb +0 -19
data/.gitignore
CHANGED
data/.rspec
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
--color
|
data/Gemfile
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
source "http://rubygems.org"
|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# Declare your gem's dependencies in engine-test.gemspec.
|
|
4
|
+
# Bundler will treat runtime dependencies like base dependencies, and
|
|
5
|
+
# development dependencies will be added by default to the :development group.
|
|
4
6
|
gemspec
|
|
7
|
+
|
|
8
|
+
# Declare any dependencies that are still in development here instead of in
|
|
9
|
+
# your gemspec. These might include edge Rails or gems from your path or
|
|
10
|
+
# Git. Remember to move these dependencies to your gemspec before releasing
|
|
11
|
+
# your gem to rubygems.org.
|
|
12
|
+
|
|
13
|
+
# To use debugger
|
|
14
|
+
# gem 'ruby-debug19', :require => 'ruby-debug'
|
data/Gemfile.lock
CHANGED
|
@@ -1,14 +1,119 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
bettertabs (1.
|
|
4
|
+
bettertabs (1.3)
|
|
5
|
+
jquery-rails
|
|
6
|
+
rails (~> 3.1.0)
|
|
5
7
|
|
|
6
8
|
GEM
|
|
7
9
|
remote: http://rubygems.org/
|
|
8
10
|
specs:
|
|
11
|
+
actionmailer (3.1.0)
|
|
12
|
+
actionpack (= 3.1.0)
|
|
13
|
+
mail (~> 2.3.0)
|
|
14
|
+
actionpack (3.1.0)
|
|
15
|
+
activemodel (= 3.1.0)
|
|
16
|
+
activesupport (= 3.1.0)
|
|
17
|
+
builder (~> 3.0.0)
|
|
18
|
+
erubis (~> 2.7.0)
|
|
19
|
+
i18n (~> 0.6)
|
|
20
|
+
rack (~> 1.3.2)
|
|
21
|
+
rack-cache (~> 1.0.3)
|
|
22
|
+
rack-mount (~> 0.8.2)
|
|
23
|
+
rack-test (~> 0.6.1)
|
|
24
|
+
sprockets (~> 2.0.0)
|
|
25
|
+
activemodel (3.1.0)
|
|
26
|
+
activesupport (= 3.1.0)
|
|
27
|
+
bcrypt-ruby (~> 3.0.0)
|
|
28
|
+
builder (~> 3.0.0)
|
|
29
|
+
i18n (~> 0.6)
|
|
30
|
+
activerecord (3.1.0)
|
|
31
|
+
activemodel (= 3.1.0)
|
|
32
|
+
activesupport (= 3.1.0)
|
|
33
|
+
arel (~> 2.2.1)
|
|
34
|
+
tzinfo (~> 0.3.29)
|
|
35
|
+
activeresource (3.1.0)
|
|
36
|
+
activemodel (= 3.1.0)
|
|
37
|
+
activesupport (= 3.1.0)
|
|
38
|
+
activesupport (3.1.0)
|
|
39
|
+
multi_json (~> 1.0)
|
|
40
|
+
arel (2.2.1)
|
|
41
|
+
bcrypt-ruby (3.0.0)
|
|
42
|
+
builder (3.0.0)
|
|
43
|
+
diff-lcs (1.1.3)
|
|
44
|
+
erubis (2.7.0)
|
|
45
|
+
haml (3.1.3)
|
|
46
|
+
haml-rails (0.3.4)
|
|
47
|
+
actionpack (~> 3.0)
|
|
48
|
+
activesupport (~> 3.0)
|
|
49
|
+
haml (~> 3.0)
|
|
50
|
+
railties (~> 3.0)
|
|
51
|
+
hike (1.2.1)
|
|
52
|
+
i18n (0.6.0)
|
|
53
|
+
jquery-rails (1.0.14)
|
|
54
|
+
railties (~> 3.0)
|
|
55
|
+
thor (~> 0.14)
|
|
56
|
+
mail (2.3.0)
|
|
57
|
+
i18n (>= 0.4.0)
|
|
58
|
+
mime-types (~> 1.16)
|
|
59
|
+
treetop (~> 1.4.8)
|
|
60
|
+
mime-types (1.16)
|
|
61
|
+
multi_json (1.0.3)
|
|
62
|
+
polyglot (0.3.2)
|
|
63
|
+
rack (1.3.2)
|
|
64
|
+
rack-cache (1.0.3)
|
|
65
|
+
rack (>= 0.4)
|
|
66
|
+
rack-mount (0.8.3)
|
|
67
|
+
rack (>= 1.0.0)
|
|
68
|
+
rack-ssl (1.3.2)
|
|
69
|
+
rack
|
|
70
|
+
rack-test (0.6.1)
|
|
71
|
+
rack (>= 1.0)
|
|
72
|
+
rails (3.1.0)
|
|
73
|
+
actionmailer (= 3.1.0)
|
|
74
|
+
actionpack (= 3.1.0)
|
|
75
|
+
activerecord (= 3.1.0)
|
|
76
|
+
activeresource (= 3.1.0)
|
|
77
|
+
activesupport (= 3.1.0)
|
|
78
|
+
bundler (~> 1.0)
|
|
79
|
+
railties (= 3.1.0)
|
|
80
|
+
railties (3.1.0)
|
|
81
|
+
actionpack (= 3.1.0)
|
|
82
|
+
activesupport (= 3.1.0)
|
|
83
|
+
rack-ssl (~> 1.3.2)
|
|
84
|
+
rake (>= 0.8.7)
|
|
85
|
+
rdoc (~> 3.4)
|
|
86
|
+
thor (~> 0.14.6)
|
|
87
|
+
rake (0.9.2)
|
|
88
|
+
rdoc (3.9.4)
|
|
89
|
+
rspec (2.6.0)
|
|
90
|
+
rspec-core (~> 2.6.0)
|
|
91
|
+
rspec-expectations (~> 2.6.0)
|
|
92
|
+
rspec-mocks (~> 2.6.0)
|
|
93
|
+
rspec-core (2.6.4)
|
|
94
|
+
rspec-expectations (2.6.0)
|
|
95
|
+
diff-lcs (~> 1.1.2)
|
|
96
|
+
rspec-mocks (2.6.0)
|
|
97
|
+
rspec-rails (2.6.1)
|
|
98
|
+
actionpack (~> 3.0)
|
|
99
|
+
activesupport (~> 3.0)
|
|
100
|
+
railties (~> 3.0)
|
|
101
|
+
rspec (~> 2.6.0)
|
|
102
|
+
sprockets (2.0.0)
|
|
103
|
+
hike (~> 1.2)
|
|
104
|
+
rack (~> 1.0)
|
|
105
|
+
tilt (~> 1.1, != 1.3.0)
|
|
106
|
+
thor (0.14.6)
|
|
107
|
+
tilt (1.3.3)
|
|
108
|
+
treetop (1.4.10)
|
|
109
|
+
polyglot
|
|
110
|
+
polyglot (>= 0.3.1)
|
|
111
|
+
tzinfo (0.3.29)
|
|
9
112
|
|
|
10
113
|
PLATFORMS
|
|
11
114
|
ruby
|
|
12
115
|
|
|
13
116
|
DEPENDENCIES
|
|
14
117
|
bettertabs!
|
|
118
|
+
haml-rails
|
|
119
|
+
rspec-rails
|
data/MIT-LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Copyright 2011 Mario Izquierdo
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
+
a copy of this software and associated documentation files (the
|
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
+
the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be
|
|
12
|
+
included in all copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
|
@@ -3,31 +3,32 @@ Bettertabs for Rails
|
|
|
3
3
|
|
|
4
4
|
We know that splitting content into several tabs is easy, but doing well, clean, DRY, accessible, usable, fast and testable is not so simple after all.
|
|
5
5
|
|
|
6
|
-
Bettertabs is a
|
|
6
|
+
Bettertabs is a simple engine for Rails that includes a helper and a jquery plugin to render the needed markup and javascript for a section with tabs in a easy and declarative way, forcing you to keep things simple and ensuring accessibility and usability, no matter if the content is loaded statically or via ajax.
|
|
7
7
|
|
|
8
8
|
Easy for beginners, complete for experts.
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
## Features ##
|
|
12
12
|
|
|
13
|
-
* Rails
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
* Rails 3.1 Engine that includes:
|
|
14
|
+
* helper to easily generate tabs and content markup
|
|
15
|
+
* jQuery plugin to handle the JavaScript behavior
|
|
16
|
+
* Simplicity: Easy to install, easy to use, easy to update
|
|
16
17
|
* Flexible and customizable
|
|
17
18
|
* Forces you to DRY-up your views for your tabbed content
|
|
18
|
-
* Forces you to make it
|
|
19
|
+
* Forces you to make it very accessible and usable:
|
|
19
20
|
* Designed to work with and without JavaScript
|
|
20
21
|
* When click on a tab, the address bar url is changed (only in HTML5 browsers), so:
|
|
21
22
|
* The browser's back and reload buttons will still work as expected
|
|
22
23
|
* All tabbed sections can be permalinked, keeping the selected tab
|
|
23
|
-
* Makes testing views simple. Because its easy to make it
|
|
24
|
-
* The CSS styles are up to you
|
|
24
|
+
* Makes testing views simple. Because its easy to make it working without javascript, you can test view components with the rails built-in functional and integration tests
|
|
25
|
+
* The CSS styles are up to you, although we include some [reference CSS](https://github.com/agoragames/bettertabs/blob/master/doc/STYLESHEETS-GUIDE.md) to start with
|
|
25
26
|
|
|
26
27
|
|
|
27
28
|
## Requirements: ##
|
|
28
29
|
* Ruby 1.9.2
|
|
29
|
-
* Rails 3
|
|
30
|
-
* [
|
|
30
|
+
* Rails 3.1
|
|
31
|
+
* [jquery-ujs](https://github.com/rails/jquery-ujs) with jQuery 1.3 or higher
|
|
31
32
|
|
|
32
33
|
Anyway you can use bettertabs without javascript (or use your own javascript handler) since the bettertabs helper only generates the appropriate markup.
|
|
33
34
|
|
|
@@ -37,14 +38,18 @@ Anyway you can use bettertabs without javascript (or use your own javascript han
|
|
|
37
38
|
Gem dependency. Add bettertabs to your gem file and run `bundle install`.
|
|
38
39
|
|
|
39
40
|
gem 'bettertabs'
|
|
40
|
-
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
To include the [jquery.bettertabs plugin](https://github.com/agoragames/bettertabs/raw/master/app/assets/javascripts/jquery.bettertabs.js.coffee)
|
|
43
|
+
add these line to the top of your `app/assets/javascripts/application.js` file:
|
|
43
44
|
|
|
44
|
-
|
|
45
|
+
//= require jquery.bettertabs
|
|
46
|
+
|
|
47
|
+
Or if you prefer the compressed version:
|
|
48
|
+
|
|
49
|
+
//= require jquery.bettertabs.min
|
|
50
|
+
|
|
51
|
+
This works the same way as [jquery-ujs](https://github.com/rails/jquery-ujs); you don't need to copy-paste the javascript code in your app because it will be served using the Asset Pipeline.
|
|
45
52
|
|
|
46
|
-
Now you can use the `bettertabs` helper as in the examples below.
|
|
47
|
-
|
|
48
53
|
|
|
49
54
|
## Usage and examples ##
|
|
50
55
|
|
|
@@ -64,15 +69,15 @@ An usage example should be self explanatory (using HAML, but it also works with
|
|
|
64
69
|
= tab.ajax :friends, :partial => 'shared/friends'
|
|
65
70
|
|
|
66
71
|
= tab.link :groups do
|
|
67
|
-
= render :partial => 'groups/user_groups', :locals => {user => @user}
|
|
72
|
+
= render :partial => 'groups/user_groups', :locals => { :user => @user }
|
|
68
73
|
|
|
69
74
|
### More examples and documentation: ###
|
|
70
75
|
|
|
71
|
-
* [EXAMPLES document](https://github.com/agoragames/bettertabs/blob/master/EXAMPLES.md)
|
|
72
|
-
* [Bettertabs Styles reference guide](https://github.com/agoragames/bettertabs/blob/master/
|
|
73
|
-
* [Bettertabs helper](https://github.com/agoragames/bettertabs/blob/master/
|
|
74
|
-
* [Rails3 test demo application](https://github.com/agoragames/bettertabs/tree/master/
|
|
75
|
-
* Anyway, don't be afraid
|
|
76
|
+
* [EXAMPLES document](https://github.com/agoragames/bettertabs/blob/master/doc/EXAMPLES.md)
|
|
77
|
+
* [Bettertabs Styles reference guide](https://github.com/agoragames/bettertabs/blob/master/doc/STYLESHEETS-GUIDE.md)
|
|
78
|
+
* [Bettertabs helper](https://github.com/agoragames/bettertabs/blob/master/app/helpers/bettertabs_helper.rb) (params and options)
|
|
79
|
+
* [Rails3 test demo application](https://github.com/agoragames/bettertabs/tree/master/spec/dummy)
|
|
80
|
+
* Anyway, don't be afraid and dig into the code!
|
|
76
81
|
|
|
77
82
|
|
|
78
83
|
## Tabs Routes ##
|
|
@@ -106,19 +111,19 @@ So now the tabs links will point to the following URLs:
|
|
|
106
111
|
* :friends tab href: `/profile/dude/friends`
|
|
107
112
|
|
|
108
113
|
|
|
109
|
-
## JavaScript with the jquery.bettertabs plugin
|
|
114
|
+
## JavaScript with the jquery.bettertabs plugin #
|
|
110
115
|
|
|
111
|
-
|
|
116
|
+
The bettertabs helper will generate the needed markup that has an inline script at the bottom:
|
|
112
117
|
|
|
113
118
|
jQuery(function($){ $('#bettertabs_id').bettertabs(); });
|
|
114
119
|
|
|
115
|
-
Which expects jQuery and jquery.bettertabs plugin to be
|
|
120
|
+
Which expects jQuery and jquery.bettertabs plugin to be present.
|
|
116
121
|
|
|
117
|
-
|
|
122
|
+
You can see the jquery.bettertabs source code in the github repo:
|
|
118
123
|
|
|
119
|
-
* [CoffeeScript version](https://github.com/agoragames/bettertabs/raw/master/
|
|
120
|
-
* [JavaScript (generated by coffee) version](https://github.com/agoragames/bettertabs/raw/master/
|
|
121
|
-
* [Compressed JavaScript](https://github.com/agoragames/bettertabs/raw/master/
|
|
124
|
+
* [CoffeeScript version](https://github.com/agoragames/bettertabs/raw/master/app/assets/javascripts/jquery.bettertabs.js.coffee)
|
|
125
|
+
* [JavaScript (generated by coffee) version](https://github.com/agoragames/bettertabs/raw/master/app/assets/javascripts/jquery.bettertabs.js)
|
|
126
|
+
* [Compressed JavaScript](https://github.com/agoragames/bettertabs/raw/master/app/assets/javascripts/jquery.bettertabs.min.js)
|
|
122
127
|
|
|
123
128
|
The plugin defines one single jQuery method `jQuery(selector).bettertabs();` that is applied to the generated markup.
|
|
124
129
|
|
|
@@ -144,7 +149,7 @@ You can interact with the bettertabs widget in the following ways:
|
|
|
144
149
|
|
|
145
150
|
* **Activate a tab**: use the function `jQuery.Bettertabs.select_tab(bettertabsid, tabid);`, for the previous example could be *jQuery.Bettertabs.select_tab('profile_tabs', 'friends');*. You can also just simulate a click on the tab link with `jQuery('#tabid_bettertabsid_tab a').click();`
|
|
146
151
|
* **Hook some behavior when a tab is clicked**: attach a 'click' handler to the tab link or use any of the provided custom events.
|
|
147
|
-
* **Show a loading clock while ajax is loading**: or any other kind of feedback to the user, use any of the provided custom events. You can also handle it styling the CSS class `.ajax-loading` that is added to the ajax tab link while ajax content is loading (see the [Styles Reference Guide](https://github.com/agoragames/bettertabs/blob/master/
|
|
152
|
+
* **Show a loading clock while ajax is loading**: or any other kind of feedback to the user, use any of the provided custom events. You can also handle it styling the CSS class `.ajax-loading` that is added to the ajax tab link while ajax content is loading (see the [Styles Reference Guide](https://github.com/agoragames/bettertabs/blob/master/doc/STYLESHEETS-GUIDE.md))
|
|
148
153
|
* **Change the browser URL**: in the same way the plugin does when a tab is clicked, use `jQuery.Bettertabs.change_browser_url(new_url);`
|
|
149
154
|
|
|
150
155
|
Custom events that are attached to each tab content:
|
|
@@ -179,7 +184,7 @@ Perhaps the most important CSS rule here is to define `display: none;` for `div.
|
|
|
179
184
|
|
|
180
185
|
div.bettertabs div.content.hidden { display: none; }
|
|
181
186
|
|
|
182
|
-
Use the [Bettertabs Styles Reference Guide](https://github.com/agoragames/bettertabs/blob/master/
|
|
187
|
+
Use the [Bettertabs Styles Reference Guide](https://github.com/agoragames/bettertabs/blob/master/doc/STYLESHEETS-GUIDE.md) to get a stylesheet that you can use as a starting point.
|
|
183
188
|
|
|
184
189
|
|
|
185
190
|
## How to help make Bettertabs even Better ##
|
|
@@ -194,6 +199,6 @@ Use the [Bettertabs Styles Reference Guide](https://github.com/agoragames/better
|
|
|
194
199
|
|
|
195
200
|
## Future work ##
|
|
196
201
|
|
|
197
|
-
* Improve the Rails testing application: it should use rspec and capybabra to test even the javascript (http://media.railscasts.com/videos/257_request_specs_and_capybara.mov)
|
|
198
202
|
* Try to make it compatible with ruby 1.8.x
|
|
203
|
+
* Improve tests to check the JavaScript code (Jasmine, Evergreen, Capybara, whatever)
|
|
199
204
|
|
data/Rakefile
CHANGED
|
@@ -1,2 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
#!/usr/bin/env rake
|
|
2
|
+
begin
|
|
3
|
+
require 'bundler/setup'
|
|
4
|
+
rescue LoadError
|
|
5
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
|
|
9
|
+
|
|
10
|
+
load 'rails/tasks/engine.rake'
|
|
11
|
+
|
|
12
|
+
require 'rspec/core/rake_task'
|
|
13
|
+
RSpec::Core::RakeTask.new(:spec)
|
|
14
|
+
task :default => :spec
|
|
15
|
+
|
|
16
|
+
Bundler::GemHelper.install_tasks
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/bettertabs.gemspec
CHANGED
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
2
|
$:.push File.expand_path("../lib", __FILE__)
|
|
3
|
+
|
|
4
|
+
# Maintain your gem's version:
|
|
3
5
|
require "bettertabs/version"
|
|
4
6
|
|
|
7
|
+
# Describe your gem and declare its dependencies:
|
|
5
8
|
Gem::Specification.new do |s|
|
|
6
9
|
s.name = "bettertabs"
|
|
7
10
|
s.version = Bettertabs::VERSION
|
|
8
|
-
s.platform = Gem::Platform::RUBY
|
|
9
11
|
s.authors = ["Mario Izquierdo"]
|
|
10
12
|
s.email = ["tothemario@gmail.com"]
|
|
11
13
|
s.homepage = "https://github.com/agoragames/bettertabs"
|
|
12
|
-
s.summary = %q{
|
|
13
|
-
s.description = %q{Bettertabs Rails helper
|
|
14
|
+
s.summary = %q{Just a simple, accessible, usable, flexible and fast way to split view content in tabs in a rails application.}
|
|
15
|
+
s.description = %q{Bettertabs is a Rails 3.1 engine that adds a helper and jQuery plugin to define the markup and behavior for a tabbed area in a easy and declarative way, using the appropiate JavaScript but ensuring accessibility and usability, no matter if the content is loaded statically, via ajax or just with links. }
|
|
14
16
|
|
|
15
|
-
s.files
|
|
16
|
-
|
|
17
|
+
s.files = `git ls-files`.split("\n")
|
|
18
|
+
|
|
19
|
+
s.add_dependency "rails", "~> 3.1.0"
|
|
20
|
+
s.add_dependency "jquery-rails"
|
|
21
|
+
|
|
22
|
+
s.add_development_dependency 'rspec-rails'
|
|
23
|
+
s.add_development_dependency 'haml-rails'
|
|
17
24
|
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/bettertabs/version.rb
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
module Bettertabs
|
|
2
|
-
VERSION = "1.
|
|
3
|
-
end
|
|
2
|
+
VERSION = "1.3"
|
|
3
|
+
end
|
data/lib/bettertabs.rb
CHANGED
data/script/rails
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
#!/usr/bin/env ruby
|
|
3
|
+
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
|
|
4
|
+
|
|
5
|
+
ENGINE_PATH = File.expand_path('../..', __FILE__)
|
|
6
|
+
load File.expand_path('../../spec/dummy/script/rails', __FILE__)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
#!/usr/bin/env rake
|
|
1
2
|
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
|
2
3
|
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
|
3
4
|
|
|
4
5
|
require File.expand_path('../config/application', __FILE__)
|
|
5
|
-
require 'rake'
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Dummy::Application.load_tasks
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// This is a manifest file that'll be compiled into including all the files listed below.
|
|
2
|
+
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
|
|
3
|
+
// be included in the compiled file accessible from http://example.com/assets/application.js
|
|
4
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
|
5
|
+
// the compiled file.
|
|
6
|
+
//
|
|
7
|
+
//= require jquery
|
|
8
|
+
//= require jquery_ujs
|
|
9
|
+
//= require jquery.bettertabs
|
|
10
|
+
//= require_tree .
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This is a manifest file that'll automatically include all the stylesheets available in this directory
|
|
3
|
+
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
|
|
4
|
+
* the top of the compiled file, but it's generally better to create a new file per style scope.
|
|
5
|
+
*= require_self
|
|
6
|
+
*= require bettertabs
|
|
7
|
+
*/
|
|
8
|
+
body {
|
|
9
|
+
background-color: white;
|
|
10
|
+
margin: 10px;
|
|
11
|
+
font-size: 12px;
|
|
12
|
+
font-family: Arial, Helvetica Neue, Helvetica, sans-serif;
|
|
13
|
+
}
|
|
14
|
+
div.nav { margin: 10px 0 20px 24px; padding: 0; }
|
|
15
|
+
div.nav a { padding: 0 5px 0 6px; }
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html>
|
|
3
3
|
<head>
|
|
4
|
-
<title>
|
|
5
|
-
<%= stylesheet_link_tag
|
|
6
|
-
<%= javascript_include_tag
|
|
4
|
+
<title>Dummy</title>
|
|
5
|
+
<%= stylesheet_link_tag "application" %>
|
|
6
|
+
<%= javascript_include_tag "application" %>
|
|
7
7
|
<%= csrf_meta_tag %>
|
|
8
8
|
</head>
|
|
9
9
|
<body>
|
|
10
10
|
|
|
11
|
-
<h1>Bettertabs
|
|
11
|
+
<h1>Bettertabs Dummy App</h1>
|
|
12
12
|
<div class="nav">
|
|
13
13
|
<%= link_to 'static', { action: 'static'}, title: 'Using only static tabs' %> |
|
|
14
14
|
<%= link_to 'link', { action: 'link_tab_1'}, title: 'Using only link tabs' %> |
|
|
@@ -6,12 +6,15 @@ require "action_controller/railtie"
|
|
|
6
6
|
require "action_mailer/railtie"
|
|
7
7
|
require "active_resource/railtie"
|
|
8
8
|
require "rails/test_unit/railtie"
|
|
9
|
+
require "sprockets/railtie"
|
|
9
10
|
|
|
10
|
-
#
|
|
11
|
-
|
|
12
|
-
Bundler.require(:default, Rails.env) if defined?(Bundler)
|
|
11
|
+
# Auto-require default libraries and those for the current Rails environment.
|
|
12
|
+
Bundler.require :default, Rails.env
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
require "bettertabs"
|
|
15
|
+
require "jquery-rails"
|
|
16
|
+
|
|
17
|
+
module Dummy
|
|
15
18
|
class Application < Rails::Application
|
|
16
19
|
# Settings in config/environments/* take precedence over those specified here.
|
|
17
20
|
# Application configuration should go into files in config/initializers
|
|
@@ -35,13 +38,17 @@ module Rails30
|
|
|
35
38
|
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
|
36
39
|
# config.i18n.default_locale = :de
|
|
37
40
|
|
|
38
|
-
# JavaScript files you want as :defaults (application.js is always included).
|
|
39
|
-
config.action_view.javascript_expansions[:defaults] = %w()
|
|
40
|
-
|
|
41
41
|
# Configure the default encoding used in templates for Ruby 1.9.
|
|
42
42
|
config.encoding = "utf-8"
|
|
43
43
|
|
|
44
44
|
# Configure sensitive parameters which will be filtered from the log file.
|
|
45
45
|
config.filter_parameters += [:password]
|
|
46
|
+
|
|
47
|
+
# Enable the asset pipeline
|
|
48
|
+
config.assets.enabled = true
|
|
49
|
+
|
|
50
|
+
# Version of your assets, change this if you want to expire all your assets
|
|
51
|
+
config.assets.version = '1.0'
|
|
46
52
|
end
|
|
47
53
|
end
|
|
54
|
+
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
Dummy::Application.configure do
|
|
2
2
|
# Settings specified here will take precedence over those in config/application.rb
|
|
3
3
|
|
|
4
4
|
# In the development environment your application's code is reloaded on
|
|
5
5
|
# every request. This slows down response time but is perfect for development
|
|
6
|
-
# since you don't have to restart the
|
|
6
|
+
# since you don't have to restart the web server when you make code changes.
|
|
7
7
|
config.cache_classes = false
|
|
8
8
|
|
|
9
9
|
# Log error messages when you accidentally call methods on nil.
|
|
@@ -11,7 +11,6 @@ Rails30::Application.configure do
|
|
|
11
11
|
|
|
12
12
|
# Show full error reports and disable caching
|
|
13
13
|
config.consider_all_requests_local = true
|
|
14
|
-
config.action_view.debug_rjs = true
|
|
15
14
|
config.action_controller.perform_caching = false
|
|
16
15
|
|
|
17
16
|
# Don't care if the mailer can't send
|
|
@@ -22,5 +21,10 @@ Rails30::Application.configure do
|
|
|
22
21
|
|
|
23
22
|
# Only use best-standards-support built into browsers
|
|
24
23
|
config.action_dispatch.best_standards_support = :builtin
|
|
25
|
-
end
|
|
26
24
|
|
|
25
|
+
# Do not compress assets
|
|
26
|
+
config.assets.compress = false
|
|
27
|
+
|
|
28
|
+
# Expands the lines which load the assets
|
|
29
|
+
config.assets.debug = true
|
|
30
|
+
end
|