add accepts? method
まだ誰も着手していません。
評価
調査の方向性
HyperComponent基底クラスから始めて、既存のfires実装とaccepts_listの処理を確認します。コンポーネントが親に指定されたイベントのハンドラがあるかどうかを判定できるようにaccepts?を追加し、その後、親にハンドラがない状態でイベントを発火しても引き続きエラーが発生しないことを確認します。
索引モデルが issue の本文から書いたものです。
説明
Its useful for a component to know if its parent is going to accept an event from the component.
fires :foo
...
... accepts? :foo # does my parent component have a foo handler?
Note that firing foo will NOT cause an error even if the parent has not handler, but it still might be useful to know (i.e. to control say a save button, but only if the parent is looking for you to do the save)
Can be added with the following patch in the HyperComponent base class:
class << self
def accepts_list
@accepts_list ||= {}
end
def fires(name, opts = {})
aka = opts[:alias] || "#{name}!"
name = if name =~ /^<(.+)>$/
name.gsub(/^<(.+)>$/, '\1')
elsif Hyperstack::Component::Event::BUILT_IN_EVENTS.include?("on#{name.event_camelize}")
"on#{name.event_camelize}"
else
"on_#{name}"
end
validator.event(name)
define_method(aka) { |*args| props[name]&.call(*args) }
accepts_list[opts[:alias] || aka.chomp('!')] = name
end
end
def accepts?(aka)
props[self.class.accepts_list[aka]]
end
- 主要言語
- JavaScript
- スター
- 538
- フォーク
- 41
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
hyperstack-org/hyperstack のほかの issue
-
enhancement needs doc
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
hyperstack-org/hyperstack#359 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
hyperstack-org/hyperstack#267 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
hyperstack-org/hyperstack#457 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
hyperstack-org/hyperstack#456 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 15/100
hyperstack-org/hyperstack#455 · コメント 2 件 ·
hyperstack-org/hyperstack の issue をすべて見る
似ている issue
-
ai-observability bug team/ai-observability
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
AllTheMods/ATM-10-L#19 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
SignalK/n2k-signalk#345 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
-
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
JuliaPluto/PlutoPlotly.jl#72 ·