-
-
Notifications
You must be signed in to change notification settings - Fork 277
/
Copy pathcode_field.rb
35 lines (30 loc) · 1.07 KB
/
code_field.rb
1
2
3
4
5
6
7
8
9
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
module Avo
module Fields
class CodeField < BaseField
attr_reader :language
attr_reader :theme
attr_reader :height
attr_reader :tab_size
attr_reader :indent_with_tabs
attr_reader :line_wrapping
def initialize(id, **args, &block)
hide_on :index
if args[:pretty_generated]
args[:format_using] ||= lambda do
JSON.pretty_generate(JSON.parse(value.to_json))
end
args[:update_using] ||= lambda do
JSON.parse(value)
end
end
super(id, **args, &block)
@language = args[:language].present? ? args[:language].to_s : "javascript"
@theme = args[:theme].present? ? args[:theme].to_s : "default"
@height = args[:height].present? ? args[:height].to_s : "auto"
@tab_size = args[:tab_size].present? ? args[:tab_size] : 2
@indent_with_tabs = args[:indent_with_tabs].present? ? args[:indent_with_tabs] : false
@line_wrapping = args[:line_wrapping].present? ? args[:line_wrapping] : true
end
end
end
end