class Praxis::Plugins::PraxisMapperPlugin::Plugin
Public Class Methods
new()
click to toggle source
# File lib/praxis/plugins/praxis_mapper_plugin.rb, line 63 def initialize @options = { config_file: 'config/praxis_mapper.yml', config_data: { repositories: {} } } end
Public Instance Methods
config_key()
click to toggle source
# File lib/praxis/plugins/praxis_mapper_plugin.rb, line 72 def config_key :praxis_mapper end
load_config!()
click to toggle source
Make our own custom load_config! method
# File lib/praxis/plugins/praxis_mapper_plugin.rb, line 85 def load_config! config_file_path = application.root + options[:config_file] result = config_file_path.exist? ? YAML.load_file(config_file_path) : {} result.merge(@options[:config_data]) end
prepare_config!(node)
click to toggle source
# File lib/praxis/plugins/praxis_mapper_plugin.rb, line 76 def prepare_config!(node) node.attributes do attribute :log_stats, String, values: ['detailed', 'short', 'skip'], default: 'detailed' attribute :stats_log_level, Symbol, values: [:fatal,:error,:warn,:info,:debug], default: :info attribute :repositories, Attributor::Hash.of(key: String, value: RepositoryConfig) end end
setup!()
click to toggle source
# File lib/praxis/plugins/praxis_mapper_plugin.rb, line 91 def setup! self.config.repositories.each do |repository_name, repository_config| type = repository_config['type'] connection_settings = repository_config['connection_settings'] case type when 'sequel' self.setup_sequel_repository(repository_name, connection_settings) else raise "unsupported repository type: #{type}" end end log_stats = PraxisMapperPlugin::Plugin.instance.config.log_stats unless log_stats == 'skip' Praxis::Notifications.subscribe 'praxis.request.all' do |name, *junk, payload| if (payload[:request].identity_map?) identity_map = payload[:request].identity_map PraxisMapperPlugin::Statistics.log(payload[:request], identity_map, log_stats) end end end end
setup_sequel_repository(name, settings)
click to toggle source
# File lib/praxis/plugins/praxis_mapper_plugin.rb, line 115 def setup_sequel_repository(name, settings) db = Sequel.connect(settings.dump.symbolize_keys) Praxis::Mapper::ConnectionManager.setup do repository(name.to_sym) { db } end end