I have the following setup:
application / models / my_module / service.rb
module MyModule class Service < ActiveRecord::Base def self.types self.subclasses end def self.raw_types self.types.map { |c| c.name.split("::").last } end end end require_dependency "my_module/service/rack" require_dependency "my_module/service/rails" require_dependency "my_module/service/sinatra"
application / models / my_module / services / rack.rb:
module MyModule class Service::Rack < Service end end
application / models / my_module / services / rails.rb:
module MyModule class Service::Rails < Service end end
application / models / my_module / services / sinatra.rb:
module MyModule class Service::Sinatra < Service end end
This works so far, but now my question is:
Why do I need to add these three lines:
require_dependency "my_module/service/rack" require_dependency "my_module/service/rails" require_dependency "my_module/service/sinatra"
to my service.rb file?
If I do not add three lines:
MyModule::Service.raw_types => []
If I add three lines:
MyModule::Service.raw_types => ["Rack", "Rails", "Sinatra"]
Anyone have an idea?
Btw: I am using Ruby 2.0.0-preview1, Rails 4.0.0.rc1 and creating a new Rails engine with
rails plugin new MyModule
ruby ruby-on-rails ruby-on-rails-4
Mattherick
source share