Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions lib/active_poro/associations.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ def has_many(target_name)

# set the instance variable only if I am now the rightful owner
instance_variable_set("@#{target_name}", members)
singular_reflection_name = self.class.name.underscore
singular_reflection_name = self.class.name.demodulize.underscore
members.each do |member|

current_owner = member.send(singular_reflection_name)
Expand Down Expand Up @@ -65,7 +65,7 @@ def has_one(target_name)

# define setter method
define_method "#{target_name}=" do |member|
singular_reflection_name = self.class.name.underscore
singular_reflection_name = self.class.name.demodulize.underscore
if member.respond_to?(singular_reflection_name) && member.send(singular_reflection_name) != self
member.send "#{singular_reflection_name}=", self
end
Expand All @@ -84,7 +84,7 @@ def belongs_to(target_name)
previous_member = instance_variable_get("@#{target_name}")
instance_variable_set("@#{target_name}", member)

singular_reflection_name = self.class.name.underscore
singular_reflection_name = self.class.name.demodulize.underscore
plural_reflection_name = singular_reflection_name.pluralize

# add myself to reflected association
Expand Down
2 changes: 1 addition & 1 deletion lib/active_poro/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module ActivePoro
VERSION = "0.0.6"
VERSION = "0.0.7"
end
24 changes: 13 additions & 11 deletions spec/active_poro_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,24 @@
describe 'ActivePoro' do
context 'Model' do
context 'associations' do

context 'has_one + belongs_to' do
before do
class Driver < BaseTestClass
include ActivePoro::Model
has_one :car
end
module Objects
class Driver < BaseTestClass
include ActivePoro::Model
has_one :car
end

class Car < BaseTestClass
include ActivePoro::Model
belongs_to :driver
class Car < BaseTestClass
include ActivePoro::Model
belongs_to :driver
end
end
end

let(:driver){ Driver.new('Mike') }
let(:car){ Car.new('A') }
let(:driver){ Objects::Driver.new('Mike') }
let(:car){ Objects::Car.new('A') }

it 'initializes unrelated/unassociated' do
expect(car.driver).to be_nil
Expand All @@ -38,7 +40,7 @@ class Car < BaseTestClass
end

context 'when the car is transferred to another owner/driver' do
let(:another_driver){ Driver.new('Bob') }
let(:another_driver){ Objects::Driver.new('Bob') }
it 'detaches the car from the previous owner' do
car.driver = driver
expect(driver.car).to eq(car)
Expand Down