私は現在、ユーザーの電子メールアドレスのドメインに基づいて他の多くのプロバイダで認証される中央認証API(Ruby on Rails)を開発中です。Rubyでインタフェースメソッドの実装を強制する方法はありますか?
私がjavaを使用していた場合、これはインターフェイスの古典的な使用例です。私がRubyを使用していることを考えれば、私はまだインタフェース構造を使用したいと思いますが、インタフェースメソッドの実装を強制する方法は本当にわかりません。
このインターフェイスの目的は、今のところ少なくとも1つのauthenticated?
メソッドを持つことです。
実装の例。ローカルデータベースのユーザーを認証します。私は私のAPI(このインタフェースを実装すなわち複数のクラス)に多くのプロバイダのサポートを追加したとき
# internal_user.rb
class InternalUser < User
def authenticated?(email, password)
user = User.find_for_database_authentication(email: email)
user && user.valid_password?(password) && !user.confirmed_at.nil?
end
end
だから、どのように私はこれらの新しいクラスは、このインタフェースを実装しようとしていることを確認することができ、言い換えれば、そのauthenticated?
確保メソッドが実装されていますか?
この記事を見てみましょう:http://shiroyasha.io/をinterfaces-in-ruby.html –
Rubyには抽象クラス、メソッド、インタフェースはありませんが、本当に必要な場合はRubyに構築するツールが用意されています。しかし最後にYAGNI。 – max