Class: AlTime

Inherits:
AlTimestamp show all
Defined in:
lib/al_form.rb,
lib/al_form/extend.rb

Overview

Note:

時分秒を扱う 内部的には日付を2000年に固定したTimeオブジェクトで保存する。

時刻ウィジェット

Instance Method Summary (collapse)

Methods inherited from AlTimestamp

#initialize, #make_tag

Methods inherited from AlWidget

#initialize, #set_attr, #set_value

Constructor Details

This class inherits a constructor from AlTimestamp

Instance Method Details

- (String) make_value(*arg)

(AlTime) HTML値の生成

Parameters:

  • (String, Time) arg

    表示値。指定なければ内部値を使う。

Returns:

  • (String)

    html文字列



357
358
359
360
361
362
363
364
# File 'lib/al_form/extend.rb', line 357

def make_value( *arg )
  v = arg.empty? ? @value: arg[0]
  if v.class == Time
    return Alone::escape_html( v.strftime('%H:%M:%S') )
  else
    return Alone::escape_html( v )
  end
end

- (Boolean) validate

(AlTime) バリデート

Returns:

  • (Boolean)

    成否



318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
# File 'lib/al_form/extend.rb', line 318

def validate()
  require 'time'
  @message = ""

  if @value == "" || @value == nil
    if @required
      @message = "#{@label}を入力してください。"
      return false
    end
    @value = nil
    return true
  end

  begin
    @value = Time.parse( '2000-01-01 ' + @value )
  rescue
    @message = "#{@label}を正しく入力してください。"
    return false
  end

  if @max && @value > @max
    @message = "#{@label}は、最大#{@max.strftime('%H:%M:%S')}までで入力してください。"
    return false
  end
  if @min && @value < @min
    @message = "#{@label}は、最小#{@min.strftime('%H:%M:%S')}までで入力してください。"
    return false
  end

  return true
end