module GridRest
Constants
- RESERVED_REQUEST_PARAMETERS
Public Class Methods
default_parameters(params, type = :global, namespace = :default)
click to toggle source
# File lib/grid_rest.rb, line 27 def self.default_parameters(params, type = :global, namespace = :default) additional_parameters[namespace][type].update(params) end
extend_class(klass)
click to toggle source
# File lib/grid_rest.rb, line 31 def self.extend_class(klass) klass.send(:extend, GridRestExtensions) self.grid_config.namespaces.keys.each do |k| klass.send(:class_eval, "class << self; #{namespace_methods(k)}; end") end end
include_in(klass)
click to toggle source
# File lib/grid_rest.rb, line 20 def self.include_in(klass) klass.send(:include, GridRestExtensions) self.grid_config.namespaces.keys.each do |k| klass.send(:class_eval, namespace_methods(k)) end end
load_config!()
click to toggle source
Very important method. This will set the appropriate settings for the current rails environment and appends this system to the specified classes
# File lib/grid_rest.rb, line 60 def self.load_config! config_path = File.join(Rails.root, 'config', 'grid_rest.yml') raise "File #{config_path} does not exist" unless File.exist?(config_path) h = YAML::load_file(config_path) rescue nil raise "Config file #{config_path} could not be parsed" unless h raise "Config file #{config_path} needs an environment" unless h[Rails.env] self.grid_config.namespaces = HashWithIndifferentAccess.new unless self.grid_config.namespaces.is_a?(Hash) h[Rails.env].each do |k, v| if v.is_a?(Hash) self.grid_config.namespaces[k.to_sym] = HashWithIndifferentAccess.new(v) self.additional_parameters[k.to_sym] = self.additional_parameters[:default].deep_dup # Copy default structure else self.grid_config[k.to_sym] = v end end # Now extend/include in configured classes for inclusion in Array.wrap(h['include_in']) self.include_in inclusion.constantize end for extension in Array.wrap(h['extend']) self.extend_class extension.constantize end end
namespace_methods(namespace)
click to toggle source
# File lib/grid_rest.rb, line 37 def self.namespace_methods(namespace) expand_str = <<-END def #{namespace}_get(url, rparams = {}) grid_rest_get(url, rparams.merge(:grid_rest_namespace => '#{namespace}')) end def #{namespace}_post(url, rparams = {}) grid_rest_post(url, rparams.merge(:grid_rest_namespace => '#{namespace}')) end def #{namespace}_put(url, rparams = {}) grid_rest_put(url, rparams.merge(:grid_rest_namespace => '#{namespace}')) end def #{namespace}_delete(url, rparams = {}) grid_rest_delete(url, rparams.merge(:grid_rest_namespace => '#{namespace}')) end def #{namespace}_default_parameters(params, request_types = :global) set_namespaced_default_grid_rest_parameters(:#{namespace}, params, request_types) end alias_method :set_#{namespace}_default_parameters, :#{namespace}_default_parameters END end