Module: AbAdmin::Utils
- Included in:
- AbAdmin
- Defined in:
- lib/ab_admin.rb,
lib/ab_admin/utils.rb,
lib/ab_admin/utils/mysql.rb,
lib/ab_admin/utils/logger.rb,
lib/ab_admin/utils/csv_document.rb,
lib/ab_admin/utils/eval_helpers.rb,
lib/ab_admin/utils/xls_document.rb
Defined Under Namespace
Modules: EvalHelpers, Logger, Mysql
Classes: CsvDocument, Sanitizer, XlsDocument
Constant Summary
collapse
- @@display_name_methods_cache =
{}
Instance Method Summary
collapse
Instance Method Details
#bm(message = 'Benchmarking', options = {}) ⇒ Object
14
15
16
17
18
19
|
# File 'lib/ab_admin/utils.rb', line 14
def bm(message = 'Benchmarking', options = {})
result = nil
ms = Benchmark.ms { result = yield }
Rails.logger.debug '%s (%.3fms)' % [message, ms]
result
end
|
#display_name(resource) ⇒ Object
101
102
103
|
# File 'lib/ab_admin/utils.rb', line 101
def display_name(resource)
resource.send(display_name_method_for(resource))
end
|
#display_name_method_for(resource) ⇒ Object
97
98
99
|
# File 'lib/ab_admin/utils.rb', line 97
def display_name_method_for(resource)
@@display_name_methods_cache[resource.class.name] ||= AbAdmin.display_name_methods.find { |method| resource.respond_to? method }
end
|
#full_url(path) ⇒ Object
67
68
69
70
|
# File 'lib/ab_admin/utils.rb', line 67
def full_url(path)
host = Rails.application.config.action_mailer.default_url_options[:host] || 'www.example.com'
"http://#{host}#{path}"
end
|
#js_date_data ⇒ Object
72
73
74
75
76
77
78
79
80
81
|
# File 'lib/ab_admin/utils.rb', line 72
def js_date_data
{
formats: I18n.t('date.formats'),
day_names: I18n.t('date.day_names'),
abbr_day_names: I18n.t('date.common_abbr_day_names'),
month_names: I18n.t('date.common_month_names'),
standalone_month_names: I18n.t('date.standalone_month_names'),
abbr_month_names: I18n.t('date.abbr_month_names')
}
end
|
#l_path(locale = nil) ⇒ Object
47
48
49
50
|
# File 'lib/ab_admin/utils.rb', line 47
def l_path(locale=nil)
return '' unless locale
locale == I18n.default_locale ? '' : "/#{locale}"
end
|
#load_files!(path = 'lib/utils') ⇒ Object
8
9
10
11
12
|
# File 'lib/ab_admin/utils.rb', line 8
def load_files!(path = 'lib/utils')
Dir[Rails.root.join("#{path}/**/*.rb")].each do |path|
require_dependency path
end
end
|
#normalize_html(raw_html) ⇒ Object
AbAdmin.normalize_html(‘<!–das asd as as as–><script>asd</script><div>dasd</div><p>asdasd</p>’)
> “<p>dasd</p><p>asdasd</p>”
58
59
60
61
|
# File 'lib/ab_admin/utils.rb', line 58
def normalize_html(raw_html)
@@sanitizer ||= Sanitizer.new
@@sanitizer.normalize_html(raw_html)
end
|
#pretty(raw_data) ⇒ Object
21
22
23
24
25
26
27
28
29
|
# File 'lib/ab_admin/utils.rb', line 21
def pretty(raw_data)
data = case raw_data
when Hash
raw_data
when String
MultiJson.decode(raw_data)
end
JSON.pretty_generate data
end
|
#pretty_data(object) ⇒ Object
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
# File 'lib/ab_admin/utils.rb', line 110
def pretty_data(object)
case object
when String, Integer, BigDecimal, Float
object
when TrueClass
'+'
when FalseClass
'-'
when Date, DateTime, Time, ActiveSupport::TimeWithZone
I18n.l(object, format: :long)
when NilClass
''
else
AbAdmin.safe_display_name(object) || object
end
end
|
52
53
54
|
# File 'lib/ab_admin/utils.rb', line 52
def (raw_html)
Rack::Utils.escape_html(raw_html.no_html.squish)
end
|
#safe_display_name(resource) ⇒ Object
105
106
107
108
|
# File 'lib/ab_admin/utils.rb', line 105
def safe_display_name(resource)
return unless display_name_method_for(resource)
resource.send(display_name_method_for(resource))
end
|
#truncate_text(raw_text, size = 200) ⇒ Object
42
43
44
45
|
# File 'lib/ab_admin/utils.rb', line 42
def truncate_text(raw_text, size=200)
text = raw_text.to_s.gsub(/"|«|»|'/, '\'').gsub(/ /, ' ').gsub(/—/, '-').no_html.squish
text.truncate(size, separator: ' ')
end
|
#url_helpers ⇒ Object
63
64
65
|
# File 'lib/ab_admin/utils.rb', line 63
def url_helpers
Rails.application.routes.url_helpers
end
|
#val_to_array(val, zero = false) ⇒ Object
31
32
33
34
35
|
# File 'lib/ab_admin/utils.rb', line 31
def val_to_array(val, zero=false)
return [] unless val
a = val.is_a?(Array) ? val : val.to_s.split(',').map(&:to_i)
zero ? a : a.without(0)
end
|
#val_to_array_s(val) ⇒ Object
37
38
39
40
|
# File 'lib/ab_admin/utils.rb', line 37
def val_to_array_s(val)
return [] unless val
val.is_a?(Array) ? val : val.split(',').map(&:to_s).without(0)
end
|