Class: RubyUIAdmin::Fields::DateField

Inherits:
BaseField
  • Object
show all
Defined in:
lib/ruby_ui_admin/fields/date_field.rb

Constant Summary collapse

DEFAULT_FORMAT =
"%Y-%m-%d"

Instance Attribute Summary

Attributes inherited from BaseField

#block, #id, #options, #resource

Instance Method Summary collapse

Methods inherited from BaseField

#database_id, #default_hidden_views, #default_value, #description, field_type, #fill, #fill_value, #filterable?, #has_default?, #help, #initialize, #link_to_record?, #name, #permit_param, #permit_params, #permitted_param, #placeholder, #readonly?, register_as, #required?, #sort_lambda, #sortable?, #type, #value, #visible?, #visible_in_view?

Constructor Details

This class inherits a constructor from RubyUIAdmin::Fields::BaseField

Instance Method Details

#formatObject



10
11
12
# File 'lib/ruby_ui_admin/fields/date_field.rb', line 10

def format
  options[:format] || DEFAULT_FORMAT
end

#formatted_value(record, view_context: nil) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/ruby_ui_admin/fields/date_field.rb', line 14

def formatted_value(record, view_context: nil)
  raw = value(record, view_context: view_context)
  return nil if raw.nil?
  return super if @format_using
  return raw unless raw.respond_to?(:strftime)

  fmt = options[:format]
  # A String `format:` is an explicit strftime pattern; otherwise localize via I18n.l
  # (Symbol = named locale format, nil = gem's locale-aware default) so pt-BR renders
  # "%d/%m/%Y", en "%Y-%m-%d", etc.
  return raw.strftime(fmt) if fmt.is_a?(String)

  begin
    I18n.l(raw, format: fmt || :ruby_ui_admin)
  rescue
    raw.strftime(DEFAULT_FORMAT)
  end
end