我有我試圖確定的基礎上創造的輸入輸出類。覆蓋的實例屬性有條件
class MyCommand
attr_accessor :command
def initialize(command = nil)
@command = command
end
# @return Boolean
def global?
@command.start_with?('--global')
end
end
這只是正常,像這樣:
foo = MyCommand.new('hello')
foo.command #=> "hello"
foo.global? #=> false
然而,當我通過我的條件,我得到一些不錯的,一些不那麼良好的效果:
bar = MyCommand.new('--global world')
bar.global? #=> true
bar.command #=> "--global world"
即,command
包括我的情況。
我試圖創建另一個方法SUB OUT從具有任何命令--global
,但後來我得到略有不同的結果:
bar.command = 'world'
bar.command #=> "world"
bar.global? #=> false
但是,這會產生變異的bar
當前狀態。
我怎麼可能去讓這個類和方法的行爲,這樣的命令改變之後也global?
標誌保持?
更妙的是,我能實現所有的只有global?
方法中的變化 - 從而最大限度地減少我對整個班級變化的影響?
你想'@ command'是'--global world'但是當你調用'barr.command'或做你真正想要'@ command'是'world'當輸入爲''返回world' - 全球化世界? – Joseph
@Joseph我想,我想'bar.command'返回'world',但對於'bar.global?'返回TRUE;。 –