Sha256: 0ab43bbb9a718d5aeaaaf4bcac1e12997a8d4df8baf85c79b8ebc55442eefffb

Contents?: true

Size: 1.87 KB

Versions: 4

Compression:

Stored size: 1.87 KB

Contents

require 'redis'
require 'entangled/version'
require 'entangled/helpers'
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

4 entries across 4 versions & 1 rubygems

Version Path
entangled-0.0.13 lib/entangled.rb
entangled-0.0.12 lib/entangled.rb
entangled-0.0.11 lib/entangled.rb
entangled-0.0.10 lib/entangled.rb