weppos-tabs_on_rails 0.1.0

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/CHANGELOG.rdoc ADDED
@@ -0,0 +1,5 @@
1
+ = Changelog
2
+
3
+ == Release 0.1.0
4
+
5
+ * Initial version
data/LICENSE.rdoc ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 Simone Carletti
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.rdoc ADDED
@@ -0,0 +1,10 @@
1
+ = TabsOnRails
2
+
3
+ TabsOnRails is a simple Rails plugin for creating and managing Tabs.
4
+ It provides helpers for creating tabs with a flexible interface.
5
+
6
+ *WARNING*: This library has not been released yet.
7
+ This package seems stable, but should be considered a development release.
8
+
9
+
10
+ Copyright (c) 2009 Simone Carletti, released under the MIT license
data/Rakefile ADDED
@@ -0,0 +1,52 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'echoe'
4
+
5
+ $:.unshift(File.dirname(__FILE__) + "/lib")
6
+ require 'tabs_on_rails'
7
+
8
+
9
+ PKG_NAME = ENV['PKG_NAME'] || TabsOnRails::GEM
10
+ PKG_VERSION = ENV['PKG_VERSION'] || TabsOnRails::VERSION
11
+ PKG_SUMMARY = "Simple Rails plugin for creating and managing Tabs."
12
+ PKG_FILES = FileList.new("{lib,tasks,test}/**/*") do |files|
13
+ files.include %w(*.{rdoc,rb})
14
+ files.include %w(Rakefile)
15
+ end
16
+ RUBYFORGE_PROJECT = nil
17
+
18
+ if ENV['SNAPSHOT'].to_i == 1
19
+ PKG_VERSION << "." << Time.now.utc.strftime("%Y%m%d%H%M%S")
20
+ end
21
+
22
+
23
+ Echoe.new(PKG_NAME, PKG_VERSION) do |p|
24
+ p.author = "Simone Carletti"
25
+ p.email = "weppos@weppos.net"
26
+ p.summary = PKG_SUMMARY
27
+ p.description = <<-EOD
28
+ TabsOnRails is a simple Rails plugin for creating and managing Tabs. \
29
+ It provides helpers for creating tabs with a flexible interface.
30
+ EOD
31
+ p.url = "http://code.simonecarletti.com/tabs_on_rails"
32
+ p.project = RUBYFORGE_PROJECT
33
+
34
+ p.need_zip = true
35
+ p.rcov_options = ["--main << README.rdoc -x Rakefile -x rcov"]
36
+ p.rdoc_pattern = /^(lib|CHANGELOG.rdoc|README.rdoc|LICENSE.rdoc)/
37
+
38
+ p.development_dependencies += ["rake >=0.8",
39
+ "echoe >=3.1"]
40
+ end
41
+
42
+
43
+ begin
44
+ require 'code_statistics'
45
+ desc "Show library's code statistics"
46
+ task :stats do
47
+ CodeStatistics.new(["WWW::Delicious", "lib"],
48
+ ["Tests", "test"]).to_s
49
+ end
50
+ rescue LoadError
51
+ puts "CodeStatistics (Rails) is not available"
52
+ end
data/init.rb ADDED
@@ -0,0 +1 @@
1
+ ActionController::Base.send :include, TabsOnRails::ControllerMixin
data/install.rb ADDED
@@ -0,0 +1 @@
1
+ # Install hook code here
@@ -0,0 +1,61 @@
1
+ #
2
+ # = Tabs on Rails
3
+ #
4
+ # Simple Rails plugin for creating and managing Tabs.
5
+ #
6
+ #
7
+ # Category:: Rails
8
+ # Package:: TabsOnRails
9
+ # Author:: Simone Carletti <weppos@weppos.net>
10
+ # License:: MIT License
11
+ #
12
+ #--
13
+ # SVN: $Id$
14
+ #++
15
+
16
+
17
+ module TabsOnRails
18
+
19
+ module ControllerMixin
20
+
21
+ def self.included(base)
22
+ base.extend ClassMethods
23
+ base.send :helper, HelperMethods
24
+ base.class_eval do
25
+ attr_accessor :current_tab
26
+ helper_method :current_tab
27
+ end
28
+ end
29
+
30
+ module ClassMethods
31
+
32
+ # Sets +name+ as +current_tab+.
33
+ #
34
+ # ==== Examples
35
+ #
36
+ # tab :foo
37
+ # tab :foo, :except => :new
38
+ # tab :foo, :only => [ :index, :show ]
39
+ #
40
+ def current_tab(name, options = {})
41
+ before_filter(options) do |controller|
42
+ controller.current_tab = name
43
+ end
44
+ end
45
+
46
+ end
47
+
48
+ module HelperMethods
49
+
50
+ def tabs_tag(builder = nil, &block)
51
+ raise LocalJumpError, "no block given" unless block_given?
52
+ tabs = Tabs.new(self, builder)
53
+
54
+ concat(tabs.open_tabs.to_s)
55
+ yield tabs
56
+ concat(tabs.close_tabs.to_s)
57
+ end
58
+
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,131 @@
1
+ #
2
+ # = Tabs on Rails
3
+ #
4
+ # Simple Rails plugin for creating and managing Tabs.
5
+ #
6
+ #
7
+ # Category:: Rails
8
+ # Package:: TabsOnRails
9
+ # Author:: Simone Carletti <weppos@weppos.net>
10
+ # License:: MIT License
11
+ #
12
+ #--
13
+ # SVN: $Id$
14
+ #++
15
+
16
+
17
+ module TabsOnRails
18
+
19
+ class Tabs
20
+
21
+ #
22
+ # = Builder
23
+ #
24
+ # The Builder class represents the interface for any custom Builder.
25
+ #
26
+ # To create a custom Builder extend this class
27
+ # and implement the following abstract methods:
28
+ #
29
+ # * tab_for(args)
30
+ #
31
+ class Builder
32
+
33
+ # Initializes a new builder with +context+.
34
+ def initialize(context)
35
+ @context = context
36
+ end
37
+
38
+ # Returns true if +tab+ is the +current_tab+.
39
+ #
40
+ # ==== Examples
41
+ #
42
+ # class MyController < ApplicationController
43
+ # tab :foo
44
+ # end
45
+ #
46
+ # current_tab? :foo # => true
47
+ # current_tab? 'foo' # => true
48
+ # current_tab? :bar # => false
49
+ # current_tab? 'bar' # => false
50
+ #
51
+ def current_tab?(tab)
52
+ tab.to_s == @context.current_tab.to_s
53
+ end
54
+
55
+ # Creates and returns a tab with given +args+.
56
+ #
57
+ # ==== Raises
58
+ #
59
+ # NotImplemented:: you should implement this method in your custom Builder.
60
+ #
61
+ def tab_for(*args)
62
+ raise NotImplementedError
63
+ end
64
+
65
+ # Overwrite this method to use a custom open tag for your tabs.
66
+ def open_tabs
67
+ end
68
+
69
+ # Overwrite this method to use a custom close tag for your tabs.
70
+ def close_tabs
71
+ end
72
+
73
+ end
74
+
75
+ #
76
+ # = Tabs Builder
77
+ #
78
+ # The TabsBuilder is and example of custom Builder.
79
+ # It creates a new tab
80
+ #
81
+ class TabsBuilder < Builder
82
+
83
+ # Implements Builder#tab_for.
84
+ # Returns a link_to +tab+ with +name+ and +options+ if +tab+ is not the current tab,
85
+ # a simple tab name wrapped by a span tag otherwise.
86
+ #
87
+ # current_tab? :foo # => true
88
+ #
89
+ # tab_for :foo, 'Foo', foo_path
90
+ # # => <li><span>Foo</span></li>
91
+ #
92
+ # tab_for :bar, 'Bar', bar_path
93
+ # # => <li><a href="/link/to/bar">Bar</a></li>
94
+ #
95
+ def tab_for(tab, name, options)
96
+ content = @context.link_to_unless(current_tab?(tab), name, options) do
97
+ @context.content_tag(:span, name)
98
+ end
99
+ @context.content_tag(:li, content)
100
+ end
101
+
102
+ # Implements Builder#open_tabs.
103
+ def open_tabs
104
+ '<ul>'
105
+ end
106
+
107
+ # Implements Builder#close_tabs.
108
+ def close_tabs
109
+ '</ul>'
110
+ end
111
+
112
+ end
113
+
114
+ def initialize(context, builder = nil, &block)
115
+ @context = context
116
+ @builder = (builder || TabsBuilder).new(@context)
117
+ end
118
+
119
+ %w(open_tabs close_tabs).each do |method|
120
+ define_method(method) do
121
+ @builder.send(method)
122
+ end
123
+ end
124
+
125
+ def method_missing(*args)
126
+ @builder.tab_for(*args)
127
+ end
128
+
129
+ end
130
+
131
+ end
@@ -0,0 +1,31 @@
1
+ #
2
+ # = Tabs on Rails
3
+ #
4
+ # Simple Rails plugin for creating and managing Tabs.
5
+ #
6
+ #
7
+ # Category:: Rails
8
+ # Package:: TabsOnRails
9
+ # Author:: Simone Carletti <weppos@weppos.net>
10
+ # License:: MIT License
11
+ #
12
+ #--
13
+ # SVN: $Id$
14
+ #++
15
+
16
+
17
+ module TabsOnRails
18
+
19
+ module Version
20
+ MAJOR = 0
21
+ MINOR = 1
22
+ TINY = 0
23
+
24
+ STRING = [MAJOR, MINOR, TINY].join('.')
25
+ end
26
+
27
+ VERSION = Version::STRING
28
+ STATUS = 'alpha'
29
+ BUILD = ''.match(/(\d+)/).to_a.first
30
+
31
+ end
@@ -0,0 +1,28 @@
1
+ #
2
+ # = Tabs on Rails
3
+ #
4
+ # Simple Rails plugin for creating and managing Tabs.
5
+ #
6
+ #
7
+ # Category:: Rails
8
+ # Package:: TabsOnRails
9
+ # Author:: Simone Carletti <weppos@weppos.net>
10
+ # License:: MIT License
11
+ #
12
+ #--
13
+ # SVN: $Id$
14
+ #++
15
+
16
+
17
+ require 'tabs_on_rails/controller_mixin'
18
+ require 'tabs_on_rails/tabs'
19
+ require 'tabs_on_rails/version'
20
+
21
+
22
+ module TabsOnRails
23
+
24
+ NAME = 'Tabs on Rails'
25
+ GEM = 'tabs_on_rails'
26
+ AUTHOR = 'Simone Carletti <weppos@weppos.net>'
27
+
28
+ end
@@ -0,0 +1,37 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{tabs_on_rails}
5
+ s.version = "0.1.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Simone Carletti"]
9
+ s.date = %q{2009-02-15}
10
+ s.description = %q{TabsOnRails is a simple Rails plugin for creating and managing Tabs. It provides helpers for creating tabs with a flexible interface.}
11
+ s.email = %q{weppos@weppos.net}
12
+ s.extra_rdoc_files = ["CHANGELOG.rdoc", "lib/tabs_on_rails/controller_mixin.rb", "lib/tabs_on_rails/tabs.rb", "lib/tabs_on_rails/version.rb", "lib/tabs_on_rails.rb", "LICENSE.rdoc", "README.rdoc"]
13
+ s.files = ["CHANGELOG.rdoc", "init.rb", "install.rb", "lib/tabs_on_rails/controller_mixin.rb", "lib/tabs_on_rails/tabs.rb", "lib/tabs_on_rails/version.rb", "lib/tabs_on_rails.rb", "LICENSE.rdoc", "Manifest", "Rakefile", "README.rdoc", "tasks/tabs_on_rails_tasks.rake", "test/builder_test.rb", "test/controller_mixin_helpers_test.rb", "test/controller_mixin_test.rb", "test/fixtures/mixin/standard.html.erb", "test/tabs_builder_test.rb", "test/tabs_on_rails_test.rb", "test/test_helper.rb", "uninstall.rb", "tabs_on_rails.gemspec"]
14
+ s.has_rdoc = true
15
+ s.homepage = %q{http://code.simonecarletti.com/tabs_on_rails}
16
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Tabs_on_rails", "--main", "README.rdoc"]
17
+ s.require_paths = ["lib"]
18
+ s.rubygems_version = %q{1.3.1}
19
+ s.summary = %q{Simple Rails plugin for creating and managing Tabs.}
20
+ s.test_files = ["test/builder_test.rb", "test/controller_mixin_helpers_test.rb", "test/controller_mixin_test.rb", "test/tabs_builder_test.rb", "test/tabs_on_rails_test.rb", "test/test_helper.rb"]
21
+
22
+ if s.respond_to? :specification_version then
23
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
24
+ s.specification_version = 2
25
+
26
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
27
+ s.add_development_dependency(%q<rake>, [">= 0.8"])
28
+ s.add_development_dependency(%q<echoe>, [">= 3.1"])
29
+ else
30
+ s.add_dependency(%q<rake>, [">= 0.8"])
31
+ s.add_dependency(%q<echoe>, [">= 3.1"])
32
+ end
33
+ else
34
+ s.add_dependency(%q<rake>, [">= 0.8"])
35
+ s.add_dependency(%q<echoe>, [">= 3.1"])
36
+ end
37
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :tabs_on_rails do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,32 @@
1
+ require 'test_helper'
2
+
3
+ class BuilderTest < ActiveSupport::TestCase
4
+
5
+ def setup
6
+ @template = Template.new
7
+ @builder = TabsOnRails::Tabs::Builder.new(@template)
8
+ end
9
+
10
+ def test_initialize_should_require_context
11
+ assert_raise(ArgumentError) { TabsOnRails::Tabs::Builder.new }
12
+ assert_nothing_raised { TabsOnRails::Tabs::Builder.new(@template) }
13
+ end
14
+
15
+ def test_initialize_should_set_context
16
+ assert_equal(@template, @builder.instance_variable_get(:'@context'))
17
+ end
18
+
19
+ def test_current_tab_question_should_return_true_if_tab_matches_current_tab
20
+ assert( @builder.current_tab?(:dashboard))
21
+ assert( @builder.current_tab?('dashboard'))
22
+ assert(!@builder.current_tab?(:welcome))
23
+ assert(!@builder.current_tab?('welcome'))
24
+ end
25
+
26
+ def test_tab_for_should_raise_not_implemented_error
27
+ assert_raise(NotImplementedError) { @builder.tab_for }
28
+ assert_raise(NotImplementedError) { @builder.tab_for('foo') }
29
+ assert_raise(NotImplementedError) { @builder.tab_for('foo', 'bar') }
30
+ end
31
+
32
+ end
@@ -0,0 +1,55 @@
1
+ require 'test_helper'
2
+
3
+ class NilBoundariesBuilder < TabsOnRails::Tabs::Builder
4
+ def tab_for(tab, name, *args)
5
+ @context.content_tag(:span, name)
6
+ end
7
+ end
8
+
9
+ class NilOpenBoundaryBuilder < NilBoundariesBuilder
10
+ def close_tabs
11
+ '<br />'
12
+ end
13
+ end
14
+
15
+ class NilCloseBoundaryBuilder < NilBoundariesBuilder
16
+ def open_tabs
17
+ '<br />'
18
+ end
19
+ end
20
+
21
+
22
+ class ControllerMixinHelpersTest < ActionView::TestCase
23
+ include ActionView::Helpers::TagHelper
24
+ include ActionView::Helpers::UrlHelper
25
+ include TabsOnRails::ControllerMixin::HelperMethods
26
+
27
+ def test_tabs_tag_should_raise_local_jump_error_without_block
28
+ assert_raise(LocalJumpError) { tabs_tag }
29
+ end
30
+
31
+ def test_tabs_tag_should_not_concat_open_close_tabs_when_nil
32
+ content = tabs_tag(NilBoundariesBuilder) do |t|
33
+ concat t.single('Single', '#')
34
+ end
35
+
36
+ assert_dom_equal('<span>Single</span>', content)
37
+ end
38
+
39
+ def test_tabs_tag_should_not_concat_open_tabs_when_nil
40
+ content = tabs_tag(NilOpenBoundaryBuilder) do |t|
41
+ concat t.single('Single', '#')
42
+ end
43
+
44
+ assert_dom_equal('<span>Single</span><br />', content)
45
+ end
46
+
47
+ def test_tabs_tag_should_not_concat_close_tabs_when_nil
48
+ content = tabs_tag(NilCloseBoundaryBuilder) do |t|
49
+ concat t.single('Single', '#')
50
+ end
51
+
52
+ assert_dom_equal('<br /><span>Single</span>', content)
53
+ end
54
+
55
+ end
@@ -0,0 +1,56 @@
1
+ require 'test_helper'
2
+
3
+ class MixinController < ActionController::Base
4
+ def self.controller_name; "mixin"; end
5
+ def self.controller_path; "mixin"; end
6
+
7
+ layout false
8
+
9
+ current_tab :dashboard
10
+ current_tab :welcome, :only => [ :action_welcome ]
11
+
12
+ def method_missing(method, *args)
13
+ if method =~ /^action_(.*)/
14
+ render :action => (params[:template] || $1)
15
+ end
16
+ end
17
+
18
+ def rescue_action(e) raise end
19
+ end
20
+
21
+ MixinController.view_paths = [ File.dirname(__FILE__) + "/fixtures/" ]
22
+
23
+
24
+ class ControllerMixinTest < ActiveSupport::TestCase
25
+
26
+ def setup
27
+ @controller = MixinController.new
28
+ @request = ActionController::TestRequest.new
29
+ @response = ActionController::TestResponse.new
30
+ end
31
+
32
+ def test_controller_should_include_current_tab_accessors
33
+ assert_equal(nil, @controller.current_tab)
34
+ @controller.current_tab = :footab
35
+ assert_equal(:footab, @controller.current_tab)
36
+ end
37
+
38
+ def test_current_tab_should_be_dashboard
39
+ get :action_dashboard, :template => 'standard'
40
+ assert_equal(:dashboard, @controller.current_tab)
41
+ assert_equal(%Q{<ul>
42
+ <li><span>Dashboard</span></li>
43
+ <li><a href="/w">Welcome</a></li>
44
+ </ul>}, @response.body)
45
+ end
46
+
47
+ def test_current_tab_should_be_welcome_only_for_action_welcone
48
+ get :action_welcome, :template => 'standard'
49
+ assert_equal(:welcome, @controller.current_tab)
50
+ assert_equal(%Q{<ul>
51
+ <li><a href="/d">Dashboard</a></li>
52
+ <li><span>Welcome</span></li>
53
+ </ul>}, @response.body)
54
+ end
55
+
56
+ end
@@ -0,0 +1,4 @@
1
+ <% tabs_tag do |tabs| %>
2
+ <%= tabs.dashboard 'Dashboard', '/d' %>
3
+ <%= tabs.welcome 'Welcome', '/w' %>
4
+ <% end -%>
@@ -0,0 +1,32 @@
1
+ require 'test_helper'
2
+
3
+ class Template
4
+ include ActionView::Helpers::TagHelper
5
+ include ActionView::Helpers::UrlHelper
6
+
7
+ def current_tab; :dashboard; end
8
+ end
9
+
10
+
11
+ class TabBuilderTest < ActiveSupport::TestCase
12
+
13
+ def setup
14
+ @template = Template.new
15
+ @builder = TabsOnRails::Tabs::TabsBuilder.new(@template)
16
+ end
17
+
18
+ def test_should_implement_builder
19
+ assert_equal(TabsOnRails::Tabs::Builder, TabsOnRails::Tabs::TabsBuilder.superclass)
20
+ end
21
+
22
+ def test_tab_for_should_return_link_to_unless_current_tab
23
+ assert_dom_equal('<li><a href="#">Welcome</a></li>', @builder.tab_for(:welcome, 'Welcome', '#'))
24
+ assert_dom_equal('<li><a href="http://foobar.com/">Foo Bar</a></li>', @builder.tab_for(:welcome, 'Foo Bar', 'http://foobar.com/'))
25
+ end
26
+
27
+ def test_tab_for_should_return_span_if_current_tab
28
+ assert_dom_equal('<li><span>Dashboard</span></li>', @builder.tab_for(:dashboard, 'Dashboard', '#'))
29
+ assert_dom_equal('<li><span>Foo Bar</span></li>', @builder.tab_for(:dashboard, 'Foo Bar', '#'))
30
+ end
31
+
32
+ end
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ class TabsOnRailsTest < ActiveSupport::TestCase
4
+
5
+ def test_nothing_because_I_have_the_other_test_files
6
+ assert true
7
+ end
8
+
9
+ end
@@ -0,0 +1,25 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require 'mocha'
4
+
5
+ require 'active_support'
6
+ require 'active_support/test_case'
7
+ require 'action_controller'
8
+ require 'action_controller/cgi_ext'
9
+ require 'action_controller/test_process'
10
+ require 'action_view/test_case'
11
+
12
+ $:.unshift File.dirname(__FILE__) + '/../lib'
13
+
14
+ # simulate the inclusion as Rails does loading the init.rb file.
15
+ require 'tabs_on_rails'
16
+ require File.dirname(__FILE__) + '/../init.rb'
17
+
18
+ RAILS_ROOT = '.' unless defined? RAILS_ROOT
19
+ RAILS_ENV = 'test' unless defined? RAILS_ENV
20
+
21
+ ActionController::Base.logger = nil
22
+ ActionController::Routing::Routes.reload rescue nil
23
+
24
+ # Unit tests for Helpers are based on unit tests created and developed by Rails core team.
25
+ # See action_pack/test/abstract_unit for more details.
data/uninstall.rb ADDED
@@ -0,0 +1 @@
1
+ # Uninstall hook code here
metadata ADDED
@@ -0,0 +1,108 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: weppos-tabs_on_rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Simone Carletti
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-02-15 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rake
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0.8"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: echoe
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "3.1"
34
+ version:
35
+ description: TabsOnRails is a simple Rails plugin for creating and managing Tabs. It provides helpers for creating tabs with a flexible interface.
36
+ email: weppos@weppos.net
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - CHANGELOG.rdoc
43
+ - lib/tabs_on_rails/controller_mixin.rb
44
+ - lib/tabs_on_rails/tabs.rb
45
+ - lib/tabs_on_rails/version.rb
46
+ - lib/tabs_on_rails.rb
47
+ - LICENSE.rdoc
48
+ - README.rdoc
49
+ files:
50
+ - CHANGELOG.rdoc
51
+ - init.rb
52
+ - install.rb
53
+ - lib/tabs_on_rails/controller_mixin.rb
54
+ - lib/tabs_on_rails/tabs.rb
55
+ - lib/tabs_on_rails/version.rb
56
+ - lib/tabs_on_rails.rb
57
+ - LICENSE.rdoc
58
+ - Manifest
59
+ - Rakefile
60
+ - README.rdoc
61
+ - tasks/tabs_on_rails_tasks.rake
62
+ - test/builder_test.rb
63
+ - test/controller_mixin_helpers_test.rb
64
+ - test/controller_mixin_test.rb
65
+ - test/fixtures/mixin/standard.html.erb
66
+ - test/tabs_builder_test.rb
67
+ - test/tabs_on_rails_test.rb
68
+ - test/test_helper.rb
69
+ - uninstall.rb
70
+ - tabs_on_rails.gemspec
71
+ has_rdoc: true
72
+ homepage: http://code.simonecarletti.com/tabs_on_rails
73
+ post_install_message:
74
+ rdoc_options:
75
+ - --line-numbers
76
+ - --inline-source
77
+ - --title
78
+ - Tabs_on_rails
79
+ - --main
80
+ - README.rdoc
81
+ require_paths:
82
+ - lib
83
+ required_ruby_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: "0"
88
+ version:
89
+ required_rubygems_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: "1.2"
94
+ version:
95
+ requirements: []
96
+
97
+ rubyforge_project:
98
+ rubygems_version: 1.2.0
99
+ signing_key:
100
+ specification_version: 2
101
+ summary: Simple Rails plugin for creating and managing Tabs.
102
+ test_files:
103
+ - test/builder_test.rb
104
+ - test/controller_mixin_helpers_test.rb
105
+ - test/controller_mixin_test.rb
106
+ - test/tabs_builder_test.rb
107
+ - test/tabs_on_rails_test.rb
108
+ - test/test_helper.rb