プロジェクト

全般

プロフィール

バグ #1377

未完了

Diva::Modelの子クラス(A)で定義したフィールドの型がAの子クラス(B)で適用されない

Yuto Tokunaga さんが約5年前に追加. 約5年前に更新.

ステータス:
実装待ち
優先度:
通常
担当者:
対象バージョン:
プラグイン名:
ブランチ:
クラッシュする:
いいえ

説明

Diva::Modelの子クラス(A)でfield.uri等で定義したフィールドの型が,Aの子クラス(B)ではStringになってしまい,期待した型が得られません.

require 'diva'

class A < Diva::Model
  field.uri :uri
  field.time :created
end

class B < Base
  field.uri :alt_uri
  field.time :updated
end

s = 'https://example.com/'
t = '2019-08-27T20:01:00'

a = A.new uri: s, created: t
b = B.new uri: s, alt_uri: s, created: t, updated: t

p a.uri.class.name # => "Diva::URI" 
p a.created.class.name # => "Time" 
p b.uri.class.name # => "String" 
p b.alt_uri.class.name # => "Diva:URI" 
p b.created.class.name # => "String" 
p b.updated.class.name # => "Time" 

Ruby v2.6.2, diva v1.0.0 で確認.

他の形式にエクスポート: Atom PDF