action_command 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2cd366bbe081e13a248bcff7ef460127574f2c73
4
- data.tar.gz: 3d8a05a55480d5d10fa609d4e9d69ede0bd849c2
3
+ metadata.gz: b605106ac4ef7cb666c6a7f0dc61c3c5da322c7a
4
+ data.tar.gz: 155ec4f83025e426935f424024e009af572d1081
5
5
  SHA512:
6
- metadata.gz: 1e7674270076303b570cd4687d4816218edd54eb8afa96a01611c9c0cc42a4eea0827dc769e8690958f3b737bdee6a2bcb09d7171fe9faee545b793c4b2c84f7
7
- data.tar.gz: 3adbd8341c395686657dd8d9dd8a840e760dc1f0c96f93aa2c8af935b9a3b3ea6c4035f1efaa46f1a6342c7c12de9288acb991cd37233f94dd62a5fbe9425370
6
+ metadata.gz: eda1183bbe4a57392f76f90ff681d0f3b82c2cf5516cb2c2b9ce7adc14e22ffee3c73a8df9bdc856e57df10566bd8928cffffdae673970427c008c4726faa708
7
+ data.tar.gz: c6302fd177aa94a8e74caa101dcf56bb4c1d19e93c4a087490a0a5b79f25286cb2f2479e66924dd9cb72da259144bc3fb2b34b4e40398eae416b2e9ceb79d006
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- action_command (0.1.4)
4
+ action_command (0.1.5)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -210,17 +210,62 @@ command executions:
210
210
  ```
211
211
 
212
212
  When logging is on, the logger will receive single-line JSON messages
213
- at the debugging level for all command inputs and outputs. All child
213
+ at the info level for all command inputs and outputs. All child
214
214
  commands under a parent will automatically be tagged with a serial
215
215
  number for correlation. The result looks like this:
216
216
 
217
- TODO
217
+ ```
218
+ I, [2016-03-07T14:31:53.292843 #47956] INFO -- : {"sequence":"ade3605e40a4d5bf724c5f3d8e43420b","cmd":"CreateUserAction","depth":0,"kind":"command_input","msg":{"name":"Chris","email":"test@test.com","age":41}}
219
+ I, [2016-03-07T14:31:53.293007 #47956] INFO -- : {"sequence":"ade3605e40a4d5bf724c5f3d8e43420b","cmd":"CreateUserAction","depth":0,"kind":"info","msg":"start_transaction"}
220
+ I, [2016-03-07T14:31:53.308212 #47956] INFO -- : {"sequence":"ade3605e40a4d5bf724c5f3d8e43420b","cmd":"CreateUserAction","depth":0,"kind":"info","msg":"Saved user"}
221
+ I, [2016-03-07T14:31:53.308336 #47956] INFO -- : {"sequence":"ade3605e40a4d5bf724c5f3d8e43420b","cmd":"CreateUserAction","depth":0,"kind":"command_input","msg":{}}
222
+ I, [2016-03-07T14:31:53.308442 #47956] INFO -- : {"sequence":"ade3605e40a4d5bf724c5f3d8e43420b","cmd":"CreateUserAction","depth":0,"kind":"info","msg":"in child transaction"}
223
+ I, [2016-03-07T14:31:53.308504 #47956] INFO -- : {"sequence":"ade3605e40a4d5bf724c5f3d8e43420b","cmd":"CreateUserAction","depth":0,"kind":"command_output","msg":{}}
224
+ I, [2016-03-07T14:31:53.308562 #47956] INFO -- : {"sequence":"ade3605e40a4d5bf724c5f3d8e43420b","cmd":"CreateUserAction","depth":0,"kind":"info","msg":"end_transaction"}
225
+ I, [2016-03-07T14:31:53.308837 #47956] INFO -- : {"sequence":"ade3605e40a4d5bf724c5f3d8e43420b","cmd":"CreateUserAction","depth":0,"kind":"command_output","msg":{"user":{"email":"test@test.com","name":"Chris","age":41}}}
226
+ ```
218
227
 
219
228
  You can also optionally add your own entries to the log by calling
220
- `result.debug`, `result.info`, or `result.failed`. If you pass these
221
- calls a string, they will include it as `msg` in the JSON. If you
222
- pass them a hash, its contents will be merged into the JSON.
229
+ `result.debug`, `result.info`, or `result.failed`. You can pass these calls
230
+ a string or a hash.
231
+
232
+ You can use the included LogParser to parse this log if you like, or you can
233
+ use the included PrettyPrintLogAction to print the log in a nested plain text
234
+ format, like:
235
+
236
+ ```
237
+ HelloWorldCommand (8d315fe58dab39cb4f23a9f4ef366c8b)
238
+ input:
239
+ name: Chris
240
+ Hello Chris
241
+ output:
242
+ greeting: Hello Chris
243
+ ```
244
+
245
+ ### ActiveRecord Transactions
246
+
247
+ You can wrap your command contents in a transaction by subclassing
248
+ `ActionCommand::ExecutableTransaction`. You must explicitly require
249
+ `action_command/executable_transaction` to avoid a default dependency
250
+ on ActiveRecord.
251
+
252
+ If you call `result.failed` within a transaction, your transaction will
253
+ automatically be rolled back.
223
254
 
255
+ ### Utilities
256
+
257
+ It is often useful to allow a single parameter to be either an integer object id,
258
+ an instance of the object itself, or a string used to lookup the object (used
259
+ in command-line rake tasks). You can do this using
260
+
261
+ ```ruby
262
+ def execute_internal(result)
263
+ user = ActionCommand::Utils.find_object(User, @user_id) { |p| User.find_by_email(p) }
264
+ end
265
+ ```
266
+
267
+ This will user User.find if passed an Integer, will return a user object, or will yield
268
+ to the lookup otherwise.
224
269
 
225
270
  ## Development
226
271
 
@@ -232,7 +277,6 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
232
277
 
233
278
  Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/action_command. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
234
279
 
235
-
236
280
  ## License
237
281
 
238
282
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -1124,7 +1124,7 @@ ActionCommand#execute_test.</p>
1124
1124
  </div>
1125
1125
 
1126
1126
  <div id="footer">
1127
- Generated on Mon Mar 7 14:27:17 2016 by
1127
+ Generated on Mon May 16 08:49:39 2016 by
1128
1128
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1129
1129
  0.8.7.6 (ruby-2.2.3).
1130
1130
  </div>
@@ -1401,7 +1401,7 @@ description.</p>
1401
1401
  </div>
1402
1402
 
1403
1403
  <div id="footer">
1404
- Generated on Mon Mar 7 14:27:17 2016 by
1404
+ Generated on Mon May 16 08:49:39 2016 by
1405
1405
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1406
1406
  0.8.7.6 (ruby-2.2.3).
1407
1407
  </div>
@@ -117,6 +117,35 @@
117
117
  <h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
118
118
  <ul class="summary">
119
119
 
120
+ <li class="public ">
121
+ <span class="summary_signature">
122
+
123
+ <a href="#last_error-instance_method" title="#last_error (instance method)">- (String) <strong>last_error</strong> </a>
124
+
125
+
126
+
127
+ </span>
128
+
129
+
130
+
131
+
132
+ <span class="note title readonly">readonly</span>
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+ <span class="summary_desc"><div class='inline'>
143
+ <p>The last string error message.</p>
144
+ </div></span>
145
+
146
+ </li>
147
+
148
+
120
149
  <li class="public ">
121
150
  <span class="summary_signature">
122
151
 
@@ -653,13 +682,15 @@
653
682
  9
654
683
  10
655
684
  11
656
- 12</pre>
685
+ 12
686
+ 13</pre>
657
687
  </td>
658
688
  <td>
659
689
  <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 8</span>
660
690
 
661
691
  <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span>
662
692
  <span class='ivar'>@result_code</span> <span class='op'>=</span> <span class='const'>RESULT_CODE_OK</span>
693
+ <span class='ivar'>@last_error</span> <span class='op'>=</span> <span class='kw'>nil</span>
663
694
  <span class='ivar'>@values</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rbracket'>]</span>
664
695
  <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='kw'>nil</span>
665
696
  <span class='kw'>end</span></pre>
@@ -676,7 +707,68 @@
676
707
 
677
708
  <span id=""></span>
678
709
  <div class="method_details first">
679
- <h3 class="signature first" id="result_code-instance_method">
710
+ <h3 class="signature first" id="last_error-instance_method">
711
+
712
+ - (<tt>String</tt>) <strong>last_error</strong> <span class="extras">(readonly)</span>
713
+
714
+
715
+
716
+
717
+
718
+ </h3><div class="docstring">
719
+ <div class="discussion">
720
+
721
+ <p>Returns the last string error message</p>
722
+
723
+
724
+ </div>
725
+ </div>
726
+ <div class="tags">
727
+
728
+ <p class="tag_title">Returns:</p>
729
+ <ul class="return">
730
+
731
+ <li>
732
+
733
+
734
+ <span class='type'>(<tt>String</tt>)</span>
735
+
736
+
737
+
738
+ &mdash;
739
+ <div class='inline'>
740
+ <p>the last string error message</p>
741
+ </div>
742
+
743
+ </li>
744
+
745
+ </ul>
746
+
747
+ </div><table class="source_code">
748
+ <tr>
749
+ <td>
750
+ <pre class="lines">
751
+
752
+
753
+ 79
754
+ 80
755
+ 81</pre>
756
+ </td>
757
+ <td>
758
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 79</span>
759
+
760
+ <span class='kw'>def</span> <span class='id identifier rubyid_last_error'>last_error</span>
761
+ <span class='ivar'>@last_error</span>
762
+ <span class='kw'>end</span></pre>
763
+ </td>
764
+ </tr>
765
+ </table>
766
+ </div>
767
+
768
+
769
+ <span id=""></span>
770
+ <div class="method_details ">
771
+ <h3 class="signature " id="result_code-instance_method">
680
772
 
681
773
  - (<tt>Integer</tt>) <strong>result_code</strong> <span class="extras">(readonly)</span>
682
774
 
@@ -719,12 +811,12 @@
719
811
  <pre class="lines">
720
812
 
721
813
 
722
- 73
723
- 74
724
- 75</pre>
814
+ 76
815
+ 77
816
+ 78</pre>
725
817
  </td>
726
818
  <td>
727
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 73</span>
819
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 76</span>
728
820
 
729
821
  <span class='kw'>def</span> <span class='id identifier rubyid_result_code'>result_code</span>
730
822
  <span class='ivar'>@result_code</span>
@@ -767,12 +859,12 @@
767
859
  <pre class="lines">
768
860
 
769
861
 
770
- 116
771
- 117
772
- 118</pre>
862
+ 122
863
+ 123
864
+ 124</pre>
773
865
  </td>
774
866
  <td>
775
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 116</span>
867
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 122</span>
776
868
 
777
869
  <span class='kw'>def</span> <span class='op'>[]</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
778
870
  <span class='kw'>return</span> <span class='id identifier rubyid_current'>current</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span>
@@ -808,12 +900,12 @@
808
900
  <pre class="lines">
809
901
 
810
902
 
811
- 101
812
- 102
813
- 103</pre>
903
+ 107
904
+ 108
905
+ 109</pre>
814
906
  </td>
815
907
  <td>
816
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 101</span>
908
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 107</span>
817
909
 
818
910
  <span class='kw'>def</span> <span class='op'>[]=</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='rparen'>)</span>
819
911
  <span class='id identifier rubyid_current'>current</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_val'>val</span>
@@ -849,12 +941,12 @@
849
941
  <pre class="lines">
850
942
 
851
943
 
852
- 96
853
- 97
854
- 98</pre>
944
+ 102
945
+ 103
946
+ 104</pre>
855
947
  </td>
856
948
  <td>
857
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 96</span>
949
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 102</span>
858
950
 
859
951
  <span class='kw'>def</span> <span class='id identifier rubyid_current'>current</span>
860
952
  <span class='kw'>return</span> <span class='ivar'>@values</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span>
@@ -908,15 +1000,15 @@
908
1000
  <pre class="lines">
909
1001
 
910
1002
 
911
- 29
912
1003
  30
913
1004
  31
914
1005
  32
915
1006
  33
916
- 34</pre>
1007
+ 34
1008
+ 35</pre>
917
1009
  </td>
918
1010
  <td>
919
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 29</span>
1011
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 30</span>
920
1012
 
921
1013
  <span class='kw'>def</span> <span class='id identifier rubyid_debug'>debug</span><span class='lparen'>(</span><span class='id identifier rubyid_msg'>msg</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
922
1014
  <span class='kw'>if</span> <span class='ivar'>@logger</span>
@@ -955,12 +1047,12 @@
955
1047
  <pre class="lines">
956
1048
 
957
1049
 
958
- 46
959
1050
  47
960
- 48</pre>
1051
+ 48
1052
+ 49</pre>
961
1053
  </td>
962
1054
  <td>
963
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 46</span>
1055
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 47</span>
964
1056
 
965
1057
  <span class='kw'>def</span> <span class='id identifier rubyid_error'>error</span><span class='lparen'>(</span><span class='id identifier rubyid_msg'>msg</span><span class='rparen'>)</span>
966
1058
  <span class='ivar'>@logger</span><span class='period'>.</span><span class='id identifier rubyid_error'>error</span><span class='lparen'>(</span><span class='id identifier rubyid_build_log'>build_log</span><span class='lparen'>(</span><span class='id identifier rubyid_msg'>msg</span><span class='comma'>,</span> <span class='const'>ActionCommand</span><span class='op'>::</span><span class='const'>LOG_KIND_ERROR</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@logger</span>
@@ -1017,16 +1109,18 @@ result.</p>
1017
1109
  <pre class="lines">
1018
1110
 
1019
1111
 
1020
- 53
1021
1112
  54
1022
1113
  55
1023
- 56</pre>
1114
+ 56
1115
+ 57
1116
+ 58</pre>
1024
1117
  </td>
1025
1118
  <td>
1026
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 53</span>
1119
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 54</span>
1027
1120
 
1028
1121
  <span class='kw'>def</span> <span class='id identifier rubyid_failed'>failed</span><span class='lparen'>(</span><span class='id identifier rubyid_msg'>msg</span><span class='rparen'>)</span>
1029
1122
  <span class='ivar'>@result_code</span> <span class='op'>=</span> <span class='const'>RESULT_CODE_FAILED</span>
1123
+ <span class='ivar'>@last_error</span> <span class='op'>=</span> <span class='id identifier rubyid_msg'>msg</span>
1030
1124
  <span class='id identifier rubyid_error'>error</span><span class='lparen'>(</span><span class='id identifier rubyid_msg'>msg</span><span class='rparen'>)</span>
1031
1125
  <span class='kw'>end</span></pre>
1032
1126
  </td>
@@ -1092,16 +1186,18 @@ result.</p>
1092
1186
  <pre class="lines">
1093
1187
 
1094
1188
 
1095
- 62
1096
- 63
1097
1189
  64
1098
- 65</pre>
1190
+ 65
1191
+ 66
1192
+ 67
1193
+ 68</pre>
1099
1194
  </td>
1100
1195
  <td>
1101
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 62</span>
1196
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 64</span>
1102
1197
 
1103
1198
  <span class='kw'>def</span> <span class='id identifier rubyid_failed_with_code'>failed_with_code</span><span class='lparen'>(</span><span class='id identifier rubyid_msg'>msg</span><span class='comma'>,</span> <span class='id identifier rubyid_result_code'>result_code</span><span class='rparen'>)</span>
1104
1199
  <span class='ivar'>@result_code</span> <span class='op'>=</span> <span class='id identifier rubyid_result_code'>result_code</span>
1200
+ <span class='ivar'>@last_error</span> <span class='op'>=</span> <span class='id identifier rubyid_msg'>msg</span>
1105
1201
  <span class='id identifier rubyid_error'>error</span><span class='lparen'>(</span><span class='id identifier rubyid_msg'>msg</span><span class='rparen'>)</span>
1106
1202
  <span class='kw'>end</span></pre>
1107
1203
  </td>
@@ -1153,15 +1249,15 @@ result.</p>
1153
1249
  <pre class="lines">
1154
1250
 
1155
1251
 
1156
- 38
1157
1252
  39
1158
1253
  40
1159
1254
  41
1160
1255
  42
1161
- 43</pre>
1256
+ 43
1257
+ 44</pre>
1162
1258
  </td>
1163
1259
  <td>
1164
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 38</span>
1260
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 39</span>
1165
1261
 
1166
1262
  <span class='kw'>def</span> <span class='id identifier rubyid_info'>info</span><span class='lparen'>(</span><span class='id identifier rubyid_msg'>msg</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
1167
1263
  <span class='kw'>if</span> <span class='ivar'>@logger</span>
@@ -1213,12 +1309,12 @@ result.</p>
1213
1309
  <pre class="lines">
1214
1310
 
1215
1311
 
1216
- 111
1217
- 112
1218
- 113</pre>
1312
+ 117
1313
+ 118
1314
+ 119</pre>
1219
1315
  </td>
1220
1316
  <td>
1221
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 111</span>
1317
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 117</span>
1222
1318
 
1223
1319
  <span class='kw'>def</span> <span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
1224
1320
  <span class='kw'>return</span> <span class='id identifier rubyid_current'>current</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
@@ -1254,14 +1350,14 @@ result.</p>
1254
1350
  <pre class="lines">
1255
1351
 
1256
1352
 
1257
- 121
1258
- 122
1259
- 123
1260
- 124
1261
- 125</pre>
1353
+ 127
1354
+ 128
1355
+ 129
1356
+ 130
1357
+ 131</pre>
1262
1358
  </td>
1263
1359
  <td>
1264
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 121</span>
1360
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 127</span>
1265
1361
 
1266
1362
  <span class='kw'>def</span> <span class='id identifier rubyid_log_input'>log_input</span><span class='lparen'>(</span><span class='id identifier rubyid_params'>params</span><span class='rparen'>)</span>
1267
1363
  <span class='kw'>return</span> <span class='kw'>unless</span> <span class='ivar'>@logger</span>
@@ -1299,16 +1395,16 @@ result.</p>
1299
1395
  <pre class="lines">
1300
1396
 
1301
1397
 
1302
- 128
1303
- 129
1304
- 130
1305
- 131
1306
- 132
1307
- 133
1308
- 134</pre>
1398
+ 134
1399
+ 135
1400
+ 136
1401
+ 137
1402
+ 138
1403
+ 139
1404
+ 140</pre>
1309
1405
  </td>
1310
1406
  <td>
1311
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 128</span>
1407
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 134</span>
1312
1408
 
1313
1409
  <span class='kw'>def</span> <span class='id identifier rubyid_log_output'>log_output</span>
1314
1410
  <span class='kw'>return</span> <span class='kw'>unless</span> <span class='ivar'>@logger</span>
@@ -1348,15 +1444,15 @@ result.</p>
1348
1444
  <pre class="lines">
1349
1445
 
1350
1446
 
1351
- 15
1352
1447
  16
1353
1448
  17
1354
1449
  18
1355
1450
  19
1356
- 20</pre>
1451
+ 20
1452
+ 21</pre>
1357
1453
  </td>
1358
1454
  <td>
1359
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 15</span>
1455
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 16</span>
1360
1456
 
1361
1457
  <span class='kw'>def</span> <span class='id identifier rubyid_logger='>logger=</span><span class='lparen'>(</span><span class='id identifier rubyid_logger'>logger</span><span class='rparen'>)</span>
1362
1458
  <span class='kw'>return</span> <span class='kw'>unless</span> <span class='id identifier rubyid_logger'>logger</span>
@@ -1413,12 +1509,12 @@ result.</p>
1413
1509
  <pre class="lines">
1414
1510
 
1415
1511
 
1416
- 23
1417
1512
  24
1418
- 25</pre>
1513
+ 25
1514
+ 26</pre>
1419
1515
  </td>
1420
1516
  <td>
1421
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 23</span>
1517
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 24</span>
1422
1518
 
1423
1519
  <span class='kw'>def</span> <span class='id identifier rubyid_logging?'>logging?</span>
1424
1520
  <span class='kw'>return</span> <span class='op'>!</span><span class='ivar'>@logger</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
@@ -1472,12 +1568,12 @@ result.</p>
1472
1568
  <pre class="lines">
1473
1569
 
1474
1570
 
1475
- 68
1476
- 69
1477
- 70</pre>
1571
+ 71
1572
+ 72
1573
+ 73</pre>
1478
1574
  </td>
1479
1575
  <td>
1480
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 68</span>
1576
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 71</span>
1481
1577
 
1482
1578
  <span class='kw'>def</span> <span class='id identifier rubyid_ok?'>ok?</span>
1483
1579
  <span class='kw'>return</span> <span class='ivar'>@result_code</span> <span class='op'>==</span> <span class='const'>RESULT_CODE_OK</span>
@@ -1513,14 +1609,14 @@ result.</p>
1513
1609
  <pre class="lines">
1514
1610
 
1515
1611
 
1516
- 89
1517
- 90
1518
- 91
1519
- 92
1520
- 93</pre>
1612
+ 95
1613
+ 96
1614
+ 97
1615
+ 98
1616
+ 99</pre>
1521
1617
  </td>
1522
1618
  <td>
1523
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 89</span>
1619
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 95</span>
1524
1620
 
1525
1621
  <span class='kw'>def</span> <span class='id identifier rubyid_pop'>pop</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
1526
1622
  <span class='kw'>return</span> <span class='kw'>unless</span> <span class='id identifier rubyid_key'>key</span>
@@ -1558,20 +1654,20 @@ result.</p>
1558
1654
  <pre class="lines">
1559
1655
 
1560
1656
 
1561
- 76
1562
- 77
1563
- 78
1564
- 79
1565
- 80
1566
- 81
1567
1657
  82
1568
1658
  83
1569
1659
  84
1570
1660
  85
1571
- 86</pre>
1661
+ 86
1662
+ 87
1663
+ 88
1664
+ 89
1665
+ 90
1666
+ 91
1667
+ 92</pre>
1572
1668
  </td>
1573
1669
  <td>
1574
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 76</span>
1670
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 82</span>
1575
1671
 
1576
1672
  <span class='kw'>def</span> <span class='id identifier rubyid_push'>push</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_cmd'>cmd</span><span class='rparen'>)</span>
1577
1673
  <span class='kw'>return</span> <span class='kw'>unless</span> <span class='id identifier rubyid_key'>key</span>
@@ -1615,12 +1711,12 @@ result.</p>
1615
1711
  <pre class="lines">
1616
1712
 
1617
1713
 
1618
- 137
1619
- 138
1620
- 139</pre>
1714
+ 143
1715
+ 144
1716
+ 145</pre>
1621
1717
  </td>
1622
1718
  <td>
1623
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 137</span>
1719
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 143</span>
1624
1720
 
1625
1721
  <span class='kw'>def</span> <span class='id identifier rubyid_root_command'>root_command</span><span class='lparen'>(</span><span class='id identifier rubyid_cls'>cls</span><span class='rparen'>)</span>
1626
1722
  <span class='ivar'>@stack</span> <span class='op'>&lt;&lt;</span> <span class='lbrace'>{</span> <span class='label'>key:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>cmd:</span> <span class='id identifier rubyid_cls'>cls</span> <span class='rbrace'>}</span> <span class='kw'>if</span> <span class='ivar'>@logger</span>
@@ -1656,12 +1752,12 @@ result.</p>
1656
1752
  <pre class="lines">
1657
1753
 
1658
1754
 
1659
- 106
1660
- 107
1661
- 108</pre>
1755
+ 112
1756
+ 113
1757
+ 114</pre>
1662
1758
  </td>
1663
1759
  <td>
1664
- <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 106</span>
1760
+ <pre class="code"><span class="info file"># File 'lib/action_command/result.rb', line 112</span>
1665
1761
 
1666
1762
  <span class='kw'>def</span> <span class='id identifier rubyid_sequence'>sequence</span>
1667
1763
  <span class='kw'>return</span> <span class='ivar'>@sequence</span>
@@ -1676,7 +1772,7 @@ result.</p>
1676
1772
  </div>
1677
1773
 
1678
1774
  <div id="footer">
1679
- Generated on Mon Mar 7 14:27:17 2016 by
1775
+ Generated on Mon May 16 08:49:39 2016 by
1680
1776
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1681
1777
  0.8.7.6 (ruby-2.2.3).
1682
1778
  </div>
@@ -320,7 +320,7 @@ specific one through <span class='object_link'><a href="ActionCommand/Result.htm
320
320
 
321
321
  </div>
322
322
  </dt>
323
- <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>0.1.4</span><span class='tstring_end'>&#39;</span></span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
323
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>0.1.5</span><span class='tstring_end'>&#39;</span></span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
324
324
 
325
325
  <dt id="logger-classvariable" class="">@@logger =
326
326
  <div class="docstring">
@@ -1550,7 +1550,7 @@ validations. See <span class='object_link'><a href="ActionCommand/Executable.ht
1550
1550
  </div>
1551
1551
 
1552
1552
  <div id="footer">
1553
- Generated on Mon Mar 7 14:27:17 2016 by
1553
+ Generated on Mon May 16 08:49:39 2016 by
1554
1554
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1555
1555
  0.8.7.6 (ruby-2.2.3).
1556
1556
  </div>
data/doc/_index.html CHANGED
@@ -205,7 +205,7 @@
205
205
  </div>
206
206
 
207
207
  <div id="footer">
208
- Generated on Mon Mar 7 14:27:16 2016 by
208
+ Generated on Mon May 16 08:49:38 2016 by
209
209
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
210
210
  0.8.7.6 (ruby-2.2.3).
211
211
  </div>
data/doc/file.README.html CHANGED
@@ -270,17 +270,57 @@ executions:</p>
270
270
  </code></pre>
271
271
 
272
272
  <p>When logging is on, the logger will receive single-line JSON messages at
273
- the debugging level for all command inputs and outputs. All child commands
274
- under a parent will automatically be tagged with a serial number for
275
- correlation. The result looks like this:</p>
276
-
277
- <p>TODO</p>
273
+ the info level for all command inputs and outputs. All child commands under
274
+ a parent will automatically be tagged with a serial number for correlation.
275
+ The result looks like this:</p>
276
+
277
+ <pre class="code ruby"><code class="ruby">I, [2016-03-07T14:31:53.292843 #47956] INFO -- : {&quot;sequence&quot;:&quot;ade3605e40a4d5bf724c5f3d8e43420b&quot;,&quot;cmd&quot;:&quot;CreateUserAction&quot;,&quot;depth&quot;:0,&quot;kind&quot;:&quot;command_input&quot;,&quot;msg&quot;:{&quot;name&quot;:&quot;Chris&quot;,&quot;email&quot;:&quot;test@test.com&quot;,&quot;age&quot;:41}}
278
+ I, [2016-03-07T14:31:53.293007 #47956] INFO -- : {&quot;sequence&quot;:&quot;ade3605e40a4d5bf724c5f3d8e43420b&quot;,&quot;cmd&quot;:&quot;CreateUserAction&quot;,&quot;depth&quot;:0,&quot;kind&quot;:&quot;info&quot;,&quot;msg&quot;:&quot;start_transaction&quot;}
279
+ I, [2016-03-07T14:31:53.308212 #47956] INFO -- : {&quot;sequence&quot;:&quot;ade3605e40a4d5bf724c5f3d8e43420b&quot;,&quot;cmd&quot;:&quot;CreateUserAction&quot;,&quot;depth&quot;:0,&quot;kind&quot;:&quot;info&quot;,&quot;msg&quot;:&quot;Saved user&quot;}
280
+ I, [2016-03-07T14:31:53.308336 #47956] INFO -- : {&quot;sequence&quot;:&quot;ade3605e40a4d5bf724c5f3d8e43420b&quot;,&quot;cmd&quot;:&quot;CreateUserAction&quot;,&quot;depth&quot;:0,&quot;kind&quot;:&quot;command_input&quot;,&quot;msg&quot;:{}}
281
+ I, [2016-03-07T14:31:53.308442 #47956] INFO -- : {&quot;sequence&quot;:&quot;ade3605e40a4d5bf724c5f3d8e43420b&quot;,&quot;cmd&quot;:&quot;CreateUserAction&quot;,&quot;depth&quot;:0,&quot;kind&quot;:&quot;info&quot;,&quot;msg&quot;:&quot;in child transaction&quot;}
282
+ I, [2016-03-07T14:31:53.308504 #47956] INFO -- : {&quot;sequence&quot;:&quot;ade3605e40a4d5bf724c5f3d8e43420b&quot;,&quot;cmd&quot;:&quot;CreateUserAction&quot;,&quot;depth&quot;:0,&quot;kind&quot;:&quot;command_output&quot;,&quot;msg&quot;:{}}
283
+ I, [2016-03-07T14:31:53.308562 #47956] INFO -- : {&quot;sequence&quot;:&quot;ade3605e40a4d5bf724c5f3d8e43420b&quot;,&quot;cmd&quot;:&quot;CreateUserAction&quot;,&quot;depth&quot;:0,&quot;kind&quot;:&quot;info&quot;,&quot;msg&quot;:&quot;end_transaction&quot;}
284
+ I, [2016-03-07T14:31:53.308837 #47956] INFO -- : {&quot;sequence&quot;:&quot;ade3605e40a4d5bf724c5f3d8e43420b&quot;,&quot;cmd&quot;:&quot;CreateUserAction&quot;,&quot;depth&quot;:0,&quot;kind&quot;:&quot;command_output&quot;,&quot;msg&quot;:{&quot;user&quot;:{&quot;email&quot;:&quot;test@test.com&quot;,&quot;name&quot;:&quot;Chris&quot;,&quot;age&quot;:41}}}</code></pre>
278
285
 
279
286
  <p>You can also optionally add your own entries to the log by calling
280
287
  <code>result.debug</code>, <code>result.info</code>, or
281
- <code>result.failed</code>. If you pass these calls a string, they will
282
- include it as <code>msg</code> in the JSON. If you pass them a hash, its
283
- contents will be merged into the JSON.</p>
288
+ <code>result.failed</code>. You can pass these calls a string or a hash.</p>
289
+
290
+ <p>You can use the included LogParser to parse this log if you like, or you
291
+ can use the included PrettyPrintLogAction to print the log in a nested
292
+ plain text format, like:</p>
293
+
294
+ <pre class="code ruby"><code class="ruby">HelloWorldCommand (8d315fe58dab39cb4f23a9f4ef366c8b)
295
+ input:
296
+ name: Chris
297
+ Hello Chris
298
+ output:
299
+ greeting: Hello Chris</code></pre>
300
+
301
+ <h3 id="label-ActiveRecord+Transactions">ActiveRecord Transactions</h3>
302
+
303
+ <p>You can wrap your command contents in a transaction by subclassing
304
+ <code>ActionCommand::ExecutableTransaction</code>. You must explicitly
305
+ require <code>action_command/executable_transaction</code> to avoid a
306
+ default dependency on ActiveRecord.</p>
307
+
308
+ <p>If you call <code>result.failed</code> within a transaction, your
309
+ transaction will automatically be rolled back.</p>
310
+
311
+ <h3 id="label-Utilities">Utilities</h3>
312
+
313
+ <p>It is often useful to allow a single parameter to be either an integer
314
+ object id, an instance of the object itself, or a string used to lookup the
315
+ object (used in command-line rake tasks). You can do this using</p>
316
+
317
+ <pre class="code ruby"><code class="ruby"><span class='kw'>def</span> <span class='id identifier rubyid_execute_internal'>execute_internal</span><span class='lparen'>(</span><span class='id identifier rubyid_result'>result</span><span class='rparen'>)</span>
318
+ <span class='id identifier rubyid_user'>user</span> <span class='op'>=</span> <span class='const'>ActionCommand</span><span class='op'>::</span><span class='const'>Utils</span><span class='period'>.</span><span class='id identifier rubyid_find_object'>find_object</span><span class='lparen'>(</span><span class='const'>User</span><span class='comma'>,</span> <span class='ivar'>@user_id</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_p'>p</span><span class='op'>|</span> <span class='const'>User</span><span class='period'>.</span><span class='id identifier rubyid_find_by_email'>find_by_email</span><span class='lparen'>(</span><span class='id identifier rubyid_p'>p</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
319
+ <span class='kw'>end</span>
320
+ </code></pre>
321
+
322
+ <p>This will user User.find if passed an Integer, will return a user object,
323
+ or will yield to the lookup otherwise.</p>
284
324
 
285
325
  <h2 id="label-Development">Development</h2>
286
326
 
@@ -312,7 +352,7 @@ href="http://opensource.org/licenses/MIT">MIT License</a>.</p>
312
352
  </div></div>
313
353
 
314
354
  <div id="footer">
315
- Generated on Mon Mar 7 14:27:17 2016 by
355
+ Generated on Mon May 16 08:49:39 2016 by
316
356
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
317
357
  0.8.7.6 (ruby-2.2.3).
318
358
  </div>
data/doc/index.html CHANGED
@@ -270,17 +270,57 @@ executions:</p>
270
270
  </code></pre>
271
271
 
272
272
  <p>When logging is on, the logger will receive single-line JSON messages at
273
- the debugging level for all command inputs and outputs. All child commands
274
- under a parent will automatically be tagged with a serial number for
275
- correlation. The result looks like this:</p>
276
-
277
- <p>TODO</p>
273
+ the info level for all command inputs and outputs. All child commands under
274
+ a parent will automatically be tagged with a serial number for correlation.
275
+ The result looks like this:</p>
276
+
277
+ <pre class="code ruby"><code class="ruby">I, [2016-03-07T14:31:53.292843 #47956] INFO -- : {&quot;sequence&quot;:&quot;ade3605e40a4d5bf724c5f3d8e43420b&quot;,&quot;cmd&quot;:&quot;CreateUserAction&quot;,&quot;depth&quot;:0,&quot;kind&quot;:&quot;command_input&quot;,&quot;msg&quot;:{&quot;name&quot;:&quot;Chris&quot;,&quot;email&quot;:&quot;test@test.com&quot;,&quot;age&quot;:41}}
278
+ I, [2016-03-07T14:31:53.293007 #47956] INFO -- : {&quot;sequence&quot;:&quot;ade3605e40a4d5bf724c5f3d8e43420b&quot;,&quot;cmd&quot;:&quot;CreateUserAction&quot;,&quot;depth&quot;:0,&quot;kind&quot;:&quot;info&quot;,&quot;msg&quot;:&quot;start_transaction&quot;}
279
+ I, [2016-03-07T14:31:53.308212 #47956] INFO -- : {&quot;sequence&quot;:&quot;ade3605e40a4d5bf724c5f3d8e43420b&quot;,&quot;cmd&quot;:&quot;CreateUserAction&quot;,&quot;depth&quot;:0,&quot;kind&quot;:&quot;info&quot;,&quot;msg&quot;:&quot;Saved user&quot;}
280
+ I, [2016-03-07T14:31:53.308336 #47956] INFO -- : {&quot;sequence&quot;:&quot;ade3605e40a4d5bf724c5f3d8e43420b&quot;,&quot;cmd&quot;:&quot;CreateUserAction&quot;,&quot;depth&quot;:0,&quot;kind&quot;:&quot;command_input&quot;,&quot;msg&quot;:{}}
281
+ I, [2016-03-07T14:31:53.308442 #47956] INFO -- : {&quot;sequence&quot;:&quot;ade3605e40a4d5bf724c5f3d8e43420b&quot;,&quot;cmd&quot;:&quot;CreateUserAction&quot;,&quot;depth&quot;:0,&quot;kind&quot;:&quot;info&quot;,&quot;msg&quot;:&quot;in child transaction&quot;}
282
+ I, [2016-03-07T14:31:53.308504 #47956] INFO -- : {&quot;sequence&quot;:&quot;ade3605e40a4d5bf724c5f3d8e43420b&quot;,&quot;cmd&quot;:&quot;CreateUserAction&quot;,&quot;depth&quot;:0,&quot;kind&quot;:&quot;command_output&quot;,&quot;msg&quot;:{}}
283
+ I, [2016-03-07T14:31:53.308562 #47956] INFO -- : {&quot;sequence&quot;:&quot;ade3605e40a4d5bf724c5f3d8e43420b&quot;,&quot;cmd&quot;:&quot;CreateUserAction&quot;,&quot;depth&quot;:0,&quot;kind&quot;:&quot;info&quot;,&quot;msg&quot;:&quot;end_transaction&quot;}
284
+ I, [2016-03-07T14:31:53.308837 #47956] INFO -- : {&quot;sequence&quot;:&quot;ade3605e40a4d5bf724c5f3d8e43420b&quot;,&quot;cmd&quot;:&quot;CreateUserAction&quot;,&quot;depth&quot;:0,&quot;kind&quot;:&quot;command_output&quot;,&quot;msg&quot;:{&quot;user&quot;:{&quot;email&quot;:&quot;test@test.com&quot;,&quot;name&quot;:&quot;Chris&quot;,&quot;age&quot;:41}}}</code></pre>
278
285
 
279
286
  <p>You can also optionally add your own entries to the log by calling
280
287
  <code>result.debug</code>, <code>result.info</code>, or
281
- <code>result.failed</code>. If you pass these calls a string, they will
282
- include it as <code>msg</code> in the JSON. If you pass them a hash, its
283
- contents will be merged into the JSON.</p>
288
+ <code>result.failed</code>. You can pass these calls a string or a hash.</p>
289
+
290
+ <p>You can use the included LogParser to parse this log if you like, or you
291
+ can use the included PrettyPrintLogAction to print the log in a nested
292
+ plain text format, like:</p>
293
+
294
+ <pre class="code ruby"><code class="ruby">HelloWorldCommand (8d315fe58dab39cb4f23a9f4ef366c8b)
295
+ input:
296
+ name: Chris
297
+ Hello Chris
298
+ output:
299
+ greeting: Hello Chris</code></pre>
300
+
301
+ <h3 id="label-ActiveRecord+Transactions">ActiveRecord Transactions</h3>
302
+
303
+ <p>You can wrap your command contents in a transaction by subclassing
304
+ <code>ActionCommand::ExecutableTransaction</code>. You must explicitly
305
+ require <code>action_command/executable_transaction</code> to avoid a
306
+ default dependency on ActiveRecord.</p>
307
+
308
+ <p>If you call <code>result.failed</code> within a transaction, your
309
+ transaction will automatically be rolled back.</p>
310
+
311
+ <h3 id="label-Utilities">Utilities</h3>
312
+
313
+ <p>It is often useful to allow a single parameter to be either an integer
314
+ object id, an instance of the object itself, or a string used to lookup the
315
+ object (used in command-line rake tasks). You can do this using</p>
316
+
317
+ <pre class="code ruby"><code class="ruby"><span class='kw'>def</span> <span class='id identifier rubyid_execute_internal'>execute_internal</span><span class='lparen'>(</span><span class='id identifier rubyid_result'>result</span><span class='rparen'>)</span>
318
+ <span class='id identifier rubyid_user'>user</span> <span class='op'>=</span> <span class='const'>ActionCommand</span><span class='op'>::</span><span class='const'>Utils</span><span class='period'>.</span><span class='id identifier rubyid_find_object'>find_object</span><span class='lparen'>(</span><span class='const'>User</span><span class='comma'>,</span> <span class='ivar'>@user_id</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_p'>p</span><span class='op'>|</span> <span class='const'>User</span><span class='period'>.</span><span class='id identifier rubyid_find_by_email'>find_by_email</span><span class='lparen'>(</span><span class='id identifier rubyid_p'>p</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
319
+ <span class='kw'>end</span>
320
+ </code></pre>
321
+
322
+ <p>This will user User.find if passed an Integer, will return a user object,
323
+ or will yield to the lookup otherwise.</p>
284
324
 
285
325
  <h2 id="label-Development">Development</h2>
286
326
 
@@ -312,7 +352,7 @@ href="http://opensource.org/licenses/MIT">MIT License</a>.</p>
312
352
  </div></div>
313
353
 
314
354
  <div id="footer">
315
- Generated on Mon Mar 7 14:27:16 2016 by
355
+ Generated on Mon May 16 08:49:38 2016 by
316
356
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
317
357
  0.8.7.6 (ruby-2.2.3).
318
358
  </div>
data/doc/method_list.html CHANGED
@@ -160,14 +160,14 @@
160
160
 
161
161
 
162
162
  <li class="r1 ">
163
- <span class='object_link'><a href="ActionCommand/ExecutableTransaction.html#execute-instance_method" title="ActionCommand::ExecutableTransaction#execute (method)">#execute</a></span>
164
- <small>ActionCommand::ExecutableTransaction</small>
163
+ <span class='object_link'><a href="ActionCommand/Executable.html#execute-instance_method" title="ActionCommand::Executable#execute (method)">#execute</a></span>
164
+ <small>ActionCommand::Executable</small>
165
165
  </li>
166
166
 
167
167
 
168
168
  <li class="r2 ">
169
- <span class='object_link'><a href="ActionCommand/Executable.html#execute-instance_method" title="ActionCommand::Executable#execute (method)">#execute</a></span>
170
- <small>ActionCommand::Executable</small>
169
+ <span class='object_link'><a href="ActionCommand/ExecutableTransaction.html#execute-instance_method" title="ActionCommand::ExecutableTransaction#execute (method)">#execute</a></span>
170
+ <small>ActionCommand::ExecutableTransaction</small>
171
171
  </li>
172
172
 
173
173
 
@@ -238,26 +238,26 @@
238
238
 
239
239
 
240
240
  <li class="r2 ">
241
- <span class='object_link'><a href="ActionCommand/LogParser.html#initialize-instance_method" title="ActionCommand::LogParser#initialize (method)">#initialize</a></span>
242
- <small>ActionCommand::LogParser</small>
241
+ <span class='object_link'><a href="ActionCommand/Result.html#initialize-instance_method" title="ActionCommand::Result#initialize (method)">#initialize</a></span>
242
+ <small>ActionCommand::Result</small>
243
243
  </li>
244
244
 
245
245
 
246
246
  <li class="r1 ">
247
- <span class='object_link'><a href="ActionCommand/Result.html#initialize-instance_method" title="ActionCommand::Result#initialize (method)">#initialize</a></span>
248
- <small>ActionCommand::Result</small>
247
+ <span class='object_link'><a href="ActionCommand/LogParser.html#initialize-instance_method" title="ActionCommand::LogParser#initialize (method)">#initialize</a></span>
248
+ <small>ActionCommand::LogParser</small>
249
249
  </li>
250
250
 
251
251
 
252
252
  <li class="r2 ">
253
- <span class='object_link'><a href="ActionCommand/Executable.html#initialize-instance_method" title="ActionCommand::Executable#initialize (method)">#initialize</a></span>
254
- <small>ActionCommand::Executable</small>
253
+ <span class='object_link'><a href="ActionCommand/InputOutput.html#initialize-instance_method" title="ActionCommand::InputOutput#initialize (method)">#initialize</a></span>
254
+ <small>ActionCommand::InputOutput</small>
255
255
  </li>
256
256
 
257
257
 
258
258
  <li class="r1 ">
259
- <span class='object_link'><a href="ActionCommand/InputOutput.html#initialize-instance_method" title="ActionCommand::InputOutput#initialize (method)">#initialize</a></span>
260
- <small>ActionCommand::InputOutput</small>
259
+ <span class='object_link'><a href="ActionCommand/Executable.html#initialize-instance_method" title="ActionCommand::Executable#initialize (method)">#initialize</a></span>
260
+ <small>ActionCommand::Executable</small>
261
261
  </li>
262
262
 
263
263
 
@@ -286,14 +286,14 @@
286
286
 
287
287
 
288
288
  <li class="r2 ">
289
- <span class='object_link'><a href="ActionCommand/LogMessage.html#key%3F-instance_method" title="ActionCommand::LogMessage#key? (method)">#key?</a></span>
290
- <small>ActionCommand::LogMessage</small>
289
+ <span class='object_link'><a href="ActionCommand/Result.html#key%3F-instance_method" title="ActionCommand::Result#key? (method)">#key?</a></span>
290
+ <small>ActionCommand::Result</small>
291
291
  </li>
292
292
 
293
293
 
294
294
  <li class="r1 ">
295
- <span class='object_link'><a href="ActionCommand/Result.html#key%3F-instance_method" title="ActionCommand::Result#key? (method)">#key?</a></span>
296
- <small>ActionCommand::Result</small>
295
+ <span class='object_link'><a href="ActionCommand/LogMessage.html#key%3F-instance_method" title="ActionCommand::LogMessage#key? (method)">#key?</a></span>
296
+ <small>ActionCommand::LogMessage</small>
297
297
  </li>
298
298
 
299
299
 
@@ -316,210 +316,216 @@
316
316
 
317
317
 
318
318
  <li class="r1 ">
319
+ <span class='object_link'><a href="ActionCommand/Result.html#last_error-instance_method" title="ActionCommand::Result#last_error (method)">#last_error</a></span>
320
+ <small>ActionCommand::Result</small>
321
+ </li>
322
+
323
+
324
+ <li class="r2 ">
319
325
  <span class='object_link'><a href="ActionCommand/LogMessage.html#line-instance_method" title="ActionCommand::LogMessage#line (method)">#line</a></span>
320
326
  <small>ActionCommand::LogMessage</small>
321
327
  </li>
322
328
 
323
329
 
324
- <li class="r2 ">
330
+ <li class="r1 ">
325
331
  <span class='object_link'><a href="ActionCommand/Result.html#log_input-instance_method" title="ActionCommand::Result#log_input (method)">#log_input</a></span>
326
332
  <small>ActionCommand::Result</small>
327
333
  </li>
328
334
 
329
335
 
330
- <li class="r1 ">
336
+ <li class="r2 ">
331
337
  <span class='object_link'><a href="ActionCommand/Result.html#log_output-instance_method" title="ActionCommand::Result#log_output (method)">#log_output</a></span>
332
338
  <small>ActionCommand::Result</small>
333
339
  </li>
334
340
 
335
341
 
336
- <li class="r2 ">
342
+ <li class="r1 ">
337
343
  <span class='object_link'><a href="ActionCommand/Result.html#logger%3D-instance_method" title="ActionCommand::Result#logger= (method)">#logger=</a></span>
338
344
  <small>ActionCommand::Result</small>
339
345
  </li>
340
346
 
341
347
 
342
- <li class="r1 ">
348
+ <li class="r2 ">
343
349
  <span class='object_link'><a href="ActionCommand.html#logger%3D-class_method" title="ActionCommand.logger= (method)">logger=</a></span>
344
350
  <small>ActionCommand</small>
345
351
  </li>
346
352
 
347
353
 
348
- <li class="r2 ">
354
+ <li class="r1 ">
349
355
  <span class='object_link'><a href="ActionCommand/Result.html#logging%3F-instance_method" title="ActionCommand::Result#logging? (method)">#logging?</a></span>
350
356
  <small>ActionCommand::Result</small>
351
357
  </li>
352
358
 
353
359
 
354
- <li class="r1 ">
360
+ <li class="r2 ">
355
361
  <span class='object_link'><a href="ActionCommand/LogMessage.html#match_message%3F-instance_method" title="ActionCommand::LogMessage#match_message? (method)">#match_message?</a></span>
356
362
  <small>ActionCommand::LogMessage</small>
357
363
  </li>
358
364
 
359
365
 
360
- <li class="r2 ">
366
+ <li class="r1 ">
361
367
  <span class='object_link'><a href="ActionCommand/LogMessage.html#msg-instance_method" title="ActionCommand::LogMessage#msg (method)">#msg</a></span>
362
368
  <small>ActionCommand::LogMessage</small>
363
369
  </li>
364
370
 
365
371
 
366
- <li class="r1 ">
372
+ <li class="r2 ">
367
373
  <span class='object_link'><a href="ActionCommand/LogParser.html#next-instance_method" title="ActionCommand::LogParser#next (method)">#next</a></span>
368
374
  <small>ActionCommand::LogParser</small>
369
375
  </li>
370
376
 
371
377
 
372
- <li class="r2 ">
378
+ <li class="r1 ">
373
379
  <span class='object_link'><a href="ActionCommand/Result.html#ok%3F-instance_method" title="ActionCommand::Result#ok? (method)">#ok?</a></span>
374
380
  <small>ActionCommand::Result</small>
375
381
  </li>
376
382
 
377
383
 
378
- <li class="r1 ">
384
+ <li class="r2 ">
379
385
  <span class='object_link'><a href="ActionCommand/InputOutput.html#output-instance_method" title="ActionCommand::InputOutput#output (method)">#output</a></span>
380
386
  <small>ActionCommand::InputOutput</small>
381
387
  </li>
382
388
 
383
389
 
384
- <li class="r2 ">
390
+ <li class="r1 ">
385
391
  <span class='object_link'><a href="ActionCommand/Executable.html#parent-instance_method" title="ActionCommand::Executable#parent (method)">#parent</a></span>
386
392
  <small>ActionCommand::Executable</small>
387
393
  </li>
388
394
 
389
395
 
390
- <li class="r1 ">
396
+ <li class="r2 ">
391
397
  <span class='object_link'><a href="ActionCommand/Result.html#pop-instance_method" title="ActionCommand::Result#pop (method)">#pop</a></span>
392
398
  <small>ActionCommand::Result</small>
393
399
  </li>
394
400
 
395
401
 
396
- <li class="r2 ">
402
+ <li class="r1 ">
397
403
  <span class='object_link'><a href="ActionCommand/LogMessage.html#populate-instance_method" title="ActionCommand::LogMessage#populate (method)">#populate</a></span>
398
404
  <small>ActionCommand::LogMessage</small>
399
405
  </li>
400
406
 
401
407
 
402
- <li class="r1 ">
408
+ <li class="r2 ">
403
409
  <span class='object_link'><a href="ActionCommand/InputOutput.html#print_output-instance_method" title="ActionCommand::InputOutput#print_output (method)">#print_output</a></span>
404
410
  <small>ActionCommand::InputOutput</small>
405
411
  </li>
406
412
 
407
413
 
408
- <li class="r2 ">
414
+ <li class="r1 ">
409
415
  <span class='object_link'><a href="ActionCommand/InputOutput.html#process_input-instance_method" title="ActionCommand::InputOutput#process_input (method)">#process_input</a></span>
410
416
  <small>ActionCommand::InputOutput</small>
411
417
  </li>
412
418
 
413
419
 
414
- <li class="r1 ">
420
+ <li class="r2 ">
415
421
  <span class='object_link'><a href="ActionCommand/InputOutput.html#process_output-instance_method" title="ActionCommand::InputOutput#process_output (method)">#process_output</a></span>
416
422
  <small>ActionCommand::InputOutput</small>
417
423
  </li>
418
424
 
419
425
 
420
- <li class="r2 ">
426
+ <li class="r1 ">
421
427
  <span class='object_link'><a href="ActionCommand/Result.html#push-instance_method" title="ActionCommand::Result#push (method)">#push</a></span>
422
428
  <small>ActionCommand::Result</small>
423
429
  </li>
424
430
 
425
431
 
426
- <li class="r1 ">
432
+ <li class="r2 ">
427
433
  <span class='object_link'><a href="ActionCommand/Executable.html#rails_context%3F-instance_method" title="ActionCommand::Executable#rails_context? (method)">#rails_context?</a></span>
428
434
  <small>ActionCommand::Executable</small>
429
435
  </li>
430
436
 
431
437
 
432
- <li class="r2 ">
438
+ <li class="r1 ">
433
439
  <span class='object_link'><a href="ActionCommand/Executable.html#rake_context%3F-instance_method" title="ActionCommand::Executable#rake_context? (method)">#rake_context?</a></span>
434
440
  <small>ActionCommand::Executable</small>
435
441
  </li>
436
442
 
437
443
 
438
- <li class="r1 ">
444
+ <li class="r2 ">
439
445
  <span class='object_link'><a href="ActionCommand/InputOutput.html#rake_input-instance_method" title="ActionCommand::InputOutput#rake_input (method)">#rake_input</a></span>
440
446
  <small>ActionCommand::InputOutput</small>
441
447
  </li>
442
448
 
443
449
 
444
- <li class="r2 ">
450
+ <li class="r1 ">
445
451
  <span class='object_link'><a href="ActionCommand/Result.html#result_code-instance_method" title="ActionCommand::Result#result_code (method)">#result_code</a></span>
446
452
  <small>ActionCommand::Result</small>
447
453
  </li>
448
454
 
449
455
 
450
- <li class="r1 ">
456
+ <li class="r2 ">
451
457
  <span class='object_link'><a href="ActionCommand/LogMessage.html#root%3F-instance_method" title="ActionCommand::LogMessage#root? (method)">#root?</a></span>
452
458
  <small>ActionCommand::LogMessage</small>
453
459
  </li>
454
460
 
455
461
 
456
- <li class="r2 ">
462
+ <li class="r1 ">
457
463
  <span class='object_link'><a href="ActionCommand/Result.html#root_command-instance_method" title="ActionCommand::Result#root_command (method)">#root_command</a></span>
458
464
  <small>ActionCommand::Result</small>
459
465
  </li>
460
466
 
461
467
 
462
- <li class="r1 ">
468
+ <li class="r2 ">
463
469
  <span class='object_link'><a href="ActionCommand/Executable.html#root_context-instance_method" title="ActionCommand::Executable#root_context (method)">#root_context</a></span>
464
470
  <small>ActionCommand::Executable</small>
465
471
  </li>
466
472
 
467
473
 
468
- <li class="r2 ">
469
- <span class='object_link'><a href="ActionCommand/Result.html#sequence-instance_method" title="ActionCommand::Result#sequence (method)">#sequence</a></span>
470
- <small>ActionCommand::Result</small>
474
+ <li class="r1 ">
475
+ <span class='object_link'><a href="ActionCommand/LogMessage.html#sequence-instance_method" title="ActionCommand::LogMessage#sequence (method)">#sequence</a></span>
476
+ <small>ActionCommand::LogMessage</small>
471
477
  </li>
472
478
 
473
479
 
474
- <li class="r1 ">
480
+ <li class="r2 ">
475
481
  <span class='object_link'><a href="ActionCommand/PrettyPrintLogAction.html#sequence-instance_method" title="ActionCommand::PrettyPrintLogAction#sequence (method)">#sequence</a></span>
476
482
  <small>ActionCommand::PrettyPrintLogAction</small>
477
483
  </li>
478
484
 
479
485
 
480
- <li class="r2 ">
481
- <span class='object_link'><a href="ActionCommand/LogMessage.html#sequence-instance_method" title="ActionCommand::LogMessage#sequence (method)">#sequence</a></span>
482
- <small>ActionCommand::LogMessage</small>
486
+ <li class="r1 ">
487
+ <span class='object_link'><a href="ActionCommand/Result.html#sequence-instance_method" title="ActionCommand::Result#sequence (method)">#sequence</a></span>
488
+ <small>ActionCommand::Result</small>
483
489
  </li>
484
490
 
485
491
 
486
- <li class="r1 ">
492
+ <li class="r2 ">
487
493
  <span class='object_link'><a href="ActionCommand/InputOutput.html#should_validate-instance_method" title="ActionCommand::InputOutput#should_validate (method)">#should_validate</a></span>
488
494
  <small>ActionCommand::InputOutput</small>
489
495
  </li>
490
496
 
491
497
 
492
- <li class="r2 ">
498
+ <li class="r1 ">
493
499
  <span class='object_link'><a href="ActionCommand/InputOutput.html#show_help-instance_method" title="ActionCommand::InputOutput#show_help (method)">#show_help</a></span>
494
500
  <small>ActionCommand::InputOutput</small>
495
501
  </li>
496
502
 
497
503
 
498
- <li class="r1 ">
504
+ <li class="r2 ">
499
505
  <span class='object_link'><a href="ActionCommand/PrettyPrintLogAction.html#source-instance_method" title="ActionCommand::PrettyPrintLogAction#source (method)">#source</a></span>
500
506
  <small>ActionCommand::PrettyPrintLogAction</small>
501
507
  </li>
502
508
 
503
509
 
504
- <li class="r2 ">
510
+ <li class="r1 ">
505
511
  <span class='object_link'><a href="ActionCommand/Executable.html#test-instance_method" title="ActionCommand::Executable#test (method)">#test</a></span>
506
512
  <small>ActionCommand::Executable</small>
507
513
  </li>
508
514
 
509
515
 
510
- <li class="r1 ">
516
+ <li class="r2 ">
511
517
  <span class='object_link'><a href="ActionCommand/Executable.html#test_context%3F-instance_method" title="ActionCommand::Executable#test_context? (method)">#test_context?</a></span>
512
518
  <small>ActionCommand::Executable</small>
513
519
  </li>
514
520
 
515
521
 
516
- <li class="r2 ">
522
+ <li class="r1 ">
517
523
  <span class='object_link'><a href="ActionCommand/Executable.html#testing-instance_method" title="ActionCommand::Executable#testing (method)">#testing</a></span>
518
524
  <small>ActionCommand::Executable</small>
519
525
  </li>
520
526
 
521
527
 
522
- <li class="r1 ">
528
+ <li class="r2 ">
523
529
  <span class='object_link'><a href="ActionCommand/InputOutput.html#validate_input-instance_method" title="ActionCommand::InputOutput#validate_input (method)">#validate_input</a></span>
524
530
  <small>ActionCommand::InputOutput</small>
525
531
  </li>
@@ -103,7 +103,7 @@
103
103
  </div>
104
104
 
105
105
  <div id="footer">
106
- Generated on Mon Mar 7 14:27:17 2016 by
106
+ Generated on Mon May 16 08:49:39 2016 by
107
107
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
108
108
  0.8.7.6 (ruby-2.2.3).
109
109
  </div>
@@ -7,6 +7,7 @@ module ActionCommand
7
7
  # By default, a command is ok?
8
8
  def initialize
9
9
  @result_code = RESULT_CODE_OK
10
+ @last_error = nil
10
11
  @values = [{}]
11
12
  @logger = nil
12
13
  end
@@ -52,6 +53,7 @@ module ActionCommand
52
53
  # @param msg [String] message describing the failure.
53
54
  def failed(msg)
54
55
  @result_code = RESULT_CODE_FAILED
56
+ @last_error = msg
55
57
  error(msg)
56
58
  end
57
59
 
@@ -61,6 +63,7 @@ module ActionCommand
61
63
  # @param result_code [Integer]
62
64
  def failed_with_code(msg, result_code)
63
65
  @result_code = result_code
66
+ @last_error = msg
64
67
  error(msg)
65
68
  end
66
69
 
@@ -72,6 +75,9 @@ module ActionCommand
72
75
  # @return [Integer] the current result code
73
76
  attr_reader :result_code
74
77
 
78
+ # @return [String] the last string error message
79
+ attr_reader :last_error
80
+
75
81
  # adds results under the subkey until pop is called
76
82
  def push(key, cmd)
77
83
  return unless key
@@ -1,4 +1,4 @@
1
1
  module ActionCommand
2
2
  # Version of this Gem
3
- VERSION = '0.1.4'.freeze
3
+ VERSION = '0.1.5'.freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: action_command
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Jones
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-03-07 00:00:00.000000000 Z
11
+ date: 2016-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler