Sha256: 254df8742f94fb48da822c978b425df63fdee8faae4f1091adf7b4b4afbb87ad

Contents?: true

Size: 1.85 KB

Versions: 2

Compression:

Stored size: 1.85 KB

Contents

require 'redis'
require 'entangled/version'
require 'entangled/model'
require 'entangled/controller'
require 'action_dispatch/routing'
require 'active_support/concern'

module ActionDispatch::Routing
  class Mapper
    private
    def sockets_for(resource, options = {})
      @resources = resource.to_s.underscore.pluralize.to_sym
      @resource = resource.to_s.underscore.singularize.to_sym

      if options.any?
        if options[:only]
          if options[:only].is_a? Symbol
            send :"draw_#{options[:only]}"
          elsif options[:only].is_a? Array
            options[:only].each do |option|
              send :"draw_#{option}"
            end
          end
        elsif options[:except]
          if options[:except].is_a? Symbol
            (default_options - [options[:except]]).each do |option|
              send :"draw_#{option}"
            end
          elsif options[:except].is_a? Array
            (default_options - options[:except]).each do |option|
              send :"draw_#{option}"
            end
          end
        end
      else
        draw_all
      end
    end

    def default_options
      [:index, :create, :show, :destroy, :update]
    end

    def draw_all
      draw_index
      draw_create
      draw_show
      draw_destroy
      draw_update
    end

    def draw_index
      get :"/#{@resources}", to: "#{@resources}#index", as: @resources
    end

    def draw_create
      get :"/#{@resources}/create", to: "#{@resources}#create", as: :"create_#{@resource}"
    end

    def draw_show
      get :"/#{@resources}/:id", to: "#{@resources}#show", as: @resource
    end

    def draw_destroy
      get :"/#{@resources}/:id/destroy", to: "#{@resources}#destroy", as: :"destroy_#{@resource}"
    end

    def draw_update
      get :"/#{@resources}/:id/update", to: "#{@resources}#update", as: :"update_#{@resource}"
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
entangled-0.0.9 lib/entangled.rb
entangled-0.0.8 lib/entangled.rb