action_command 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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