From f6b35fcc283b812923fdcaae11092d0b4ce626ce Mon Sep 17 00:00:00 2001 From: Diego Araújo Date: Mon, 18 Apr 2016 16:54:55 -0300 Subject: [PATCH] Add Repository#attributes method --- app/models/repository.rb | 6 ++++++ spec/models/repository_spec.rb | 28 ++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 0 deletions(-) diff --git a/app/models/repository.rb b/app/models/repository.rb index f1b23c5..ca6c665 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -1,6 +1,8 @@ class Repository < KalibroClient::Entities::Processor::Repository include KalibroRecord + attr_writer :attributes + def self.public_or_owned_by_user(user = nil) repository_attributes = RepositoryAttributes.where(public: true) repository_attributes += RepositoryAttributes.where(user_id: user.id, public: false) if user @@ -17,4 +19,8 @@ class Repository < KalibroClient::Entities::Processor::Repository def self.latest(count=1) all.sort { |one, another| another.id <=> one.id }.first(count) end + + def attributes + @attributes ||= RepositoryAttributes.find_by_repository_id(@id) + end end diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb index 18ce826..fa9c261 100644 --- a/spec/models/repository_spec.rb +++ b/spec/models/repository_spec.rb @@ -1,6 +1,34 @@ require 'rails_helper' describe Repository do + describe 'methods' do + describe 'attributes' do + subject { FactoryGirl.build(:repository) } + + context 'when there are attributes' do + let!(:repository_attributes) { FactoryGirl.build(:repository_attributes) } + + before :each do + RepositoryAttributes.expects(:find_by_repository_id).returns(repository_attributes) + end + + it 'is expected to return the repository attributes' do + expect(subject.attributes).to eq(repository_attributes) + end + end + + context 'when there are no attributes' do + before :each do + RepositoryAttributes.expects(:find_by_repository_id).returns(nil) + end + + it 'is expected to return the repository attributes' do + expect(subject.attributes).to be_nil + end + end + end + end + describe 'class method' do describe 'latest' do let!(:repository) { FactoryGirl.build(:repository, id: 1) } -- libgit2 0.21.2