--- /vendor/plugins/engines/lib/engines/plugin.rb +++ /vendor/plugins/engines/lib/engines/plugin.rb @@ -29,7 +29,11 @@ # under +public+. # # Defaults to "assets" (see default_public_directory). - attr_accessor :public_directory + attr_accessor :public_directory + + def attr_accessor(*args) + self.class.send :attr_accessor, *args + end protected @@ -62,6 +66,17 @@ @controller_paths = default_controller_paths @public_directory = default_public_directory end + + def load_config_data + begin + config_yml_path = File.join(@directory, "config.yml") + parsed_yml = File.exist?(config_yml_path) ? YAML.load(File.read(config_yml_path)) : {} + parsed_yml.each do |name, value| + attr_accessor name unless self.class.method_defined?(name) + self.send "#{name}=", value + end + end + end # Returns a list of paths this plugin wishes to make available in $LOAD_PATH # @@ -74,7 +89,8 @@ # Extends the superclass' load method to additionally mirror public assets def load(initializer) return if loaded? - super initializer + super initializer + load_config_data add_plugin_view_paths Assets.mirror_files_for(self) end @@ -122,3 +138,4 @@ end end end +