class ReferenceBook::Setup::LockedBookSpec
Public Class Methods
new(keys_array)
click to toggle source
# File lib/reference_book/setup/locked_book_spec.rb, line 4 def initialize(keys_array) if keys_array.any? @book_keys = symbolize_and_sort(keys_array) else raise ReferenceBook::LockedBookSpecError, "A LockedBookSpec must have at least one key" end end
Public Instance Methods
verify_keys!(other_keys)
click to toggle source
# File lib/reference_book/setup/locked_book_spec.rb, line 14 def verify_keys!(other_keys) if @book_keys == other_keys.sort true else missing = @book_keys - other_keys unexpected = other_keys - @book_keys message = error_message_with(missing, unexpected) raise ReferenceBook::BookDefinitionError, message end end
Private Instance Methods
error_message_with(missing, unexpected)
click to toggle source
# File lib/reference_book/setup/locked_book_spec.rb, line 38 def error_message_with(missing, unexpected) msg = "Couldn't create Book" if missing.any? msg << ", missing keys: [#{missing.join(', ')}]" end if unexpected.any? msg << ", unexpected keys: [#{unexpected.join(', ')}]" end msg end
symbolize_and_sort(keys)
click to toggle source
# File lib/reference_book/setup/locked_book_spec.rb, line 32 def symbolize_and_sort(keys) keys.map(&:to_sym).sort end