attrtastic 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -2,3 +2,5 @@ source "http://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in attrtastic.gemspec
4
4
  gemspec
5
+
6
+ gem "rake"
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- attrtastic (0.3.3)
4
+ attrtastic (0.4.1)
5
5
  actionpack (>= 3.0)
6
6
  activesupport (>= 3.0)
7
7
 
@@ -34,6 +34,7 @@ GEM
34
34
  rack (>= 1.0.0)
35
35
  rack-test (0.5.7)
36
36
  rack (>= 1.0)
37
+ rake (0.9.2)
37
38
  shoulda (2.11.3)
38
39
  tzinfo (0.3.28)
39
40
  yard (0.6.3)
@@ -44,5 +45,6 @@ PLATFORMS
44
45
  DEPENDENCIES
45
46
  attrtastic!
46
47
  bluecloth (~> 2.0.0)
48
+ rake
47
49
  shoulda (~> 2.11.0)
48
50
  yard (~> 0.6.0)
@@ -354,7 +354,10 @@ module Attrtastic
354
354
  output << template.tag(:ol, {}, true)
355
355
  output << template.capture(new_builder, &block)
356
356
  output.safe_concat("</ol>")
357
- elsif methods.present?
357
+ else
358
+ if methods.blank? && object.respond_to?(:attribute_names)
359
+ methods = object.attribute_names
360
+ end
358
361
  output << template.tag(:ol, {}, true)
359
362
  methods.each do |method|
360
363
  output << new_builder.attribute(method, options)
@@ -1,3 +1,3 @@
1
1
  module Attrtastic
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
@@ -49,13 +49,25 @@ class User
49
49
  def full_name
50
50
  [last_name,first_name].join(", ")
51
51
  end
52
+
53
+ def attribute_names
54
+ %w( first_name last_name email title created_at time birthday float decimal integer address full_name )
55
+ end
52
56
  end
53
57
 
54
58
  class Blog
55
59
  attr_accessor :name, :url, :author, :posts
56
60
  delegate :full_name, :to => :author, :prefix => true
61
+
62
+ def attribute_names
63
+ %w( name url author_full_name )
64
+ end
57
65
  end
58
66
 
59
67
  class Post
60
68
  attr_accessor :title, :content
69
+
70
+ def attribute_names
71
+ %w( title content )
72
+ end
61
73
  end
@@ -17,12 +17,26 @@ class TestAttributes < TestCase
17
17
  assert block_run
18
18
  end
19
19
 
20
- should "generate output even when no block given" do
20
+ should "generate output even when no block given, outputting all attributes (from #attribute_names) " do
21
21
  expected = html <<-EOHTML
22
22
  <div class="attributes">
23
+ <ol>
24
+ <li class="attribute">
25
+ <span class="label">Name</span>
26
+ <span class="value">IT Pro Blog</span>
27
+ </li>
28
+ <li class="attribute">
29
+ <span class="label">Url</span>
30
+ <span class="value">http://www.it.pro.blog</span>
31
+ </li>
32
+ <li class="attribute">
33
+ <span class="label">Author full name</span>
34
+ <span class="value">Doe, John</span>
35
+ </li>
36
+ </ol>
23
37
  </div>
24
38
  EOHTML
25
- actual = @user_builder.attributes
39
+ actual = @blog_builder.attributes
26
40
 
27
41
  assert_equal expected, actual
28
42
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: attrtastic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-06-25 00:00:00.000000000 +02:00
12
+ date: 2011-08-16 00:00:00.000000000 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: yard
17
- requirement: &13820520 !ruby/object:Gem::Requirement
17
+ requirement: &8555040 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 0.6.0
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *13820520
25
+ version_requirements: *8555040
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: bluecloth
28
- requirement: &13820000 !ruby/object:Gem::Requirement
28
+ requirement: &8554520 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 2.0.0
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *13820000
36
+ version_requirements: *8554520
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: shoulda
39
- requirement: &13819520 !ruby/object:Gem::Requirement
39
+ requirement: &8554040 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 2.11.0
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *13819520
47
+ version_requirements: *8554040
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: activesupport
50
- requirement: &13819040 !ruby/object:Gem::Requirement
50
+ requirement: &8553560 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '3.0'
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *13819040
58
+ version_requirements: *8553560
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: actionpack
61
- requirement: &13818560 !ruby/object:Gem::Requirement
61
+ requirement: &8553080 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,7 +66,7 @@ dependencies:
66
66
  version: '3.0'
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *13818560
69
+ version_requirements: *8553080
70
70
  description: Rails view helper for scaffolding show/index pages for objects
71
71
  email:
72
72
  - boruta.miroslaw@gmail.com