Class: ModelValidation

Inherits:
Object
  • Object
show all
Defined in:
lib/life_game_viewer/model/model_validation.rb

Instance Method Summary collapse

Instance Method Details

#class_methods_missing(instance) ⇒ Object



21
22
23
# File 'lib/life_game_viewer/model/model_validation.rb', line 21

def class_methods_missing(instance)
  required_class_methods - instance.class.methods
end

#instance_methods_missing(instance) ⇒ Object



25
26
27
# File 'lib/life_game_viewer/model/model_validation.rb', line 25

def instance_methods_missing(instance)
  required_instance_methods - instance.methods
end

#methods_missing(instance) ⇒ Object



29
30
31
32
# File 'lib/life_game_viewer/model/model_validation.rb', line 29

def methods_missing(instance)
  missing_class_method_display_names = class_methods_missing(instance).map { |m| "self.#{m}" }
  missing_class_method_display_names + instance_methods_missing(instance)
end

#methods_missing_message(instance) ⇒ Object



34
35
36
37
38
39
# File 'lib/life_game_viewer/model/model_validation.rb', line 34

def methods_missing_message(instance)
  missing_methods = methods_missing(instance)
  missing_methods.empty? \
      ? nil \
      : "Model is missing the following required methods: #{missing_methods.join(", ")}."
end

#required_class_methodsObject



3
4
5
6
7
# File 'lib/life_game_viewer/model/model_validation.rb', line 3

def required_class_methods
  [
      :create_from_string
  ]
end

#required_instance_methodsObject



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/life_game_viewer/model/model_validation.rb', line 9

def required_instance_methods
  [
      :row_count,
      :column_count,
      :alive?,
      :set_living_state,
      :set_living_states,
      :next_generation_model,
      :number_living
  ]
end