tabletastic 0.1.1 → 0.1.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/VERSION +1 -1
 - data/lib/tabletastic.rb +9 -8
 - data/spec/spec_helper.rb +2 -0
 - data/spec/tabletastic_spec.rb +32 -0
 - data/tabletastic.gemspec +2 -2
 - metadata +2 -2
 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            0.1. 
     | 
| 
      
 1 
     | 
    
         
            +
            0.1.2
         
     | 
    
        data/lib/tabletastic.rb
    CHANGED
    
    | 
         @@ -49,13 +49,13 @@ module Tabletastic 
     | 
|
| 
       49 
49 
     | 
    
         
             
                  options = args.extract_options!
         
     | 
| 
       50 
50 
     | 
    
         
             
                  if block_given?
         
     | 
| 
       51 
51 
     | 
    
         
             
                    yield self
         
     | 
| 
       52 
     | 
    
         
            -
                    action_cells(options[:actions])
         
     | 
| 
      
 52 
     | 
    
         
            +
                    action_cells(options[:actions], options[:action_prefix])
         
     | 
| 
       53 
53 
     | 
    
         
             
                    @template.concat(head)
         
     | 
| 
       54 
54 
     | 
    
         
             
                    @template.concat(body)
         
     | 
| 
       55 
55 
     | 
    
         
             
                  else
         
     | 
| 
       56 
56 
     | 
    
         
             
                    @fields = args.empty? ? fields : args
         
     | 
| 
       57 
57 
     | 
    
         
             
                    @field_labels = fields.map { |f| f.to_s.humanize }
         
     | 
| 
       58 
     | 
    
         
            -
                    action_cells(options[:actions])
         
     | 
| 
      
 58 
     | 
    
         
            +
                    action_cells(options[:actions], options[:action_prefix])
         
     | 
| 
       59 
59 
     | 
    
         
             
                    [head, body].join("")
         
     | 
| 
       60 
60 
     | 
    
         
             
                  end
         
     | 
| 
       61 
61 
     | 
    
         
             
                end
         
     | 
| 
         @@ -164,26 +164,27 @@ module Tabletastic 
     | 
|
| 
       164 
164 
     | 
    
         
             
                end
         
     | 
| 
       165 
165 
     | 
    
         | 
| 
       166 
166 
     | 
    
         
             
                # Used internally to build up cells for common CRUD actions
         
     | 
| 
       167 
     | 
    
         
            -
                def action_cells(actions)
         
     | 
| 
      
 167 
     | 
    
         
            +
                def action_cells(actions, prefix = nil)
         
     | 
| 
       168 
168 
     | 
    
         
             
                  return if actions.blank?
         
     | 
| 
       169 
169 
     | 
    
         
             
                  actions = [actions] if !actions.respond_to?(:each)
         
     | 
| 
       170 
170 
     | 
    
         
             
                  actions = [:show, :edit, :destroy] if actions == [:all]
         
     | 
| 
       171 
171 
     | 
    
         
             
                  actions.each do |action|
         
     | 
| 
       172 
     | 
    
         
            -
                    action_link(action.to_sym)
         
     | 
| 
      
 172 
     | 
    
         
            +
                    action_link(action.to_sym, prefix)
         
     | 
| 
       173 
173 
     | 
    
         
             
                  end
         
     | 
| 
       174 
174 
     | 
    
         
             
                end
         
     | 
| 
       175 
175 
     | 
    
         | 
| 
       176 
176 
     | 
    
         
             
                # Dynamically builds links for the action
         
     | 
| 
       177 
     | 
    
         
            -
                def action_link(action)
         
     | 
| 
      
 177 
     | 
    
         
            +
                def action_link(action, prefix)
         
     | 
| 
       178 
178 
     | 
    
         
             
                  html_class = "actions #{action.to_s}_link"
         
     | 
| 
       179 
179 
     | 
    
         
             
                  self.cell(action, :heading => "", :cell_html => {:class => html_class}) do |resource|
         
     | 
| 
      
 180 
     | 
    
         
            +
                    compound_resource = [prefix, resource].compact
         
     | 
