Class: CabezaDeTermo::JsonSpec::JsonExpressionExplainer
- Inherits:
- 
      ExpressionWalker
      
        - Object
- ExpressionWalker
- CabezaDeTermo::JsonSpec::JsonExpressionExplainer
 
- Defined in:
- lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb
Instance Method Summary collapse
- #append(text) ⇒ Object
- #append_in_new_line(text) ⇒ Object
- #append_tabs ⇒ Object
- 
  
    
      #append_with_tabs(text)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Text. 
- #cr ⇒ Object
- #during_tab(&block) ⇒ Object
- #explain(json_walkable) ⇒ Object
- 
  
    
      #initialize  ⇒ JsonExpressionExplainer 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of JsonExpressionExplainer. 
- #reset ⇒ Object
- #tab ⇒ Object
- #text ⇒ Object
- #walk_each_defined_field_of(json_object) ⇒ Object
- #walk_expectation(expectation) ⇒ Object
- #walk_expectation_runner(expectation_runner) ⇒ Object
- #walk_json_any_of(any_of) ⇒ Object
- #walk_json_anything(json_anything) ⇒ Object
- #walk_json_each(json_each_expression) ⇒ Object
- #walk_json_each_field(json_each_field) ⇒ Object
- #walk_json_field(json_field_expression) ⇒ Object
- #walk_json_field_name(json_field_name) ⇒ Object
- #walk_json_list(json_list_expression) ⇒ Object
- #walk_json_object(json_object) ⇒ Object
- #walk_json_scalar(json_scalar) ⇒ Object
- #walk_json_spec(json_spec) ⇒ Object
- #walk_on(json_walkable) ⇒ Object
- #walk_on_expectations_of(expression) ⇒ Object
Methods inherited from ExpressionWalker
Constructor Details
#initialize ⇒ JsonExpressionExplainer
Returns a new instance of JsonExpressionExplainer.
| 6 7 8 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 6 def initialize() reset end | 
Instance Method Details
#append(text) ⇒ Object
| 164 165 166 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 164 def append(text) @text += text end | 
#append_in_new_line(text) ⇒ Object
| 155 156 157 158 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 155 def append_in_new_line(text) cr append_with_tabs(text) end | 
#append_tabs ⇒ Object
| 160 161 162 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 160 def append_tabs() @tabs.times { |i| tab } end | 
#append_with_tabs(text) ⇒ Object
Text
| 150 151 152 153 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 150 def append_with_tabs(text) append_tabs append(text) end | 
#cr ⇒ Object
| 168 169 170 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 168 def cr() append("\n") end | 
#during_tab(&block) ⇒ Object
| 176 177 178 179 180 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 176 def during_tab(&block) @tabs += 1 block.call @tabs -= 1 end | 
#explain(json_walkable) ⇒ Object
| 19 20 21 22 23 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 19 def explain(json_walkable) reset walk_on(json_walkable) text end | 
#reset ⇒ Object
| 10 11 12 13 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 10 def reset @text = '' @tabs = 0 end | 
#tab ⇒ Object
| 172 173 174 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 172 def tab() append("\t") end | 
#text ⇒ Object
| 15 16 17 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 15 def text @text end | 
#walk_each_defined_field_of(json_object) ⇒ Object
| 52 53 54 55 56 57 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 52 def walk_each_defined_field_of(json_object) json_object.fields.each do |field| cr walk_on(field) end end | 
#walk_expectation(expectation) ⇒ Object
| 144 145 146 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 144 def walk_expectation(expectation) append(' .' + expectation.explain) end | 
#walk_expectation_runner(expectation_runner) ⇒ Object
| 140 141 142 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 140 def walk_expectation_runner(expectation_runner) expectation_runner.explain_with(self) end | 
#walk_json_any_of(any_of) ⇒ Object
| 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 119 def walk_json_any_of(any_of) append_with_tabs('any of') isFirst = true any_of.possible_expressions.each do |expression| append_in_new_line('or') unless isFirst during_tab do cr walk_on(expression) end isFirst = false end end | 
#walk_json_anything(json_anything) ⇒ Object
| 109 110 111 112 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 109 def walk_json_anything(json_anything) append_with_tabs('anything') walk_on_expectations_of(json_anything) end | 
#walk_json_each(json_each_expression) ⇒ Object
| 91 92 93 94 95 96 97 98 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 91 def walk_json_each(json_each_expression) return unless json_each_expression.has_each_item_expression? cr during_tab do walk_on(json_each_expression.each_item_expression) end end | 
#walk_json_each_field(json_each_field) ⇒ Object
| 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 59 def walk_json_each_field(json_each_field) append_with_tabs('each field') during_tab do append_in_new_line('name') walk_on( json_each_field.name_expression ) end during_tab do append_in_new_line('value') cr during_tab do walk_on(json_each_field.value_expression) end end end | 
#walk_json_field(json_field_expression) ⇒ Object
| 100 101 102 103 104 105 106 107 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 100 def walk_json_field(json_field_expression) append_with_tabs('"' + json_field_expression.name + '":') during_tab do cr walk_on(json_field_expression.value_expression) end end | 
#walk_json_field_name(json_field_name) ⇒ Object
| 77 78 79 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 77 def walk_json_field_name(json_field_name) walk_on_expectations_of(json_field_name) end | 
#walk_json_list(json_list_expression) ⇒ Object
| 81 82 83 84 85 86 87 88 89 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 81 def walk_json_list(json_list_expression) append_with_tabs('[') walk_on(json_list_expression.each_expression) append_in_new_line(']') walk_on_expectations_of(json_list_expression) end | 
#walk_json_object(json_object) ⇒ Object
| 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 33 def walk_json_object(json_object) append_with_tabs('{') during_tab do walk_each_defined_field_of(json_object) end if json_object.has_each_field? during_tab do cr walk_on(json_object.each_field_expression) end end append_in_new_line('}') walk_on_expectations_of(json_object) end | 
#walk_json_scalar(json_scalar) ⇒ Object
| 114 115 116 117 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 114 def walk_json_scalar(json_scalar) append_with_tabs('scalar') walk_on_expectations_of(json_scalar) end | 
#walk_json_spec(json_spec) ⇒ Object
| 29 30 31 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 29 def walk_json_spec(json_spec) walk_on(json_spec.root_expression) end | 
#walk_on(json_walkable) ⇒ Object
| 25 26 27 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 25 def walk_on(json_walkable) json_walkable.accept_walker(self) end | 
#walk_on_expectations_of(expression) ⇒ Object
| 136 137 138 | # File 'lib/cabeza-de-termo/json-spec/walkers/json-expression-explainer.rb', line 136 def walk_on_expectations_of(expression) walk_on(expression.expectations_runner) end |