viewaide 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.2
1
+ 0.4.0
@@ -7,7 +7,6 @@ require "viewaide/helpers/grid_helper"
7
7
  require "viewaide/helpers/message_helper"
8
8
  require "viewaide/helpers/rjs_helper"
9
9
  require "viewaide/helpers/jquery_helper"
10
- require "viewaide/helpers/navigation_helper"
11
10
 
12
11
  module Viewaide
13
12
  module Helpers
@@ -20,7 +19,6 @@ module Viewaide
20
19
  include MessageHelper
21
20
  include RjsHelper
22
21
  include JqueryHelper
23
- include NavigationHelper
24
22
 
25
23
  protected
26
24
 
@@ -34,7 +34,7 @@ module Viewaide
34
34
  if messages[key].present?
35
35
  content_tag :p,
36
36
  messages[key],
37
- :class => [key, "box", "single-line"].join(" ")
37
+ :class => [key, "single-line"].join(" ")
38
38
  end
39
39
  end.join
40
40
  end
@@ -30,22 +30,16 @@ module Viewaide
30
30
  concat(html)
31
31
  end
32
32
 
33
- # Generates a <table> and appropriate <thead> elements
33
+ # Generates a <table>
34
34
  # @param [*Args]
35
35
  # @return [String]
36
36
  # @example
37
- # <% recordset :headers => ["First Column", "Second Column"] do %>
37
+ # <% recordset do %>
38
38
  # <tbody>
39
39
  # </tbody>
40
40
  # <% end %>
41
41
  # generates
42
42
  # <table class="recordset" cellspacing="0">
43
- # <thead>
44
- # <tr>
45
- # <th class="first">First Column</th>
46
- # <th class="last">Second Column</th>
47
- # </tr>
48
- # </thead>
49
43
  # <tbody>
50
44
  # </tbody>
51
45
  # </table>
@@ -53,39 +47,13 @@ module Viewaide
53
47
  options = args.extract_options!
54
48
  options[:table] ||= {}
55
49
 
56
- headers = []
57
- (options[:headers] || []).each_with_index do |header, index|
58
- head = [header].flatten
59
- opts = head.extract_options!
60
-
61
- css_classes = [] << opts.delete(:class) << case index
62
- when 0 then "first"
63
- when (options[:headers].size - 1) then "last"
64
- end
65
-
66
- headers << if head.first =~ /^\<th/
67
- th = Hpricot(head.first)
68
- th_classes = th.at("th")["class"].join
69
- th_classes = clean_css_classes([th_classes, css_classes])
70
- th.at("th")["class"] = th_classes
71
- th.to_html
72
- else
73
- content_tag :th,
74
- head.first,
75
- opts.merge(:class => clean_css_classes(css_classes))
76
- end
77
- end
78
-
79
50
  table_classes = ["recordset", args] << options[:table].delete(:class)
80
51
  css_classes = clean_css_classes(table_classes, {"last" => last_column})
81
52
 
82
- html = clean_column(css_classes) do
53
+ html = clean_column(css_classes) do
83
54
  table_options = options[:table]
84
55
  table_options.merge!(:class => css_classes, :cellspacing => 0)
85
- content_tag(:table,
86
- content_tag(:thead, content_tag(:tr, headers.join)) + \
87
- capture(&block),
88
- table_options)
56
+ content_tag(:table, capture(&block), table_options)
89
57
  end
90
58
 
91
59
  reset_cycle
@@ -6,7 +6,7 @@ class MessageHelperTest < Viewaide::ViewTestCase
6
6
 
7
7
  should "default with the correct structure" do
8
8
  show_view %(<%= messages(:structure => "Flash message") %>) do
9
- assert_select "p.structure.box.single-line", "Flash message"
9
+ assert_select "p.structure.single-line", "Flash message"
10
10
  end
11
11
  end
12
12
 
@@ -41,58 +41,12 @@ class TableHelperTest < Viewaide::ViewTestCase
41
41
  end
42
42
  end
43
43
 
44
- should "allow headers be set" do
45
- show_view %(<% recordset :headers => ["Header 1", "Header 2", "Header 3"] do %><tbody>rows</tbody><% end %>) do
46
- assert_select "table.recordset[cellspacing=0]" do
47
- assert_select "thead" do
48
- assert_select "tr" do
49
- assert_select "th.first", "Header 1"
50
- assert_select "th", "Header 2"
51
- assert_select "th.last", "Header 3"
52
- end
53
- end
54
- assert_select "tbody", "rows"
55
- end
56
- end
57
- end
58
-
59
- should "allow headers to have attributes set" do
60
- show_view %(
61
- <% recordset :headers => [["Header 1", {:class => "mine", :id => "over"}]] do %>
62
- <tbody>rows</tbody>
63
- <% end %>
64
- ) do
65
- assert_select "table.recordset[cellspacing=0]" do
66
- assert_select "thead" do
67
- assert_select "tr" do
68
- assert_select "th#over.first.mine", "Header 1"
69
- end
70
- end
71
- assert_select "tbody", "rows"
72
- end
73
- end
74
- end
75
-
76
44
  should "allow classes be assigned in a comma-delimited manner" do
