display_for 0.1.8 → 0.1.9

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/Rakefile CHANGED
@@ -18,7 +18,7 @@ Jeweler::Tasks.new do |gem|
18
18
  gem.homepage = "http://github.com/mateomurphy/display_for"
19
19
  gem.license = "MIT"
20
20
  gem.summary = %Q{Rails library for displaying data}
21
- gem.description = %Q{A Rails library for display data, in tabular and other formats}
21
+ gem.description = %Q{A Rails library for displaying data, in tabular and other formats}
22
22
  gem.email = "mateo.murphy@gmail.com"
23
23
  gem.authors = ["Mateo Murphy"]
24
24
  # dependencies defined in Gemfile
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.8
1
+ 0.1.9
data/display_for.gemspec CHANGED
@@ -5,12 +5,12 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "display_for"
8
- s.version = "0.1.8"
8
+ s.version = "0.1.9"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Mateo Murphy"]
12
- s.date = "2012-10-23"
13
- s.description = "A Rails library for display data, in tabular and other formats"
12
+ s.date = "2012-11-21"
13
+ s.description = "A Rails library for displaying data, in tabular and other formats"
14
14
  s.email = "mateo.murphy@gmail.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
@@ -31,6 +31,7 @@ Gem::Specification.new do |s|
31
31
  "lib/display_for/builder/base.rb",
32
32
  "lib/display_for/builder/collection_base.rb",
33
33
  "lib/display_for/builder/csv.rb",
34
+ "lib/display_for/builder/list.rb",
34
35
  "lib/display_for/builder/resource_base.rb",
35
36
  "lib/display_for/builder/table.rb",
36
37
  "lib/display_for/builder/view.rb",
@@ -40,6 +41,7 @@ Gem::Specification.new do |s|
40
41
  "lib/display_for/element/base.rb",
41
42
  "lib/display_for/element/html.rb",
42
43
  "lib/display_for/helper.rb",
44
+ "spec/lib/builder/list_spec.rb",
43
45
  "spec/lib/builder/table_spec.rb",
44
46
  "spec/spec_helper.rb",
45
47
  "spec/support/test_model.rb",
@@ -0,0 +1,40 @@
1
+ module DisplayFor
2
+ module Builder
3
+ class List < CollectionBase
4
+
5
+ def build_row(resource)
6
+ result = ''
7
+ @attributes.each do |attribute|
8
+ result << content_tag(:span, attribute.content(resource), attribute.html_options)
9
+ end
10
+ result << content_tag(:span, build_actions(resource)) if @actions.any?
11
+
12
+ options = {}
13
+ options[:id] = "#{@resource_class}_#{resource.id}".underscore if resource
14
+ content_tag(:li, result.html_safe, options) << "\n"
15
+ end
16
+
17
+ def build_actions(resource)
18
+ result = []
19
+
20
+ @actions.each do |action|
21
+ result << action.content(resource)
22
+ end
23
+
24
+ result.join("&nbsp;").html_safe
25
+ end
26
+
27
+ def to_s
28
+ result = ''.html_safe
29
+
30
+ @collection.each do |resource|
31
+ result << build_row(resource)
32
+ end
33
+
34
+ html_options[:class] ||= "list #{@resource_class.to_s.underscore}-list"
35
+ content_tag(:ul, result, html_options).html_safe
36
+ end
37
+
38
+ end
39
+ end
40
+ end
@@ -3,6 +3,7 @@ module DisplayFor
3
3
  autoload :Base, 'display_for/builder/base'
4
4
  autoload :CollectionBase, 'display_for/builder/collection_base'
5
5
  autoload :Csv, 'display_for/builder/csv'
6
+ autoload :List, 'display_for/builder/list'
6
7
  autoload :ResourceBase, 'display_for/builder/resource_base'
7
8
  autoload :Table, 'display_for/builder/table'
8
9
  autoload :View, 'display_for/builder/view'
@@ -1,5 +1,9 @@
1
1
  module DisplayFor
2
2
  module Helper
3
+ def list_for(resource_class, collection, html_options={}, &block)
4
+ Builder::List.new(resource_class, collection, html_options, self, &block).to_s
5
+ end
6
+
3
7
  def table_for(resource_class, collection, html_options={}, &block)
4
8
  Builder::Table.new(resource_class, collection, html_options, self, &block).to_s
5
9
  end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ LIST_OUTPUT = %q|<ul class="list test_model-list"><li id="test_model_1"><span>1</span><span>foo</span><span>bar</span></li>
4
+ </ul>|
5
+
6
+ module DisplayFor
7
+ module Builder
8
+ describe List, :focus => true do
9
+
10
+ subject :table do
11
+ List.new(TestModel, [TestModel.new(1, 'foo', 'bar')], {}, TestTemplate.new) do |t|
12
+ t.attribute :id
13
+ t.attribute :first_name
14
+ t.attribute :last_name
15
+ end
16
+ end
17
+
18
+ describe '#to_s' do
19
+ it 'renders the table' do
20
+ table.to_s.should eq(LIST_OUTPUT)
21
+ end
22
+ end
23
+
24
+ end
25
+ end
26
+ end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- OUTPUT = %q|<table class="table table-bordered table-striped test_model-table"><thead><tr><th class="col_id">id</th><th class="col_first_name">first_name</th><th class="col_last_name">last_name</th></tr></thead>
3
+ TABLE_OUTPUT = %q|<table class="table table-bordered table-striped test_model-table"><thead><tr><th class="col_id">id</th><th class="col_first_name">first_name</th><th class="col_last_name">last_name</th></tr></thead>
4
4
  <tbody><tr id="test_model_1"><td>1</td><td>foo</td><td>bar</td></tr>
5
5
  </tbody><tfoot><tr><td colspan="3">&nbsp;</td></tr>
6
6
  </tfoot></table>|
@@ -24,7 +24,7 @@ module DisplayFor
24
24
 
25
25
  describe '#to_s' do
26
26
  it 'renders the table' do
27
- table.to_s.should eq(OUTPUT)
27
+ table.to_s.should eq(TABLE_OUTPUT)
28
28
  end
29
29
  end
30
30
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: display_for
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-23 00:00:00.000000000 Z
12
+ date: 2012-11-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -107,7 +107,7 @@ dependencies:
107
107
  - - ! '>='
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
- description: A Rails library for display data, in tabular and other formats
110
+ description: A Rails library for displaying data, in tabular and other formats
111
111
  email: mateo.murphy@gmail.com
112
112
  executables: []
113
113
  extensions: []
@@ -129,6 +129,7 @@ files:
129
129
  - lib/display_for/builder/base.rb
130
130
  - lib/display_for/builder/collection_base.rb
131
131
  - lib/display_for/builder/csv.rb
132
+ - lib/display_for/builder/list.rb
132
133
  - lib/display_for/builder/resource_base.rb
133
134
  - lib/display_for/builder/table.rb
134
135
  - lib/display_for/builder/view.rb
@@ -138,6 +139,7 @@ files:
138
139
  - lib/display_for/element/base.rb
139
140
  - lib/display_for/element/html.rb
140
141
  - lib/display_for/helper.rb
142
+ - spec/lib/builder/list_spec.rb
141
143
  - spec/lib/builder/table_spec.rb
142
144
  - spec/spec_helper.rb
143
145
  - spec/support/test_model.rb
@@ -157,7 +159,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
157
159
  version: '0'
158
160
  segments:
159
161
  - 0
160
- hash: -18242952819301146
162
+ hash: -3990301534027286697
161
163
  required_rubygems_version: !ruby/object:Gem::Requirement
162
164
  none: false
163
165
  requirements: