index_for 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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f637db5d2b2459b10bfe9685fc3ccac559bafb13
|
4
|
+
data.tar.gz: e4d74aaad50eff2af5a5146e7175f88e1b561500
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a443df37260f74e1bde7ba93144eef584c5215ce799c615e54cd625c73ef491ad943f5d1645860121013f745e7e6a2288aaea77fc721fd969b9f16e38ab8a8d2
|
7
|
+
data.tar.gz: a9ee356a9fa0bced86a328b41088604fd2d5af8d22815ccd83acdfa6983792f02dcc3bdbc2bf39776fb48bf390317090f0fe9ef35b8a440c90d61c902c42c70f
|
data/lib/index_for/attribute.rb
CHANGED
@@ -3,7 +3,7 @@ module IndexFor
|
|
3
3
|
|
4
4
|
private
|
5
5
|
|
6
|
-
def attribute_value attribute_name, options
|
6
|
+
def attribute_value attribute_name, options
|
7
7
|
attribute_name = options[:value] if options[:value]
|
8
8
|
attribute_name = :"#{attribute_name}.#{options[:with]}" if options[:with]
|
9
9
|
|
@@ -15,9 +15,7 @@ module IndexFor
|
|
15
15
|
object = object.send(attribute_name)
|
16
16
|
end if parts.any?
|
17
17
|
|
18
|
-
if
|
19
|
-
nil
|
20
|
-
elsif object.respond_to?(:"human_#{attribute_name}")
|
18
|
+
if object.respond_to?(:"human_#{attribute_name}")
|
21
19
|
object.send :"human_#{attribute_name}"
|
22
20
|
else
|
23
21
|
object.send(attribute_name)
|
data/lib/index_for/builder.rb
CHANGED
@@ -61,23 +61,25 @@ module IndexFor
|
|
61
61
|
class_name.join("_").to_sym
|
62
62
|
end
|
63
63
|
|
64
|
-
def
|
64
|
+
def wrap_attribute_with type, attribute, options = {}, &block
|
65
65
|
type_tag, type_html_options = apply_html type, options
|
66
|
-
|
66
|
+
|
67
|
+
if block
|
68
|
+
content = block
|
69
|
+
else
|
70
|
+
content = attribute_value attribute, options
|
71
|
+
append_class type_html_options, IndexFor.blank_content_class if content.blank?
|
72
|
+
end
|
67
73
|
|
68
74
|
@template.content_tag type_tag, type_html_options do
|
69
|
-
format_content(content, options
|
75
|
+
format_content(content, options)
|
70
76
|
end
|
71
77
|
end
|
72
78
|
|
73
|
-
def format_content content, options = {}
|
79
|
+
def format_content content, options = {}
|
74
80
|
# We need to convert content to_a because when dealing with ActiveRecord
|
75
81
|
# Array proxies, the follow statement Array# === content return false
|
76
|
-
|
77
|
-
content = block
|
78
|
-
elsif content.respond_to?(:to_ary)
|
79
|
-
content = content.to_a
|
80
|
-
end
|
82
|
+
content = content.to_ary if content.respond_to?(:to_ary)
|
81
83
|
|
82
84
|
case content
|
83
85
|
when Date, Time, DateTime
|
@@ -86,15 +88,23 @@ module IndexFor
|
|
86
88
|
translate :"index_for.yes", :default => "Yes"
|
87
89
|
when FalseClass
|
88
90
|
translate :"index_for.no", :default => "No"
|
89
|
-
when Array, Hash
|
90
|
-
content.empty? ? blank_content(options) :
|
91
|
-
collection_content(content, options, &block)
|
92
|
-
when Proc
|
93
|
-
@template.capture(@object, &content)
|
94
91
|
when NilClass
|
95
92
|
blank_content(options)
|
93
|
+
when Proc
|
94
|
+
@template.capture(@object, &content)
|
96
95
|
else
|
97
|
-
|
96
|
+
formatter = options[:format] && IndexFor.formatters[options[:format]]
|
97
|
+
|
98
|
+
if formatter
|
99
|
+
@template.instance_exec(content, @object, &formatter)
|
100
|
+
else
|
101
|
+
case content
|
102
|
+
when Array, Hash
|
103
|
+
content.empty? ? blank_content(options) : collection_content(content, options)
|
104
|
+
else
|
105
|
+
content.to_s
|
106
|
+
end
|
107
|
+
end
|
98
108
|
end
|
99
109
|
end
|
100
110
|
|
@@ -102,16 +112,12 @@ module IndexFor
|
|
102
112
|
options[:if_blank] || translate(:blank, :default => "Not specified")
|
103
113
|
end
|
104
114
|
|
105
|
-
def collection_content collection, options
|
115
|
+
def collection_content collection, options
|
106
116
|
collection_tag = options[:collection_tag] || IndexFor.collection_tag
|
107
117
|
collection_column_tag = options[:collection_column_tag] || IndexFor.collection_column_tag
|
108
118
|
@template.content_tag collection_tag do
|
109
119
|
collection.map do |content|
|
110
|
-
|
111
|
-
@template.capture content, collection, @object, &block
|
112
|
-
else
|
113
|
-
@template.content_tag collection_column_tag, content
|
114
|
-
end
|
120
|
+
@template.content_tag collection_column_tag, content
|
115
121
|
end.join.html_safe
|
116
122
|
end
|
117
123
|
end
|
@@ -5,8 +5,7 @@ module IndexFor
|
|
5
5
|
|
6
6
|
def attribute attribute_name, options = {}, &block
|
7
7
|
append_html_class options, attribute_class_name(attribute_name)
|
8
|
-
|
9
|
-
options, &block), options, &block
|
8
|
+
wrap_attribute_with :table_body_cell, attribute_name, options, &block
|
10
9
|
end
|
11
10
|
|
12
11
|
def actions *action_names, &block
|
@@ -24,8 +24,7 @@ module IndexFor
|
|
24
24
|
|
25
25
|
def list_content attribute_name, options, &block
|
26
26
|
append_html_class options, attribute_class_name(attribute_name)
|
27
|
-
|
28
|
-
options), options, &block
|
27
|
+
wrap_attribute_with :list_content, attribute_name, options, &block
|
29
28
|
end
|
30
29
|
|
31
30
|
end
|
data/lib/index_for/version.rb
CHANGED
data/lib/index_for.rb
CHANGED
@@ -14,7 +14,7 @@ module IndexFor
|
|
14
14
|
@@table_tag = :table
|
15
15
|
mattr_accessor :table_class
|
16
16
|
@@table_class = nil
|
17
|
-
|
17
|
+
|
18
18
|
mattr_accessor :table_head_tag
|
19
19
|
@@table_head_tag = :thead
|
20
20
|
mattr_accessor :table_head_class
|
@@ -34,7 +34,7 @@ module IndexFor
|
|
34
34
|
@@table_head_cell_tag = :th
|
35
35
|
mattr_accessor :table_head_cell_class
|
36
36
|
@@table_head_cell_class = nil
|
37
|
-
|
37
|
+
|
38
38
|
mattr_accessor :table_body_cell_tag
|
39
39
|
@@table_body_cell_tag = :td
|
40
40
|
mattr_accessor :table_body_cell_class
|
@@ -93,4 +93,10 @@ module IndexFor
|
|
93
93
|
def self.setup
|
94
94
|
yield self
|
95
95
|
end
|
96
|
+
|
97
|
+
mattr_accessor :formatters
|
98
|
+
@@formatters = {}
|
99
|
+
def self.format key, &block
|
100
|
+
formatters[key] = block
|
101
|
+
end
|
96
102
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: index_for
|
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
|
- Theo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|