Class | Display
In: | app/models/display.rb
Parent: | ActiveRecord::Base

画面のモデル

### Methods

available? button_back? button_close? current current= current_id inject_logic proper_items to_s writable?

### Constants

ITEM_DEFAULT_OPTIONS | = | { }.freeze

### Public Class methods

current()

現在の画面を返す。

[Source]

        # File app/models/display.rb, line 56
    56:   def self.current
    57:     ccache = CacheEachRequest.current
    58:     ccache ? ccache[:display] : nil
    59:   end

current=(d)

現在の画面を設定する。

[Source]

        # File app/models/display.rb, line 62
    62:   def self.current=(d)
    63:     CacheEachRequest.current[:display] = d
    64:   end

current_id()

現在の画面の ID を返す。

[Source]

        # File app/models/display.rb, line 67
    67:   def self.current_id
    68:     (current) ? current.id : nil
    69:   end

### Public Instance methods

available?()

権限にしたがって利用可能かどうかを判定する。 NOTE: 判定はサブクラスで実装する。

[Source]

        # File app/models/display.rb, line 78
    78:   def available?
    79:     raise NotImplementedError, "available? is not implemented"
    80:   end

button_back?()

「戻る」ボタンの有無を返す。 NOTE: 判定はサブクラスで実装する。既定値は false。

[Source]

        # File app/models/display.rb, line 90
    90:   def button_back?
    91:     false
    92:   end

button_close?()

「閉じる」ボタンの有無を返す。 NOTE: 判定はサブクラスで実装する。既定値は false。

[Source]

        # File app/models/display.rb, line 84
    84:   def button_close?
    85:     false
    86:   end

inject_logic(position, x, action)

ビジネスロジックに定義された処理を行う。

[Source]

         # File app/models/display.rb, line 101
    101:   def inject_logic(position, x, action)
    102:     return x unless __send__("logic_#{position}?")
    103:     require(logic_path)
    104:     logic_class = "#{x.class}Logic".constantize
    105:     logic = logic_class.new
    106:     raise ArgumentError, "#{logic_class} is not a subclass of BusinessLogic" unless logic.is_a?(BusinessLogic)
    107:     return logic.__send__("#{position}process", action, User.current, x)
    108:   end

proper_items()

テーブルのカラムに対応する項目のリストを返す。

[Source]

         # File app/models/display.rb, line 111
    111:   def proper_items
    112:     items.select {|item| item.is_a?(ItemProper)}
    113:   end

to_s()

文字列に変換された場合に `name` を返す。

[Source]

        # File app/models/display.rb, line 72
    72:   def to_s
    73:     name
    74:   end

writable?()

データを書き込むかどうかを判定する。 NOTE: 判定はサブクラスで実装する。既定値は false。

[Source]

        # File app/models/display.rb, line 96
    96:   def writable?
    97:     false
    98:   end

[Validate]