Skip to content

Commit

Permalink
Merge 00d566d into afc1223
Browse files Browse the repository at this point in the history
  • Loading branch information
benSlaughter committed Sep 30, 2013
2 parents afc1223 + 00d566d commit fde7ca1
Show file tree
Hide file tree
Showing 7 changed files with 35 additions and 20 deletions.
7 changes: 7 additions & 0 deletions examples/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
output_proxy:
auto_start: true
listen_port: 3000
host_port: 80
host_address: "www.google.com"
interventions:
- OutputIntervention
9 changes: 9 additions & 0 deletions examples/output_intervention.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module OutputIntervention
def self.on_request t
puts "[%s:%d] >>> [%s:%d]" % [ t.to_client.peeraddr[2], t.to_client.peeraddr[1], t.to_server.peeraddr[2], t.to_server.peeraddr[1]]
end

def self.on_response t
puts "[%s:%d] <<< [%s:%d]" % [ t.to_client.peeraddr[2], t.to_client.peeraddr[1], t.to_server.peeraddr[2], t.to_server.peeraddr[1]]
end
end
33 changes: 15 additions & 18 deletions lib/intervention.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
require 'hashie'
require 'json'
require 'uri'
require 'yaml'

require 'intervention/proxy'
require 'intervention/transaction'
Expand All @@ -17,6 +18,15 @@ module Intervention
class << self
attr_accessor :listen_port, :host_address, :host_port, :auto_start

# Starts intervention from a config file
#
def boot config_file = nil
config = YAML.load_file config_file || "config/intervention.yml"
config.each do | proxy_name, proxy_options |
new_proxy proxy_name, proxy_options.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
end
end

# Configure Interventions default values
#
# Intervention.configure do |i|
Expand Down Expand Up @@ -78,22 +88,9 @@ def proxies
end
end

# Test method, do not use
def me
# include Intervention::Interventions::TopSites
@prox = Intervention.new_proxy "name", auto_start: true do |pr|
pr.listen_port = 2222
pr.host_port = 80
pr.host_address = 'newapi.int.brandwatch.com'

pr.load_intervention MyIntervention

pr.on_request do |t|
puts "[%s:%d] >>> [%s:%d]" % [ t.to_client.peeraddr[2], t.to_client.peeraddr[1], t.to_server.peeraddr[2], t.to_server.peeraddr[1]]
end

pr.on_response do |t|
puts "[%s:%d] <<< [%s:%d]" % [ t.to_client.peeraddr[2], t.to_client.peeraddr[1], t.to_server.peeraddr[2], t.to_server.peeraddr[1]]
end
end
Intervention.configure do |config|
config.listen_port = 3000
config.host_address = 'localhost'
config.host_port = 80
config.auto_start = true
end
5 changes: 3 additions & 2 deletions lib/intervention/proxy.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,11 @@ def initialize name, **kwargs
@listen_port = kwargs[:listen_port] || Intervention.listen_port
@host_address = kwargs[:host_address] || Intervention.host_address
@host_port = kwargs[:host_port] || Intervention.host_port
load_interventions kwargs[:interventions] if kwargs[:interventions]
end

def load_intervention intervention
@interventions << intervention
def load_interventions ints_array
@interventions |= ints_array.map {|interv| interv.class == String ? Kernel.const_get(interv) : interv }
end

# Called upon a request being made
Expand Down
1 change: 1 addition & 0 deletions spec/helper.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
require 'coveralls'

Coveralls.wear!
require 'intervention'

Expand Down
File renamed without changes.
File renamed without changes.

0 comments on commit fde7ca1

Please sign in to comment.