simple_show 0.0.2 → 0.0.3
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/README.rdoc +16 -1
- data/lib/simple_show/base.rb +9 -1
- data/lib/simple_show/version.rb +1 -1
- data/test/test_helper.rb +4 -0
- data/test/test_simple_show_value.rb +31 -5
- metadata +3 -3
data/README.rdoc
CHANGED
@@ -34,6 +34,9 @@ In our show action we can then do this:
|
|
34
34
|
<%= s.show :phone, :label => 'Telephone' %>
|
35
35
|
<%= s.show(:email) {|o| o.email.downcase} %>
|
36
36
|
<%= s.show :born_on, :value => '**censored**' %>
|
37
|
+
<%= s.show :updated_at, :format => '%B %d' %>
|
38
|
+
<%= s.show :created_at, :format => :short # Assumes you've defined a DATE_FORMAT for :short %>
|
39
|
+
<%= s.show :cash_in_wallet, :format => '$%.2f' %>
|
37
40
|
<% end %>
|
38
41
|
|
39
42
|
Which would generate (using the defaults) output like this:
|
@@ -55,6 +58,18 @@ Which would generate (using the defaults) output like this:
|
|
55
58
|
<label>Born on:</label>
|
56
59
|
<span class="value">**censored**</span>
|
57
60
|
</div>
|
61
|
+
<div class="show">
|
62
|
+
<label>Updated at:</label>
|
63
|
+
<span class="value">August 2</span>
|
64
|
+
</div>
|
65
|
+
<div class="show">
|
66
|
+
<label>Created at:</label>
|
67
|
+
<span class="value">Aug 1 2010</span>
|
68
|
+
</div>
|
69
|
+
<div class="show">
|
70
|
+
<label>Cash in wallet:</label>
|
71
|
+
<span class="value">$123.45</span>
|
72
|
+
</div>
|
58
73
|
<br clear="all">
|
59
74
|
</div>
|
60
75
|
|
@@ -67,7 +82,7 @@ if you don't want that BR tag then set SimpleShow.clear_on_close to false.
|
|
67
82
|
== TODO:
|
68
83
|
|
69
84
|
- Add support for associations.
|
70
|
-
- Add options for formatting
|
85
|
+
- Add options for formatting and booleans.
|
71
86
|
|
72
87
|
== License:
|
73
88
|
|
data/lib/simple_show/base.rb
CHANGED
@@ -28,8 +28,16 @@ module SimpleShow
|
|
28
28
|
else
|
29
29
|
value = options[:value] || @record.send(attr)
|
30
30
|
end
|
31
|
+
if options[:format].present?
|
32
|
+
if [:datetime, :timestamp, :time, :date].include?(@record.class.columns_hash[attr.to_s].type)
|
33
|
+
value = value.send(options[:format].is_a?(Symbol) ? :to_s : :strftime, options[:format])
|
34
|
+
else
|
35
|
+
value = options[:format] % value
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
31
39
|
@binding.content_tag(SimpleShow.value_tag, :class => SimpleShow.value_class) do
|
32
|
-
[SimpleShow.value_prefix, value, SimpleShow.value_suffix].compact.join
|
40
|
+
[SimpleShow.value_prefix, value, SimpleShow.value_suffix].compact.join.html_safe
|
33
41
|
end
|
34
42
|
end
|
35
43
|
end
|
data/lib/simple_show/version.rb
CHANGED
data/test/test_helper.rb
CHANGED
@@ -34,6 +34,10 @@ end
|
|
34
34
|
|
35
35
|
################################################################################
|
36
36
|
|
37
|
+
::Time::DATE_FORMATS[:mmddyy] = ::Date::DATE_FORMATS[:mmddyy] = '%m/%d/%y'
|
38
|
+
|
39
|
+
################################################################################
|
40
|
+
|
37
41
|
class Golfer < ActiveRecord::Base
|
38
42
|
end
|
39
43
|
|
@@ -2,19 +2,45 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class SimpleShowValueTest < SimpleShowTestCase
|
4
4
|
|
5
|
-
|
6
|
-
|
5
|
+
def setup
|
6
|
+
super
|
7
|
+
@doc = Nokogiri::HTML.fragment(
|
7
8
|
simple_show_for @philip do |s|
|
8
9
|
o = ActiveSupport::SafeBuffer.new
|
9
10
|
o += s.show :name
|
10
11
|
o += s.show(:email) {|o| o.email.upcase }
|
11
12
|
o += s.show :phone, :value => '867-5309'
|
13
|
+
o += s.show :born_on, :format => '%B %d'
|
14
|
+
o += s.show :born_on, :format => :mmddyy
|
15
|
+
o += s.show(:html) {|o| '<b>html</b>' }
|
16
|
+
o += s.show :handicap, :format => '%.3f'
|
17
|
+
o += s.show :name, :format => '%20s'
|
12
18
|
o
|
13
19
|
end
|
14
20
|
)
|
15
|
-
|
16
|
-
|
17
|
-
|
21
|
+
end
|
22
|
+
|
23
|
+
test 'values and value overrides' do
|
24
|
+
assert_equal 'Philip Hallstrom', @doc.css('span.value')[0].text
|
25
|
+
assert_equal 'PHILIP@PJKH.COM', @doc.css('span.value')[1].text
|
26
|
+
assert_equal '867-5309', @doc.css('span.value')[2].text
|
27
|
+
end
|
28
|
+
|
29
|
+
test 'date/time with formatting' do
|
30
|
+
assert_equal 'May 24', @doc.css('span.value')[3].text
|
31
|
+
assert_equal '05/24/74', @doc.css('span.value')[4].text
|
32
|
+
end
|
33
|
+
|
34
|
+
test 'values containing html' do
|
35
|
+
assert_equal '<b>html</b>', @doc.css('span.value')[5].inner_html
|
36
|
+
end
|
37
|
+
|
38
|
+
test 'numbers with formatting' do
|
39
|
+
assert_equal '6.500', @doc.css('span.value')[6].text
|
40
|
+
end
|
41
|
+
|
42
|
+
test 'strings with formatting' do
|
43
|
+
assert_equal ' Philip Hallstrom', @doc.css('span.value')[7].text
|
18
44
|
end
|
19
45
|
|
20
46
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_show
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Philip Hallstrom
|