Module: Ansible::Transmit

Defined in:
lib/ansible/transmit.rb

Defined Under Namespace

Modules: TransmitModalHelper

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



3
4
5
# File 'lib/ansible/transmit.rb', line 3

def self.extended(base)
  base.class_eval { include ActionController::Live }
end

Instance Method Details

#build_route(beacon_name) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/ansible/transmit.rb', line 18

def build_route(beacon_name)
  controller_name = self.to_s.underscore.gsub('_controller', '')
  Rails.application.routes.draw do
    Rails.application.routes.routes.named_routes.each do |path, route|
      get path, route.defaults
    end
    get "/#{controller_name}/#{beacon_name}" => "#{controller_name}##{beacon_name}"
  end
end

#transmit(name) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/ansible/transmit.rb', line 7

def transmit(name)
  beacon_name = :"#{name}_ansible_beacon"
  build_route beacon_name
  model = ConstantResolver.new(name).lookup_constant

  model.extend TransmitModalHelper

  define_method beacon_name, beacon_action
  name
end