77
45
  show_view %(<% recordset "my-recordset", "car-list" do %><% end %>) do
78
46
  assert_select "table.recordset.my-recordset.car-list[cellspacing=0]"
79
47
  end
80
48
  end
81
49
 
82
- should "allow additional attributes be set on the recordset" do
83
- show_view %(<% recordset :headers => %w(One Two Three), :table => {:id => "my-id", :class => "my-recordset"} do %><% end %>) do
84
- assert_select "table#my-id.recordset.my-recordset[cellspacing=0]" do
85
- assert_select "thead" do
86
- assert_select "tr" do
87
- assert_select "th", "One"
88
- assert_select "th", "Two"
89
- assert_select "th", "Three"
90
- end
91
- end
92
- end
93
- end
94
- end
95
-
96
50
  should "reset cycles for zebra_rows" do
97
51
  show_view %(
98
52
  <% recordset do %>
data/viewaide.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{viewaide}
8
- s.version = "0.3.2"
8
+ s.version = "0.4.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Joshua Clayton"]
12
- s.date = %q{2010-01-12}
12
+ s.date = %q{2010-01-31}
13
13
  s.description = %q{Making your views easier}
14
14
  s.email = %q{joshua.clayton@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -30,7 +30,6 @@ Gem::Specification.new do |s|
30
30
  "lib/viewaide/helpers/jquery_helper.rb",
31
31
  "lib/viewaide/helpers/link_helper.rb",
32
32
  "lib/viewaide/helpers/message_helper.rb",
33
- "lib/viewaide/helpers/navigation_helper.rb",
34
33
  "lib/viewaide/helpers/rjs_helper.rb",
35
34
  "lib/viewaide/helpers/structure_helper.rb",
36
35
  "lib/viewaide/helpers/table_helper.rb",
@@ -43,7 +42,6 @@ Gem::Specification.new do |s|
43
42
  "test/jquery_helper_test.rb",
44
43
  "test/link_helper_test.rb",
45
44
  "test/message_helper_test.rb",
46
- "test/navigation_helper_test.rb",
47
45
  "test/rjs_helper_test.rb",
48
46
  "test/structure_helper_test.rb",
49
47
  "test/table_helper_test.rb",
@@ -62,7 +60,6 @@ Gem::Specification.new do |s|
62
60
  "test/jquery_helper_test.rb",
63
61
  "test/link_helper_test.rb",
64
62
  "test/message_helper_test.rb",
65
- "test/navigation_helper_test.rb",
66
63
  "test/rjs_helper_test.rb",
67
64
  "test/structure_helper_test.rb",
68
65
  "test/table_helper_test.rb",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: viewaide
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Clayton
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-12 00:00:00 -05:00
12
+ date: 2010-01-31 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -65,7 +65,6 @@ files:
65
65
  - lib/viewaide/helpers/jquery_helper.rb
66
66
  - lib/viewaide/helpers/link_helper.rb
67
67
  - lib/viewaide/helpers/message_helper.rb
68
- - lib/viewaide/helpers/navigation_helper.rb
69
68
  - lib/viewaide/helpers/rjs_helper.rb
70
69
  - lib/viewaide/helpers/structure_helper.rb
71
70
  - lib/viewaide/helpers/table_helper.rb
@@ -78,7 +77,6 @@ files:
78
77
  - test/jquery_helper_test.rb
79
78
  - test/link_helper_test.rb
80
79
  - test/message_helper_test.rb
81
- - test/navigation_helper_test.rb
82
80
  - test/rjs_helper_test.rb
83
81
  - test/structure_helper_test.rb
84
82
  - test/table_helper_test.rb
@@ -119,7 +117,6 @@ test_files:
119
117
  - test/jquery_helper_test.rb
120
118
  - test/link_helper_test.rb
121
119
  - test/message_helper_test.rb
122
- - test/navigation_helper_test.rb
123
120
  - test/rjs_helper_test.rb
124
121
  - test/structure_helper_test.rb
125
122
  - test/table_helper_test.rb
@@ -1,46 +0,0 @@
1
- module Viewaide
2
- module Helpers
3
- module NavigationHelper
4
- # Generates a <li> and <a> for site navigation
5
- # @param [String] name the anchor text
6
- # @param [String] path the URL of the anchor
7
- # @param [Hash] options options hash for #link_to
8
- # @param [Hash] li_options options hash for #content_tag
9
- # @example
10
- # <%= tab "Home", root_path %>
11
- # generates
12
- # <li><a href="/">Home</a></li>
13
- #
14
- # <%= tab "Home", root_path, :compare => (controller.action_name == "show") %>
15
- # generates
16
- # <li class="active"><a href="/">Home</a></li>
17
- #
18
- # <%= tab "Home", root_path, {:class => "a"}, {:class => "li"} %>
19
- # generates
20
- # <li class="li"><a href="/" class="a">Home</a></li>
21
- def tab(name, path, options = {}, li_options = {})
22
- opts = parse_tab_options(name, li_options)
23
-
24
- active = "active" if (opts[:active] == opts[:comparison]) || opts[:compare]
25
- css_classes = [] << opts[:li_classes] << active
26
- css_classes = clean_css_classes(css_classes)
27
- li_options.merge!(:class => css_classes) if css_classes.present?
28
-
29
- content_tag :li,
30
- link_to(name, path, options),
31
- li_options
32
- end
33
-
34
- private
35
-
36
- def parse_tab_options(name, li_options = {})
37
- returning({}) do |result|
38
- result[:active] = li_options.delete(:active) || (name.gsub(/\s/, '').tableize || "")
39
- result[:comparison] = li_options.delete(:active_compare) || controller.controller_name
40
- result[:compare] = li_options.delete(:compare) || false
41
- result[:li_classes] = li_options.delete(:class)
42
- end
43
- end
44
- end
45
- end
46
- end
@@ -1,130 +0,0 @@
1
- require "test_helper"
2
-
3
- class NavigationHelperTest < ActiveSupport::TestCase
4
- include Viewaide::Helpers::NavigationHelper
5
-
6
- context "tab" do
7
- should "parse tab options properly" do
8
- expects(:parse_tab_options).with("test", {:b => 2}).returns({})
9
- stubs(:link_to)
10
- stubs(:content_tag)
11
- stubs(:clean_css_classes)
12
- tab("test", "/", {:a => 1}, {:b => 2})
13
- end
14
-
15
- should "call link_to properly" do
16
- stubs(:content_tag)
17
- stubs(:clean_css_classes)
18
- stubs(:parse_tab_options).returns({})
19
- expects(:link_to).with("test", "/path", {:a => 1, :b => 2})
20
- tab("test", "/path", {:a => 1, :b => 2})
21
- end
22
-
23
- context "compiling li classes" do
24
- setup do
25
- @result_options = { :active => "1",
26
- :comparison => "2",
27
- :compare => false,
28
- :li_classes => "one two three" }
29
- stubs(:link_to).returns("link_to")
30
- stubs(:content_tag)
31
- end
32
-
33
- should "properly use classes passed in the options" do
34
- stubs(:parse_tab_options).returns(@result_options)
35
- expects(:clean_css_classes).with(["one two three", nil])
36
- tab("test", "/")
37
- end
38
-
39
- should "properly compare information" do
40
- @result_options[:comparison] = "1"
41
- stubs(:parse_tab_options).returns(@result_options)
42
- expects(:clean_css_classes).with(["one two three", "active"])
43
- tab("test", "/")
44
- end
45
-
46
- should "properly use compare value" do
47
- @result_options[:compare] = true
48
- stubs(:parse_tab_options).returns(@result_options)
49
- expects(:clean_css_classes).with(["one two three", "active"])
50
- tab("test", "/")
51
- end
52
-
53
- should "not assign class if css_classes is blank" do
54
- @result_options[:li_classes] = nil
55
- stubs(:parse_tab_options).returns({})
56
- stubs(:clean_css_classes).returns("")
57
- expects(:content_tag).with(:li, "link_to", {})
58
- tab("test", "/")
59
- end
60
- end
61
-
62
- context "parse_tab_options" do
63
- context "calculating :active" do
64
- setup do
65
- stubs(:controller).returns(stub_everything)
66
- end
67
-
68
- should "be based on option" do
69
- result = send(:parse_tab_options, "name", {:active => "words"})
70
- assert_equal "words", result[:active]
71
- end
72
-
73
- should "be based on name" do
74
- name = tableized_name = stub
75
- name.expects(:gsub).with(/\s/, '').returns(tableized_name)
76
- tableized_name.expects(:tableize).returns("name")
77
-
78
- result = send(:parse_tab_options, name, {})
79
- assert_equal "name", result[:active]
80
- end
81
- end
82
-
83
- context "calculating :comparison" do
84
- should "be based on option" do
85
- result = send(:parse_tab_options, "name", {:active_compare => "active"})
86
- assert_equal "active", result[:comparison]
87
- end
88
-
89
- should "be based on controller name" do
90
- controller = stub(:controller_name => "controller-name")
91
- expects(:controller).returns(controller)
92
- result = send(:parse_tab_options, "name", {})
93
- assert_equal "controller-name", result[:comparison]
94
- end
95
- end
96
-
97
- context "calculating :compare" do
98
- setup do
99
- stubs(:controller).returns(stub_everything)
100
- end
101
-
102
- should "be based on option" do
103
- result = send(:parse_tab_options, "name", {:compare => true})
104
- assert_equal true, result[:compare]
105
- end
106
-
107
- should "have a default value" do
108
- result = send(:parse_tab_options, "name")
109
- assert_equal false, result[:compare]
110
- end
111
- end
112
-
113
- context "calculating :li_classes" do
114
- setup do
115
- stubs(:controller).returns(stub_everything)
116
- end
117
-
118
- should "be based on option" do
119
- result = send(:parse_tab_options, "name", {:class => "custom classes"})
120
- assert_equal "custom classes", result[:li_classes]
121
- end
122
-
123
- should "be nil if no option is passed" do
124
- result = send(:parse_tab_options, "name")
125
- assert_nil result[:li_classes]
126
- end
127
- end
128
- end
129
- end
130
- end