From e334a6dec38c6a14160aeb7ea2cae718a0f3353a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Geuken?= Date: Tue, 19 May 2015 19:52:08 +0200 Subject: [PATCH 1/7] Add a test for user_registered? --- spec/models/conference_spec.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/spec/models/conference_spec.rb b/spec/models/conference_spec.rb index 581a3b5f..b76703b6 100755 --- a/spec/models/conference_spec.rb +++ b/spec/models/conference_spec.rb @@ -1464,7 +1464,15 @@ describe Conference do end context 'user registered' do - pending "isn't tested yet" + before do + registration = create(:registration) + subject.registrations << registration + user.registrations << registration + end + + it '#user_registered? is true' do + expect(subject.user_registered? user).to be true + end end end From 3e77241f8ae04de8e18d1668698748830f39bf39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Geuken?= Date: Tue, 19 May 2015 19:54:10 +0200 Subject: [PATCH 2/7] user_registered: Return false if user is nil The return value of user_registered? is only used as boolean. So we can don't need to hande non existent users separately. --- app/models/conference.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/models/conference.rb b/app/models/conference.rb index e7a0790c..7e7e48dc 100644 --- a/app/models/conference.rb +++ b/app/models/conference.rb @@ -119,11 +119,10 @@ class Conference < ActiveRecord::Base # ====Args # * +user+ -> The user we check for # ====Returns - # * +nil+ -> If the user doesn't exist # * +false+ -> If the user is registered # * +true+ - If the user isn't registered def user_registered? user - return nil if user.nil? + return false if user.nil? if registrations.where(user_id: user.id).count == 0 return false From a1d022d0bec941cfe5f2aa781933f3b27a4d0209 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Geuken?= Date: Tue, 19 May 2015 19:57:50 +0200 Subject: [PATCH 3/7] Refactor user_registered? method --- app/models/conference.rb | 8 +------- spec/models/conference_spec.rb | 6 ++++++ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/models/conference.rb b/app/models/conference.rb index 7e7e48dc..9faab764 100644 --- a/app/models/conference.rb +++ b/app/models/conference.rb @@ -122,13 +122,7 @@ class Conference < ActiveRecord::Base # * +false+ -> If the user is registered # * +true+ - If the user isn't registered def user_registered? user - return false if user.nil? - - if registrations.where(user_id: user.id).count == 0 - return false - else - return true - end + user.present? && registrations.where(user_id: user.id).count > 0 end ## diff --git a/spec/models/conference_spec.rb b/spec/models/conference_spec.rb index b76703b6..a0a5576e 100755 --- a/spec/models/conference_spec.rb +++ b/spec/models/conference_spec.rb @@ -1463,6 +1463,12 @@ describe Conference do end end + context 'user is nil' do + it '#user_registered? is false' do + expect(subject.user_registered? user).to be false + end + end + context 'user registered' do before do registration = create(:registration) From c58585d44596698ad4ed12593a1d0cc959bb7944 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Geuken?= Date: Tue, 19 May 2015 20:05:02 +0200 Subject: [PATCH 4/7] cleanup: if !object.nil? -> if object --- app/models/conference.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/conference.rb b/app/models/conference.rb index 9faab764..58e8b3ef 100644 --- a/app/models/conference.rb +++ b/app/models/conference.rb @@ -164,7 +164,7 @@ class Conference < ActiveRecord::Base def cfp_open? today = Date.current cfp = self.call_for_paper - if !cfp.nil? && (cfp.start_date.. cfp.end_date).cover?(today) + if cfp && (cfp.start_date.. cfp.end_date).cover?(today) return true end From 5a5745947d24219db0a05ad927438bd7c0914358 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Geuken?= Date: Tue, 19 May 2015 20:06:26 +0200 Subject: [PATCH 5/7] Simplify cfp_open? method --- app/models/conference.rb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/models/conference.rb b/app/models/conference.rb index 58e8b3ef..fcc4aa6e 100644 --- a/app/models/conference.rb +++ b/app/models/conference.rb @@ -162,13 +162,9 @@ class Conference < ActiveRecord::Base # * +false+ -> If the CFP is not set or today isn't in the CFP period. # * +true+ -> If today is in the CFP period. def cfp_open? - today = Date.current cfp = self.call_for_paper - if cfp && (cfp.start_date.. cfp.end_date).cover?(today) - return true - end - return false + cfp.present? && (cfp.start_date..cfp.end_date).cover?(Date.current) end ## From 12fa985fffe3d7018575111190094f735263fc93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Geuken?= Date: Tue, 19 May 2015 20:12:03 +0200 Subject: [PATCH 6/7] conference: refactor some conditions --- app/models/conference.rb | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/models/conference.rb b/app/models/conference.rb index fcc4aa6e..834a8f07 100644 --- a/app/models/conference.rb +++ b/app/models/conference.rb @@ -257,11 +257,11 @@ class Conference < ActiveRecord::Base # ====Returns # * +Integer+ -> weeks def cfp_weeks - result = 0 if call_for_paper - result = call_for_paper.weeks + call_for_paper.weeks + else + 0 end - result end ## @@ -270,11 +270,11 @@ class Conference < ActiveRecord::Base # ====Returns # * +Integer+ -> start week def get_registration_start_week - result = -1 if registration_period - result = registration_period.start_date.strftime('%W').to_i + registration_period.start_date.strftime('%W').to_i + else + -1 end - result end ## @@ -283,11 +283,11 @@ class Conference < ActiveRecord::Base # ====Returns # * +Integer+ -> start week def get_registration_end_week - result = -1 if registration_period - result = registration_period.end_date.strftime('%W').to_i + registration_period.end_date.strftime('%W').to_i + else + -1 end - result end ## From c972731e20071c536c7e4432212e67d61a9bfb69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Geuken?= Date: Tue, 19 May 2015 20:18:28 +0200 Subject: [PATCH 7/7] Small refactoring of get_status & self.get_event_state_line_colors --- app/models/conference.rb | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/app/models/conference.rb b/app/models/conference.rb index 834a8f07..ea3e5edb 100644 --- a/app/models/conference.rb +++ b/app/models/conference.rb @@ -306,18 +306,21 @@ class Conference < ActiveRecord::Base # ====Returns # * +hash+ -> true -> filled / false -> missing def get_status - result = {} - result['registration'] = registration_date_set? - result['cfp'] = cfp_set? - result['venue'] = venue_set? - result['rooms'] = rooms_set? - result['tracks'] = tracks_set? - result['event_types'] = event_types_set? - result['difficulty_levels'] = difficulty_levels_set? - result['splashpage'] = splashpage && splashpage.public? - result['process'] = calculate_setup_progress(result) - result['short_title'] = short_title - result + result = { + registration: registration_date_set?, + cfp: cfp_set?, + venue: venue_set?, + rooms: rooms_set?, + tracks: tracks_set?, + event_types: event_types_set?, + difficulty_levels: difficulty_levels_set?, + splashpage: splashpage && splashpage.public? + } + + result.update( + process: calculate_setup_progress(result), + short_title: short_title + ).with_indifferent_access end ## @@ -487,11 +490,11 @@ class Conference < ActiveRecord::Base # ====Returns # * +List+ def self.get_event_state_line_colors - result = [] - result.push(short_title: 'Submitted', color: 'blue') - result.push(short_title: 'Confirmed', color: 'green') - result.push(short_title: 'Unconfirmed', color: 'orange') - result + [ + { short_title: 'Submitted', color: 'blue' }, + { short_title: 'Confirmed', color: 'green' }, + { short_title: 'Unconfirmed', color: 'orange' } + ] end ##