Class: Praxis::Plugins::PraxisMapperPlugin::Plugin
- Inherits:
-
Praxis::Plugin
- Object
- Praxis::Plugin
- Praxis::Plugins::PraxisMapperPlugin::Plugin
- Includes:
- Singleton
- Defined in:
- lib/praxis/plugins/praxis_mapper_plugin.rb
Instance Attribute Summary
Attributes inherited from Praxis::Plugin
#application, #block, #config, #config_attribute
Instance Method Summary collapse
- #config_key ⇒ Object
-
#initialize ⇒ Plugin
constructor
A new instance of Plugin.
-
#load_config! ⇒ Object
Make our own custom load_config! method.
- #prepare_config!(node) ⇒ Object
- #setup! ⇒ Object
- #setup_sequel_repository(name, settings) ⇒ Object
Methods inherited from Praxis::Plugin
#after, #before, #options, #register_doc_browser_plugin
Constructor Details
#initialize ⇒ Plugin
Returns a new instance of Plugin.
63 64 65 66 67 68 69 70 |
# File 'lib/praxis/plugins/praxis_mapper_plugin.rb', line 63 def initialize @options = { config_file: 'config/praxis_mapper.yml', config_data: { repositories: {} } } end |
Instance Method Details
#config_key ⇒ Object
72 73 74 |
# File 'lib/praxis/plugins/praxis_mapper_plugin.rb', line 72 def config_key :praxis_mapper end |
#load_config! ⇒ Object
Make our own custom load_config! method
85 86 87 88 89 |
# File 'lib/praxis/plugins/praxis_mapper_plugin.rb', line 85 def load_config! config_file_path = application.root + [:config_file] result = config_file_path.exist? ? YAML.load_file(config_file_path) : {} result.merge(@options[:config_data]) end |
#prepare_config!(node) ⇒ Object
76 77 78 79 80 81 82 |
# 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! ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# 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) ⇒ Object
115 116 117 118 119 120 121 |
# 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 |