Skip to content

Commit

Permalink
Creating message bus consumer
Browse files Browse the repository at this point in the history
  • Loading branch information
guiocavalcanti committed Sep 14, 2012
1 parent 8549bd1 commit b2fa6c9
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 41 deletions.
2 changes: 1 addition & 1 deletion .rspec
Original file line number Original file line Diff line number Diff line change
@@ -1,2 +1,2 @@
--color --color
--format progress --format documentation
3 changes: 2 additions & 1 deletion lib/permit.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
module Permit module Permit
end end


require 'permit/connection'
require 'permit/consumer'
require 'permit/rule' require 'permit/rule'
require 'permit/policy' require 'permit/policy'
require 'permit/api' require 'permit/api'
require 'permit/connection'
2 changes: 1 addition & 1 deletion lib/permit/policy.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ def initialize(opts={})
end end


def rules(args={}) def rules(args={})
opts = { :db => @db, :logger => @logger }.merge @filter.merge(args) opts = { :logger => @logger }.merge @filter.merge(args)
Rule.new(opts) Rule.new(opts)
end end
end end
Expand Down
4 changes: 2 additions & 2 deletions lib/permit/rule.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module Permit
class Rule class Rule


def initialize(opts={}) def initialize(opts={})
@db = Connection.pool @db = Connection.pool || opts.delete(:db)
@logger = opts.delete(:logger) @logger = opts.delete(:logger)
@filter = opts @filter = opts
end end
Expand All @@ -30,7 +30,7 @@ def insert(opts={})


@logger.debug "Rule##{__method__} with #{document}" if @logger @logger.debug "Rule##{__method__} with #{document}" if @logger


@db.collection.safe_insert(document) @db.collection('rules').safe_insert(document)
end end
end end
end end
36 changes: 19 additions & 17 deletions spec/policy_spec.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -2,55 +2,57 @@


module Permit module Permit
describe Policy do describe Policy do
before(:all) do
EventMachine.synchrony do
Permit::Connection.establish_connections(1, "test")
EM.stop
end
end
let(:policy) { Policy.new(:resource_id => 'r') }
let(:rules) do
Permit::Connection.pool.collection("rules")
end

context "finders" do context "finders" do
# let(:policy) { Policy.new(:resource_id => 'r') }
let(:fixtures) do let(:fixtures) do
[{ "resource_id" => "r", "subject_id" => "s", "actions" => { "a" => true} }, [{ "resource_id" => "r", "subject_id" => "s", "actions" => { "a" => true} },
{ "resource_id" => "t", "subject_id" => "s", "actions" => { "a" => true} }] { "resource_id" => "t", "subject_id" => "s", "actions" => { "a" => true} }]
end end
around do
EventMachine.synchrony do
rules.remove({})
EM.stop
end
end
it "should return a instance of rule" do it "should return a instance of rule" do
EventMachine.synchrony do EventMachine.synchrony do
Connection.establish_connections(1, "test")
rules = Connection.pool.collection("rules")
policy = Policy.new(:resource_id => 'r')
policy.rules.should be_a Rule policy.rules.should be_a Rule
EM.stop EM.stop
end end
end end


it "should count the rules" do it "should count the rules" do
EventMachine.synchrony do EventMachine.synchrony do
Permit::Connection.establish_connections(1, "test")
rules = Permit::Connection.pool.collection("rules")
rules.remove({})
rules.safe_insert(fixtures) rules.safe_insert(fixtures)
policy = Policy.new(:resource_id => 'r')
policy.rules.count.should == 1 policy.rules.count.should == 1
rules.remove({})
EM.stop EM.stop
end end
end end


it "should return a collection" do it "should return a collection" do
EventMachine.synchrony do EventMachine.synchrony do
Permit::Connection.establish_connections(1, "test")
rules = Permit::Connection.pool.collection("rules")
rules.remove({})
rules.safe_insert(fixtures) rules.safe_insert(fixtures)
policy = Policy.new(:resource_id => 'r')
policy.rules.find.should respond_to :map policy.rules.find.should respond_to :map
rules.remove({})
EM.stop EM.stop
end end
end end


it "should retreive the rules theyselves" do it "should retreive the rules theyselves" do
EventMachine.synchrony do EventMachine.synchrony do
Permit::Connection.establish_connections(1, "test")
rules = Permit::Connection.pool.collection("rules")
rules.remove({})
rules.safe_insert(fixtures) rules.safe_insert(fixtures)
policy = Policy.new(:resource_id => 'r')
policy.rules.find.first["resource_id"].should == 'r' policy.rules.find.first["resource_id"].should == 'r'
rules.remove({})
EM.stop EM.stop
end end
end end
Expand Down
31 changes: 12 additions & 19 deletions spec/rule_spec.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -2,44 +2,33 @@


module Permit module Permit
describe Rule do describe Rule do
before(:all) do
EventMachine.synchrony do
Permit::Connection.establish_connections(1, "test")
EM.stop
end
end
around do
EventMachine.synchrony do
rules.remove({})
EM.stop
end
end
let(:db) do
Permit::Connection.pool
end
let(:rules) do
db.collection("rules")
end

context "finders" do context "finders" do
let(:fixtures) do let(:fixtures) do
[{ :resource_id => "r", :subject_id => "s", :actions => { :a => true} }, [{ :resource_id => "r", :subject_id => "s", :actions => { :a => true} },
{ :resource_id => "t", :subject_id => "s", :actions => { :a => true} }] { :resource_id => "t", :subject_id => "s", :actions => { :a => true} }]
end end
it "should count data from db" do it "should count data from db" do
EventMachine.synchrony do EventMachine.synchrony do
Permit::Connection.establish_connections(1, "test")
rules = Permit::Connection.pool.collection('rules')
rules.remove({})
rules.safe_insert(fixtures) rules.safe_insert(fixtures)
rule = Rule.new(:resource_id => 'r') rule = Rule.new(:resource_id => 'r')
rule.count.should == 1 rule.count.should == 1
rules.remove({})
EM.stop EM.stop
end end
end end


it "should find data from db" do it "should find data from db" do
EventMachine.synchrony do EventMachine.synchrony do
Permit::Connection.establish_connections(1, "test")
rules = Permit::Connection.pool.collection('rules')
rules.remove({})
rules.safe_insert(fixtures) rules.safe_insert(fixtures)
rule = Rule.new(:resource_id => 'r') rule = Rule.new(:resource_id => 'r')
rule.find.to_a == fixtures.first.to_a rule.find.to_a == fixtures.first.to_a
rules.remove({})
EM.stop EM.stop
end end
end end
Expand All @@ -48,9 +37,13 @@ module Permit
context "inserts" do context "inserts" do
it "should insert rule" do it "should insert rule" do
EventMachine.synchrony do EventMachine.synchrony do
Permit::Connection.establish_connections(1, "test")
rules = Permit::Connection.pool.collection('rules')
rule = Rule.new(:resource_id => 'r', :subject_id => 's') rule = Rule.new(:resource_id => 'r', :subject_id => 's')
rules.remove({})
rule.insert(:action => :read) rule.insert(:action => :read)
rule.count(:actions => { :read => true }).should == 1 rule.count(:actions => { :read => true }).should == 1
rules.remove({})
EM.stop EM.stop
end end
end end
Expand Down

0 comments on commit b2fa6c9

Please sign in to comment.