w silniku mi pomóc rozwijać, Forem używamy mattr_accessors
na stałej najwyższego poziomu tak:
lib/forem.rb
module Forem
mattr_accessor :user_class, :theme, :formatter, :default_gravatar, :default_gravatar_image,
:user_profile_links, :email_from_address, :autocomplete_field,
:avatar_user_method, :per_page
...
Następnie wewnątrz config/initializers
pytamy użytkownikom skonfiguruj je tak:
Forem.user_class = 'User'
Forem.autocomplete_field = :login
Z krótką nazwą klejnotu, nie ma różnicy ce pomiędzy tym rozwiązaniem a drugim, które zaproponuję.
Rozwiązanie nr 2
Nadal używać mattr_accessors
na najwyższym poziomie stałym, ale oferują config
metodę na tym module, która przyjmuje blok i daje obiektu:
module ReallyComplicatedGemName
mattr_accessor :....
def self.config(&block)
yield(self)
end
...
ten sposób, w jaki ludzie mogą:
ReallyComplicatedGemName.config do |config|
config.user_class = "User"
...
end
Idealne, dzięki! –