Sha256: aff3df0ca09c268d657f998097a96905ef8c183f6a1244b771e38a4677e8fe9b
Contents?: true
Size: 1.29 KB
Versions: 4
Compression:
Stored size: 1.29 KB
Contents
# # @author Kristian Mandrup # # Single role Api to be included directly on the role subject class (fx User or User Account) # module Trole module Api autoload :Core, 'trole/api/core' autoload :Config, 'trole/api/config' autoload :Cache, 'trole/api/cache' autoload :Event, 'trole/api/event' autoload :Read, 'trole/api/read' autoload :Write, 'trole/api/write' autoload :Validation, 'trole/api/validation' # # When the Trole::Api is included by the Role Subject class (fx a User Account) # first include methods from Troles Common API # then include Trole API on top # # @param [Class] the role subject class (fx User or UserAccount) # module ClassMethods def included(base) base.send :include, Troles::Common::Api self.extend Troles::Common::Api::ClassMethods # draws in the #apis method from Common Api apis.each do |api| begin base.send :include, "Trole::Api::#{api.to_s.camelize}".constantize base.extend "Trole::Api::#{api.to_s.camelize}::ClassMethods".constantize # base.include_and_extend :"#{api.to_s.camelize}" rescue end end end end extend ClassMethods end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
troles-0.6.0 | lib/trole/api.rb |
troles-0.5.2 | lib/trole/api.rb |
troles-0.5.1 | lib/trole/api.rb |
troles-0.5.0 | lib/trole/api.rb |