Module: Anjlab::Widgets

Defined in:
lib/anjlab-widgets.rb,
lib/anjlab-widgets/engine.rb,
lib/anjlab-widgets/version.rb,
lib/anjlab-widgets/simple_form.rb

Defined Under Namespace

Classes: DateTimeInput, Engine

Constant Summary collapse

VERSION =
'3.0.7'

Class Method Summary collapse

Class Method Details

.date_format(date_format_locale = ::I18n.default_locale) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/anjlab-widgets.rb', line 7

def self.date_format date_format_locale = ::I18n.default_locale
  case date_format_locale
  when :ru
    "%d.%m.%Y"
  when :en
    "%m/%d/%Y"
  when :es
    "%d/%m/%Y"
  when :pt
    "%d/%m/%Y"
  when :'zh-TW'
    "%Y-%m-%d"
  when :ja
    "%Y/%m/%d"
  else
    "%Y-%m-%d"
  end
end

.format_date(date) ⇒ Object



44
45
46
47
# File 'lib/anjlab-widgets.rb', line 44

def self.format_date date
  return '' if date.nil?
  date.strftime self.date_format
end

.format_time(time) ⇒ Object



78
79
80
81
# File 'lib/anjlab-widgets.rb', line 78

def self.format_time time
  return '' if time.nil?
  time.strftime "%H:%M"
end

.parse_date(date_string) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/anjlab-widgets.rb', line 36

def self.parse_date date_string
  begin
    parse_date! date_string
  rescue
    nil
  end
end

.parse_date!(date_string) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'lib/anjlab-widgets.rb', line 26

def self.parse_date! date_string
  return nil if date_string.blank?
  # native controls date format
  if date_string =~ /\d{4}-[01]\d-[0123]\d/
    ::Date.parse date_string, "%Y-%m-%d"
  else
    ::Date.parse date_string, date_format
  end
end

.parse_datetime(date_string, time_string) ⇒ Object



70
71
72
73
74
75
76
# File 'lib/anjlab-widgets.rb', line 70

def self.parse_datetime date_string, time_string
  begin
    parse_datetime! date_string, time_string
  rescue
    nil
  end
end

.parse_datetime!(date_string, time_string) ⇒ Object



64
65
66
67
68
# File 'lib/anjlab-widgets.rb', line 64

def self.parse_datetime! date_string, time_string
  date = parse_date! date_string
  time = parse_time! time_string
  Time.local(date.year, date.month, date.day, time.hour, time.min)
end

.parse_time(time_string) ⇒ Object



56
57
58
59
60
61
62
# File 'lib/anjlab-widgets.rb', line 56

def self.parse_time time_string
  begin
    self.parse_time! time_string
  rescue
    nil
  end
end

.parse_time!(time_string) ⇒ Object



49
50
51
52
53
54
# File 'lib/anjlab-widgets.rb', line 49

def self.parse_time! time_string
  return nil if time_string.blank?
  now = Time.now
  parts = time_string.split(':')
  Time.local(now.year, now.month, now.day, parts[0].to_i, parts[1].to_i)
end

.simple_form(options = {}) ⇒ Object



83
84
85
86
87
88
89
# File 'lib/anjlab-widgets.rb', line 83

def self.simple_form options={}
  require 'anjlab-widgets/simple_form'
  SimpleForm::FormBuilder.map_type :anjlab_date, :anjlab_time, :anjlab_datetime, to: DateTimeInput
  if options[:as_default]
    SimpleForm::FormBuilder.map_type :date, :time, :datetime, to: DateTimeInput
  end
end