| 
       180 
181 
     | 
    
         
             
                    case action
         
     | 
| 
       181 
182 
     | 
    
         
             
                    when :show
         
     | 
| 
       182 
     | 
    
         
            -
                      @template.link_to("Show",  
     | 
| 
      
 183 
     | 
    
         
            +
                      @template.link_to("Show", compound_resource)
         
     | 
| 
       183 
184 
     | 
    
         
             
                    when :edit
         
     | 
| 
       184 
     | 
    
         
            -
                      @template.link_to("Edit", @template.polymorphic_path( 
     | 
| 
      
 185 
     | 
    
         
            +
                      @template.link_to("Edit", @template.polymorphic_path(compound_resource, :action => :edit))
         
     | 
| 
       185 
186 
     | 
    
         
             
                    when :destroy
         
     | 
| 
       186 
     | 
    
         
            -
                      @template.link_to("Destroy",  
     | 
| 
      
 187 
     | 
    
         
            +
                      @template.link_to("Destroy", compound_resource, :method => :delete)
         
     | 
| 
       187 
188 
     | 
    
         
             
                    end
         
     | 
| 
       188 
189 
     | 
    
         
             
                  end
         
     | 
| 
       189 
190 
     | 
    
         
             
                end
         
     | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | 
         @@ -64,7 +64,9 @@ module TabletasticSpecHelper 
     | 
|
| 
       64 
64 
     | 
    
         | 
| 
       65 
65 
     | 
    
         
             
              def mock_everything
         
     | 
| 
       66 
66 
     | 
    
         
             
                def post_path(post); "/posts/#{post.id}"; end
         
     | 
| 
      
 67 
     | 
    
         
            +
                def admin_post_path(post); "/admin/posts/#{post.id}"; end
         
     | 
| 
       67 
68 
     | 
    
         
             
                def edit_post_path(post); "/posts/#{post.id}/edit"; end
         
     | 
| 
      
 69 
     | 
    
         
            +
                def edit_admin_post_path(post); "/admin/posts/#{post.id}/edit"; end
         
     | 
| 
       68 
70 
     | 
    
         | 
| 
       69 
71 
     | 
    
         
             
                # Sometimes we need a mock @post object and some Authors for belongs_to
         
     | 
| 
       70 
72 
     | 
    
         
             
                @post = mock('post')
         
     | 
    
        data/spec/tabletastic_spec.rb
    CHANGED
    
    | 
         @@ -178,6 +178,38 @@ describe "Tabletastic#table_for" do 
     | 
|
| 
       178 
178 
     | 
    
         
             
                      output_buffer.should have_tag("td:nth-child(4) a[@href=/posts/#{@post.id}/edit]", "Edit")
         
     | 
| 
       179 
179 
     | 
    
         
             
                      output_buffer.should have_tag("td:nth-child(5) a[@href=/posts/#{@post.id}]", "Destroy")
         
     | 
| 
       180 
180 
     | 
    
         
             
                    end
         
     | 
| 
      
 181 
     | 
    
         
            +
             
     | 
| 
      
 182 
     | 
    
         
            +
                    context "with options[:actions_prefix]" do
         
     | 
| 
      
 183 
     | 
    
         
            +
                      it "includes path to admin post for :show" do
         
     | 
| 
      
 184 
     | 
    
         
            +
                        table_for(@posts) do |t|
         
     | 
| 
      
 185 
     | 
    
         
            +
                          concat(t.data(:actions => :show, :action_prefix => :admin))
         
     | 
| 
      
 186 
     | 
    
         
            +
                        end
         
     | 
| 
      
 187 
     | 
    
         
            +
                        output_buffer.should have_tag("td:nth-child(3) a[@href=/admin/posts/#{@post.id}]", "Show")
         
     | 
| 
      
 188 
     | 
    
         
            +
                      end
         
     | 
| 
      
 189 
     | 
    
         
            +
             
     | 
| 
      
 190 
     | 
    
         
            +
                      it "includes path to admin post for :edit" do
         
     | 
| 
      
 191 
     | 
    
         
            +
                        table_for(@posts) do |t|
         
     | 
| 
      
 192 
     | 
    
         
            +
                          concat(t.data(:actions => :edit, :action_prefix => :admin))
         
     | 
| 
      
 193 
     | 
    
         
            +
                        end
         
     | 
| 
      
 194 
     | 
    
         
            +
                        output_buffer.should have_tag("td:nth-child(3) a[@href=/admin/posts/#{@post.id}/edit]", "Edit")
         
     | 
| 
      
 195 
     | 
    
         
            +
                      end
         
     | 
| 
      
 196 
     | 
    
         
            +
             
     | 
| 
      
 197 
     | 
    
         
            +
                      it "includes path to admin post for :destroy" do
         
     | 
| 
      
 198 
     | 
    
         
            +
                        table_for(@posts) do |t|
         
     | 
| 
      
 199 
     | 
    
         
            +
                          concat(t.data(:actions => :destroy, :action_prefix => :admin))
         
     | 
| 
      
 200 
     | 
    
         
            +
                        end
         
     | 
| 
      
 201 
     | 
    
         
            +
                        output_buffer.should have_tag("td:nth-child(3) a[@href=/admin/posts/#{@post.id}]", "Destroy")
         
     | 
| 
      
 202 
     | 
    
         
            +
                      end
         
     | 
| 
      
 203 
     | 
    
         
            +
             
     | 
| 
      
 204 
     | 
    
         
            +
                      it "includes path to admin for all actions" do
         
     | 
| 
      
 205 
     | 
    
         
            +
                        table_for(@posts) do |t|
         
     | 
| 
      
 206 
     | 
    
         
            +
                          concat(t.data(:actions => :all, :action_prefix => :admin))
         
     | 
| 
      
 207 
     | 
    
         
            +
                        end
         
     | 
| 
      
 208 
     | 
    
         
            +
                        output_buffer.should have_tag("td:nth-child(3) a[@href=/admin/posts/#{@post.id}]", "Show")
         
     | 
| 
      
 209 
     | 
    
         
            +
                        output_buffer.should have_tag("td:nth-child(4) a[@href=/admin/posts/#{@post.id}/edit]", "Edit")
         
     | 
| 
      
 210 
     | 
    
         
            +
                        output_buffer.should have_tag("td:nth-child(5) a[@href=/admin/posts/#{@post.id}]", "Destroy")
         
     | 
| 
      
 211 
     | 
    
         
            +
                      end
         
     | 
| 
      
 212 
     | 
    
         
            +
                    end
         
     | 
| 
       181 
213 
     | 
    
         
             
                  end
         
     | 
| 
       182 
214 
     | 
    
         | 
| 
       183 
215 
     | 
    
         
             
                  context "with a list of attributes" do
         
     | 
    
        data/tabletastic.gemspec
    CHANGED
    
    | 
         @@ -5,11 +5,11 @@ 
     | 
|
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       7 
7 
     | 
    
         
             
              s.name = %q{tabletastic}
         
     | 
| 
       8 
     | 
    
         
            -
              s.version = "0.1. 
     | 
| 
      
 8 
     | 
    
         
            +
              s.version = "0.1.2"
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         
     | 
| 
       11 
11 
     | 
    
         
             
              s.authors = ["Joshua Davey"]
         
     | 
| 
       12 
     | 
    
         
            -
              s.date = %q{2009-11- 
     | 
| 
      
 12 
     | 
    
         
            +
              s.date = %q{2009-11-25}
         
     | 
| 
       13 
13 
     | 
    
         
             
              s.description = %q{A table builder for active record collections   that produces semantically rich and accessible markup}
         
     | 
| 
       14 
14 
     | 
    
         
             
              s.email = %q{josh@joshuadavey.com}
         
     | 
| 
       15 
15 
     | 
    
         
             
              s.extra_rdoc_files = [
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: tabletastic
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.2
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors: 
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Joshua Davey
         
     | 
| 
         @@ -9,7 +9,7 @@ autorequire: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
            date: 2009-11- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2009-11-25 00:00:00 -06:00
         
     | 
| 
       13 
13 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     |