Class: AlText

Inherits:
AlWidget show all
Defined in:
lib/al_form.rb

Overview

テキストウィジェット

Direct Known Subclasses

AlHidden, AlMail, AlPassword, AlTextArea

Instance Attribute Summary (collapse)

Attributes inherited from AlWidget

#filter, #foreign, #hidden, #label, #message, #name, #required, #tag_attr, #value

Instance Method Summary (collapse)

Methods inherited from AlWidget

#make_value, #set_attr

Constructor Details

- (AlText) initialize(name, arg = {})

(AlText) constractor

AlWidget#initialize argは親クラスも参照

Parameters:

  • name (String)

    ウィジェット識別名 英文字を推奨

  • arg (Hash) (defaults to: {})

    引数ハッシュ

Options Hash (arg):

  • :validator (Regexp)

    バリデータ正規表現

  • :max (Integer)

    最大長さ

  • :min (Integer)

    最小長さ

See Also:



681
682
683
684
685
686
# File 'lib/al_form.rb', line 681

def initialize( name, arg = {} )
  super( name, arg )
  @validator = arg[:validator] || /[^\x00-\x1F\x7F]/
  @max = arg[:max]
  @min = arg[:min]
end

Instance Attribute Details

- (Integer) max

Returns 最大長さ

Returns:

  • (Integer)

    最大長さ



664
665
666
# File 'lib/al_form.rb', line 664

def max
  @max
end

- (Integer) min

Returns 最小長さ

Returns:

  • (Integer)

    最小長さ



667
668
669
# File 'lib/al_form.rb', line 667

def min
  @min
end

- (Regexp) validator

Returns 正規表現によるバリデータ。正常パターンを登録する。

Returns:

  • (Regexp)

    正規表現によるバリデータ。正常パターンを登録する。



661
662
663
# File 'lib/al_form.rb', line 661

def validator
  @validator
end

Instance Method Details

- (String) make_tag(arg = {})

(AlText) HTMLタグの生成

Parameters:

  • arg (Hash) (defaults to: {})

    htmlタグへ追加するアトリビュートを指定

Returns:

  • (String)

    htmlタグ



740
741
742
743
744
745
746
747
748
749
750
# File 'lib/al_form.rb', line 740

def make_tag( arg = {} )
  if @hidden
    return %Q(<input type="hidden" name="#{@name}" id="#{@name}" value="#{Alone::escape_html( @value )}" #{AL_FORM_EMPTYTAG_CLOSE}\n)
  end

  r = %Q(<input type="text" name="#{@name}" id="#{@name}" value="#{Alone::escape_html( @value )}")
  (@tag_attr.merge arg).each do |k,v|
    r << %Q( #{k}="#{Alone::escape_html(v)}")
  end
  return "#{r} #{AL_FORM_EMPTYTAG_CLOSE}"
end

- (Object) set_value(v) Also known as: value=

(AlText) 値のセット

Parameters:

  • v (String)

    セットする値



694
695
696
# File 'lib/al_form.rb', line 694

def set_value( v )
  @value = v.to_s
end

- (Boolean) validate

(AlText) バリデート

Returns:

  • (Boolean)

    成否



705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
# File 'lib/al_form.rb', line 705

def validate()
  @message = ""

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

  if @max && @value.length > @max
    @message = "#{@label}は、最大#{@max}文字で入力してください。"
    return false
  end
  if @min && @value.length < @min
    @message = "#{@label}は、最低#{@min}文字入力してください。"
    return false
  end

  if @validator !~ @value
    @message = "#{@label}を正しく入力してください。"
    return false
  end

  return true
end