10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/editable.rb', line 10
def editable(
object,
method,
display: :name,
display_with: nil,
tag: :span,
trigger: :auto,
label: :name
)
value = object.send(method)
model = object.class.model_name.singular
id = object.send object.class.primary_key
url = url_for(object)
identifier = "#{method}_#{model}_#{id}"
datatype = object.class.columns_hash[method.to_s].type
display_value = display_with ? send(display_with, value) : value
"<#{tag.to_s} class=\"editable\"\
data-editable=\"#{identifier}\"\
data-editable-model=\"#{model}\"\
data-editable-id=\"#{id}\"\
data-editable-method=\"#{method}\"\
data-editable-datatype=\"#{datatype}\"\
data-editable-value=\"#{value}\"\
data-editable-url=\"#{url}\"\
data-editable-display-with=\"#{display_with}\">
#{display_value}
</#{tag.to_s}>
".html_safe
end
|