西脇.rb & 東灘.rb(第2回)でつくってみたいもの

西脇.rb & 東灘.rb(第2回)でつくってみたいもの

include すると default 値などが設定できるattr_accessorの拡張見たいな機能が追加される Mixin

仕様

基本は下のような感じ

class Some
  include Configable

  define_config :host, default: "localhost"
  define_config :port, default: 3000
end

Some.new.host #=> "localhost"

そんで、できれば以下の様にコンストラクタで初期化できるようにしたい。
できるなら、サブクラスのコンストラクタに制限なしで。

Some.new(host: "google.com").host #=> "google.com"

そんで、できれば to_hash メソッドが欲しい

Some.new.to_hash #=> { host: "localhost", port: 3000 }

そんで、できれば継承できるようにしたい。

class Sub < Some
end

Sub.new.host #=> "localhost"