Sha256: 3355ff80cb6c722ac08fecbb1c9fbd758dc551b860c5a1a12d207b4590524e5f

Contents?: true

Size: 1.83 KB

Versions: 1

Compression:

Stored size: 1.83 KB

Contents

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

1 entries across 1 versions & 1 rubygems

Version Path
entangled-0.0.7 lib/entangled.rb