Skip to content

Instantly share code, notes, and snippets.

@naganowl
Created January 26, 2017 20:04
Show Gist options
  • Save naganowl/73a7d5f2b7746b0bb5117ff736e298fc to your computer and use it in GitHub Desktop.
Save naganowl/73a7d5f2b7746b0bb5117ff736e298fc to your computer and use it in GitHub Desktop.
Refactors of inline code
class AssignmentScheduleDayCell extends FormattedHoursCell
className: ->
classes = []
possibleMinutes = @model.get('possible_work_day_minutes')[@date]
globalMinutes = @model.get('global_scheduled_minutes')[@date]
if globalMinutes > possibleMinutes && @model.get('scheduled_minutes')[@date]
classes.push('overallocated')
if possibleMinutes == 0
classes.push('unavailable')
start_date = @model.get('start_date')
end_date = @model.get('due_date')
if @date > end_date || @date < start_date
classes.push('out-of-range')
if @date == start_date
classes.push('start-border')
if @date == end_date
classes.push('end-border')
classes.join(' ')
class AssignmentScheduleDayCell extends FormattedHoursCell
className: ->
possibleMinutes = @model.get('possible_work_day_minutes')[@date]
globalMinutes = @model.get('global_scheduled_minutes')[@date]
startDate = @model.get('start_date')
endDate = @model.get('due_date')
classes = []
@_addOverallocatedClass(classes, globalMinutes, possibleMinutes)
@_addUnavailableClass(classes, possibleMinutes)
@_addOutOfRangeClass(classes, startDate, endDate)
@_addStartBorderClass(classes, startDate)
@_addEndBorderClass(classes, endDate)
classes.join(' ')
# ... More Code ...
_addOverallocatedClass: (classes, globalMinute, possibleMinutes) ->
if globalMinutes > possibleMinutes && @model.get('scheduled_minutes')[@date]
classes.push('overallocated')
_addUnavailableClass: (classes, possibleMinutes) ->
if possibleMinutes == 0
classes.push('unavailable')
_addOutOfRangeClass: (classes, startDate, endDate) ->
if @date > endDate || @date < startDate
classes.push('out-of-range')
_addStartBorderClass: (classes, startDate) ->
if @date == startDate
classes.push('start-border')
_addEndBorderClass: (classes, endDate) ->
if @date == endDate
classes.push('end-border')
class AssignmentScheduleDayCell extends FormattedHoursCell
className: ->
possibleMinutes = @model.get('possible_work_day_minutes')[@date]
globalMinutes = @model.get('global_scheduled_minutes')[@date]
startDate = @model.get('start_date')
endDate = @model.get('due_date')
minuteOpts = { globalMinutes, possibleMinutes, startDate, endDate, @date }
classes = _.reduce @minuteClasses(minuteOpts), (memo, minuteMethod, minuteClass) ->
memo.push minuteClass if minuteMethod()
memo
, [], this
classes.join(' ')
# ... More Code ...
minuteClasses: (opts) ->
'overallocated': -> opts.globalMinutes > opts.possibleMinutes && @model.get('scheduled_minutes')[opts.date]
'unavailable': -> opts.possibleMinutes == 0
'out-of-range': -> opts.date > opts.endDate || opts.date < opts.startDate
'start-border': -> opts.date == opts.startDate
'end-border': -> opts.date == opts.endDate
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment