mattock 0.1.2 → 0.1.3

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.
Files changed (3) hide show
  1. data/doc/coverage/index.html +209 -83
  2. data/lib/mattock/task.rb +24 -3
  3. metadata +4 -4
@@ -23,14 +23,14 @@
23
23
  <img src="./assets/0.5.3/loading.gif" alt="loading"/>
24
24
  </div>
25
25
  <div id="wrapper" style="display:none;">
26
- <div class="timestamp">Generated <abbr class="timeago" title="2012-02-04T10:44:02-08:00">2012-02-04T10:44:02-08:00</abbr></div>
26
+ <div class="timestamp">Generated <abbr class="timeago" title="2012-02-06T14:11:35-08:00">2012-02-06T14:11:35-08:00</abbr></div>
27
27
  <ul class="group_tabs"></ul>
28
28
 
29
29
  <div id="content">
30
30
  <div class="file_list_container" id="AllFiles">
31
31
  <h2>
32
32
  <span class="group_name">All Files</span>
33
- (<span class="covered_percent"><span class="green">92.15%</span></span>
33
+ (<span class="covered_percent"><span class="green">92.31%</span></span>
34
34
  covered at
35
35
  <span class="covered_strength">
36
36
  <span class="green">
@@ -41,8 +41,8 @@
41
41
  <a name="AllFiles"></a>
42
42
  <div>
43
43
  <b>12</b> files in total.
44
- <b>433</b> relevant lines.
45
- <span class="green"><b>399</b> lines covered</span> and
44
+ <b>442</b> relevant lines.
45
+ <span class="green"><b>408</b> lines covered</span> and
46
46
  <span class="red"><b>34</b> lines missed </span>
47
47
  </div>
48
48
  <table class="file_list">
@@ -106,7 +106,7 @@
106
106
  <td>93</td>
107
107
  <td>89</td>
108
108
  <td>4</td>
109
- <td>8.0</td>
109
+ <td>7.9</td>
110
110
  </tr>
111
111
 
112
112
  <tr>
@@ -121,12 +121,12 @@
121
121
 
122
122
  <tr>
123
123
  <td class="strong"><a href="#7cc8f09739f0b95d0fd16321baf73b5d3c6eb35b" class="src_link" title="lib/mattock/task.rb">lib/mattock/task.rb</a></td>
124
- <td class="yellow strong">86.67 %</td>
125
- <td>53</td>
126
- <td>30</td>
127
- <td>26</td>
124
+ <td class="yellow strong">89.74 %</td>
125
+ <td>74</td>
126
+ <td>39</td>
127
+ <td>35</td>
128
128
  <td>4</td>
129
- <td>0.9</td>
129
+ <td>1.0</td>
130
130
  </tr>
131
131
 
132
132
  <tr>
@@ -1817,14 +1817,14 @@
1817
1817
  <code class="ruby"> default_values.each_pair do |name,value|</code>
1818
1818
  </li>
1819
1819
 
1820
- <li class="covered" data-hits="44" data-linenumber="26">
1821
- <span class="hits">44</span>
1820
+ <li class="covered" data-hits="42" data-linenumber="26">
1821
+ <span class="hits">42</span>
1822
1822
 
1823
1823
  <code class="ruby"> instance.__send__(&quot;#{name}=&quot;, value)</code>
1824
1824
  </li>
1825
1825
 
1826
- <li class="covered" data-hits="44" data-linenumber="27">
1827
- <span class="hits">44</span>
1826
+ <li class="covered" data-hits="42" data-linenumber="27">
1827
+ <span class="hits">42</span>
1828
1828
 
1829
1829
  <code class="ruby"> if Configurable === value</code>
1830
1830
  </li>
@@ -1895,14 +1895,14 @@
1895
1895
  <code class="ruby"> default_values.each_pair do |name,value|</code>
1896
1896
  </li>
1897
1897
 
1898
- <li class="covered" data-hits="37" data-linenumber="39">
1899
- <span class="hits">37</span>
1898
+ <li class="covered" data-hits="35" data-linenumber="39">
1899
+ <span class="hits">35</span>
1900
1900
 
1901
1901
  <code class="ruby"> set_value = instance.__send__(name)</code>
1902
1902
  </li>
1903
1903
 
1904
- <li class="covered" data-hits="37" data-linenumber="40">
1905
- <span class="hits">37</span>
1904
+ <li class="covered" data-hits="35" data-linenumber="40">
1905
+ <span class="hits">35</span>
1906
1906
 
1907
1907
  <code class="ruby"> if value == RequiredField and set_value == RequiredField</code>
1908
1908
  </li>
@@ -1925,8 +1925,8 @@
1925
1925
  <code class="ruby"> end</code>
1926
1926
  </li>
1927
1927
 
1928
- <li class="covered" data-hits="34" data-linenumber="44">
1929
- <span class="hits">34</span>
1928
+ <li class="covered" data-hits="32" data-linenumber="44">
1929
+ <span class="hits">32</span>
1930
1930
 
1931
1931
  <code class="ruby"> if Configurable === set_value</code>
1932
1932
  </li>
@@ -2009,14 +2009,14 @@
2009
2009
  <code class="ruby"> default_values.keys.each do |field|</code>
2010
2010
  </li>
2011
2011
 
2012
- <li class="covered" data-hits="9" data-linenumber="58">
2013
- <span class="hits">9</span>
2012
+ <li class="covered" data-hits="7" data-linenumber="58">
2013
+ <span class="hits">7</span>
2014
2014
 
2015
2015
  <code class="ruby"> begin</code>
2016
2016
  </li>
2017
2017
 
2018
- <li class="covered" data-hits="9" data-linenumber="59">
2019
- <span class="hits">9</span>
2018
+ <li class="covered" data-hits="7" data-linenumber="59">
2019
+ <span class="hits">7</span>
2020
2020
 
2021
2021
  <code class="ruby"> to.__send__(&quot;#{field}=&quot;, from.__send__(field))</code>
2022
2022
  </li>
@@ -2303,8 +2303,8 @@
2303
2303
  <code class="ruby"> def included(mod)</code>
2304
2304
  </li>
2305
2305
 
2306
- <li class="covered" data-hits="5" data-linenumber="107">
2307
- <span class="hits">5</span>
2306
+ <li class="covered" data-hits="7" data-linenumber="107">
2307
+ <span class="hits">7</span>
2308
2308
 
2309
2309
  <code class="ruby"> mod.extend ClassMethods</code>
2310
2310
  </li>
@@ -2844,10 +2844,10 @@
2844
2844
  <div class="source_table" id="7cc8f09739f0b95d0fd16321baf73b5d3c6eb35b">
2845
2845
  <div class="header">
2846
2846
  <h3>lib/mattock/task.rb</h3>
2847
- <h4><span class="yellow">86.67 %</span> covered</h4>
2847
+ <h4><span class="yellow">89.74 %</span> covered</h4>
2848
2848
  <div>
2849
- <b>30</b> relevant lines.
2850
- <span class="green"><b>26</b> lines covered</span> and
2849
+ <b>39</b> relevant lines.
2850
+ <span class="green"><b>35</b> lines covered</span> and
2851
2851
  <span class="red"><b>4</b> lines missed.</span>
2852
2852
  </div>
2853
2853
  </div>
@@ -2867,307 +2867,433 @@
2867
2867
  <code class="ruby">require 'rake/task'</code>
2868
2868
  </li>
2869
2869
 
2870
- <li class="never" data-hits="" data-linenumber="3">
2870
+ <li class="covered" data-hits="1" data-linenumber="3">
2871
+ <span class="hits">1</span>
2872
+
2873
+ <code class="ruby">require 'rake/file_task'</code>
2874
+ </li>
2875
+
2876
+ <li class="never" data-hits="" data-linenumber="4">
2871
2877
 
2872
2878
 
2873
2879
  <code class="ruby"></code>
2874
2880
  </li>
2875
2881
 
2876
- <li class="covered" data-hits="1" data-linenumber="4">
2882
+ <li class="covered" data-hits="1" data-linenumber="5">
2877
2883
  <span class="hits">1</span>
2878
2884
 
2879
2885
  <code class="ruby">module Mattock</code>
2880
2886
  </li>
2881
2887
 
2882
- <li class="covered" data-hits="1" data-linenumber="5">
2888
+ <li class="never" data-hits="" data-linenumber="6">
2889
+
2890
+
2891
+ <code class="ruby"> # A configurable subclass of Rake::Task, such that you can use a</code>
2892
+ </li>
2893
+
2894
+ <li class="never" data-hits="" data-linenumber="7">
2895
+
2896
+
2897
+ <code class="ruby"> # configuration block to change how a common task behaves, while still</code>
2898
+ </li>
2899
+
2900
+ <li class="never" data-hits="" data-linenumber="8">
2901
+
2902
+
2903
+ <code class="ruby"> # overriding Rake API methods like Task#needed? and Task#timestamp</code>
2904
+ </li>
2905
+
2906
+ <li class="never" data-hits="" data-linenumber="9">
2907
+
2908
+
2909
+ <code class="ruby"></code>
2910
+ </li>
2911
+
2912
+ <li class="covered" data-hits="1" data-linenumber="10">
2883
2913
  <span class="hits">1</span>
2884
2914
 
2885
- <code class="ruby"> class Task &lt; Rake::Task</code>
2915
+ <code class="ruby"> module TaskMixin</code>
2886
2916
  </li>
2887
2917
 
2888
- <li class="covered" data-hits="1" data-linenumber="6">
2918
+ <li class="covered" data-hits="1" data-linenumber="11">
2889
2919
  <span class="hits">1</span>
2890
2920
 
2891
2921
  <code class="ruby"> include CascadingDefinition</code>
2892
2922
  </li>
2893
2923
 
2894
- <li class="never" data-hits="" data-linenumber="7">
2924
+ <li class="never" data-hits="" data-linenumber="12">
2895
2925
 
2896
2926
 
2897
2927
  <code class="ruby"></code>
2898
2928
  </li>
2899
2929
 
2900
- <li class="covered" data-hits="1" data-linenumber="8">
2930
+ <li class="covered" data-hits="1" data-linenumber="13">
2901
2931
  <span class="hits">1</span>
2902
2932
 
2903
2933
  <code class="ruby"> setting :task_name</code>
2904
2934
  </li>
2905
2935
 
2906
- <li class="covered" data-hits="1" data-linenumber="9">
2936
+ <li class="covered" data-hits="1" data-linenumber="14">
2907
2937
  <span class="hits">1</span>
2908
2938
 
2909
2939
  <code class="ruby"> setting :task_args</code>
2910
2940
  </li>
2911
2941
 
2912
- <li class="never" data-hits="" data-linenumber="10">
2942
+ <li class="never" data-hits="" data-linenumber="15">
2913
2943
 
2914
2944
 
2915
2945
  <code class="ruby"></code>
2916
2946
  </li>
2917
2947
 
2918
- <li class="covered" data-hits="1" data-linenumber="11">
2948
+ <li class="covered" data-hits="1" data-linenumber="16">
2949
+ <span class="hits">1</span>
2950
+
2951
+ <code class="ruby"> module ClassMethods</code>
2952
+ </li>
2953
+
2954
+ <li class="covered" data-hits="1" data-linenumber="17">
2919
2955
  <span class="hits">1</span>
2920
2956
 
2921
- <code class="ruby"> def self.default_taskname(name)</code>
2957
+ <code class="ruby"> def default_taskname(name)</code>
2922
2958
  </li>
2923
2959
 
2924
- <li class="missed" data-hits="0" data-linenumber="12">
2960
+ <li class="missed" data-hits="0" data-linenumber="18">
2925
2961
 
2926
2962
 
2927
- <code class="ruby"> setting(:task_name, name)</code>
2963
+ <code class="ruby"> setting(:task_name, name)</code>
2928
2964
  </li>
2929
2965
 
2930
- <li class="never" data-hits="" data-linenumber="13">
2966
+ <li class="never" data-hits="" data-linenumber="19">
2967
+
2968
+
2969
+ <code class="ruby"> end</code>
2970
+ </li>
2971
+
2972
+ <li class="never" data-hits="" data-linenumber="20">
2931
2973
 
2932
2974
 
2933
2975
  <code class="ruby"> end</code>
2934
2976
  </li>
2935
2977
 
2936
- <li class="never" data-hits="" data-linenumber="14">
2978
+ <li class="never" data-hits="" data-linenumber="21">
2937
2979
 
2938
2980
 
2939
2981
  <code class="ruby"></code>
2940
2982
  </li>
2941
2983
 
2942
- <li class="covered" data-hits="1" data-linenumber="15">
2984
+ <li class="covered" data-hits="1" data-linenumber="22">
2985
+ <span class="hits">1</span>
2986
+
2987
+ <code class="ruby"> def self.included(mod)</code>
2988
+ </li>
2989
+
2990
+ <li class="covered" data-hits="4" data-linenumber="23">
2991
+ <span class="hits">4</span>
2992
+
2993
+ <code class="ruby"> mod.class_eval{ extend ClassMethods }</code>
2994
+ </li>
2995
+
2996
+ <li class="covered" data-hits="2" data-linenumber="24">
2997
+ <span class="hits">2</span>
2998
+
2999
+ <code class="ruby"> super</code>
3000
+ </li>
3001
+
3002
+ <li class="never" data-hits="" data-linenumber="25">
3003
+
3004
+
3005
+ <code class="ruby"> end</code>
3006
+ </li>
3007
+
3008
+ <li class="never" data-hits="" data-linenumber="26">
3009
+
3010
+
3011
+ <code class="ruby"></code>
3012
+ </li>
3013
+
3014
+ <li class="covered" data-hits="1" data-linenumber="27">
2943
3015
  <span class="hits">1</span>
2944
3016
 
2945
3017
  <code class="ruby"> def initialize(*args)</code>
2946
3018
  </li>
2947
3019
 
2948
- <li class="covered" data-hits="1" data-linenumber="16">
3020
+ <li class="covered" data-hits="1" data-linenumber="28">
2949
3021
  <span class="hits">1</span>
2950
3022
 
2951
3023
  <code class="ruby"> configs = args.take_while{|arg| Configurable === arg}</code>
2952
3024
  </li>
2953
3025
 
2954
- <li class="covered" data-hits="1" data-linenumber="17">
3026
+ <li class="covered" data-hits="1" data-linenumber="29">
2955
3027
  <span class="hits">1</span>
2956
3028
 
2957
3029
  <code class="ruby"> @extracted_task_args = args[configs.length..-1]</code>
2958
3030
  </li>
2959
3031
 
2960
- <li class="covered" data-hits="1" data-linenumber="18">
3032
+ <li class="covered" data-hits="1" data-linenumber="30">
2961
3033
  <span class="hits">1</span>
2962
3034
 
2963
3035
  <code class="ruby"> if @extracted_task_args.any?{|arg| Configurable === arg}</code>
2964
3036
  </li>
2965
3037
 
2966
- <li class="missed" data-hits="0" data-linenumber="19">
3038
+ <li class="missed" data-hits="0" data-linenumber="31">
2967
3039
 
2968
3040
 
2969
3041
  <code class="ruby"> raise &quot;Mattock::Task classes should be created with parent configs, then Rake task args&quot;</code>
2970
3042
  </li>
2971
3043
 
2972
- <li class="never" data-hits="" data-linenumber="20">
3044
+ <li class="never" data-hits="" data-linenumber="32">
2973
3045
 
2974
3046
 
2975
3047
  <code class="ruby"> end</code>
2976
3048
  </li>
2977
3049
 
2978
- <li class="covered" data-hits="1" data-linenumber="21">
3050
+ <li class="covered" data-hits="1" data-linenumber="33">
2979
3051
  <span class="hits">1</span>
2980
3052
 
2981
3053
  <code class="ruby"> super(*configs)</code>
2982
3054
  </li>
2983
3055
 
2984
- <li class="never" data-hits="" data-linenumber="22">
3056
+ <li class="never" data-hits="" data-linenumber="34">
2985
3057
 
2986
3058
 
2987
3059
  <code class="ruby"> end</code>
2988
3060
  </li>
2989
3061
 
2990
- <li class="never" data-hits="" data-linenumber="23">
3062
+ <li class="never" data-hits="" data-linenumber="35">
2991
3063
 
2992
3064
 
2993
3065
  <code class="ruby"></code>
2994
3066
  </li>
2995
3067
 
2996
- <li class="covered" data-hits="1" data-linenumber="24">
3068
+ <li class="covered" data-hits="1" data-linenumber="36">
2997
3069
  <span class="hits">1</span>
2998
3070
 
2999
3071
  <code class="ruby"> def resolve_configuration</code>
3000
3072
  </li>
3001
3073
 
3002
- <li class="covered" data-hits="1" data-linenumber="25">
3074
+ <li class="covered" data-hits="1" data-linenumber="37">
3003
3075
  <span class="hits">1</span>
3004
3076
 
3005
3077
  <code class="ruby"> if @extracted_task_args.empty?</code>
3006
3078
  </li>
3007
3079
 
3008
- <li class="covered" data-hits="1" data-linenumber="26">
3080
+ <li class="covered" data-hits="1" data-linenumber="38">
3009
3081
  <span class="hits">1</span>
3010
3082
 
3011
3083
  <code class="ruby"> self.task_args = [task_name]</code>
3012
3084
  </li>
3013
3085
 
3014
- <li class="never" data-hits="" data-linenumber="27">
3086
+ <li class="never" data-hits="" data-linenumber="39">
3015
3087
 
3016
3088
 
3017
3089
  <code class="ruby"> else</code>
3018
3090
  </li>
3019
3091
 
3020
- <li class="missed" data-hits="0" data-linenumber="28">
3092
+ <li class="missed" data-hits="0" data-linenumber="40">
3021
3093
 
3022
3094
 
3023
3095
  <code class="ruby"> self.task_args = @extracted_task_args</code>
3024
3096
  </li>
3025
3097
 
3026
- <li class="never" data-hits="" data-linenumber="29">
3098
+ <li class="never" data-hits="" data-linenumber="41">
3027
3099
 
3028
3100
 
3029
3101
  <code class="ruby"> end</code>
3030
3102
  </li>
3031
3103
 
3032
- <li class="never" data-hits="" data-linenumber="30">
3104
+ <li class="never" data-hits="" data-linenumber="42">
3033
3105
 
3034
3106
 
3035
3107
  <code class="ruby"> end</code>
3036
3108
  </li>
3037
3109
 
3038
- <li class="never" data-hits="" data-linenumber="31">
3110
+ <li class="never" data-hits="" data-linenumber="43">
3039
3111
 
3040
3112
 
3041
3113
  <code class="ruby"></code>
3042
3114
  </li>
3043
3115
 
3044
- <li class="covered" data-hits="1" data-linenumber="32">
3116
+ <li class="covered" data-hits="1" data-linenumber="44">
3045
3117
  <span class="hits">1</span>
3046
3118
 
3047
3119
  <code class="ruby"> def action</code>
3048
3120
  </li>
3049
3121
 
3050
- <li class="never" data-hits="" data-linenumber="33">
3122
+ <li class="never" data-hits="" data-linenumber="45">
3051
3123
 
3052
3124
 
3053
3125
  <code class="ruby"> end</code>
3054
3126
  </li>
3055
3127
 
3056
- <li class="never" data-hits="" data-linenumber="34">
3128
+ <li class="never" data-hits="" data-linenumber="46">
3057
3129
 
3058
3130
 
3059
3131
  <code class="ruby"></code>
3060
3132
  </li>
3061
3133
 
3062
- <li class="covered" data-hits="1" data-linenumber="35">
3134
+ <li class="never" data-hits="" data-linenumber="47">
3135
+
3136
+
3137
+ <code class="ruby"> # I continue to look for an alternative here.</code>
3138
+ </li>
3139
+
3140
+ <li class="covered" data-hits="1" data-linenumber="48">
3063
3141
  <span class="hits">1</span>
3064
3142
 
3065
3143
  <code class="ruby"> def task_class</code>
3066
3144
  </li>
3067
3145
 
3068
- <li class="covered" data-hits="1" data-linenumber="36">
3146
+ <li class="covered" data-hits="1" data-linenumber="49">
3069
3147
  <span class="hits">1</span>
3070
3148
 
3071
3149
  <code class="ruby"> return @task_class if @task_class</code>
3072
3150
  </li>
3073
3151
 
3074
- <li class="covered" data-hits="1" data-linenumber="37">
3152
+ <li class="covered" data-hits="1" data-linenumber="50">
3075
3153
  <span class="hits">1</span>
3076
3154
 
3077
3155
  <code class="ruby"> @task_class = Class.new(self.class) do</code>
3078
3156
  </li>
3079
3157
 
3080
- <li class="covered" data-hits="1" data-linenumber="38">
3158
+ <li class="covered" data-hits="1" data-linenumber="51">
3081
3159
  <span class="hits">1</span>
3082
3160
 
3083
3161
  <code class="ruby"> define_method :initialize, Rake::Task.instance_method(:initialize)</code>
3084
3162
  </li>
3085
3163
 
3086
- <li class="never" data-hits="" data-linenumber="39">
3164
+ <li class="never" data-hits="" data-linenumber="52">
3087
3165
 
3088
3166
 
3089
3167
  <code class="ruby"> end</code>
3090
3168
  </li>
3091
3169
 
3092
- <li class="never" data-hits="" data-linenumber="40">
3170
+ <li class="never" data-hits="" data-linenumber="53">
3093
3171
 
3094
3172
 
3095
3173
  <code class="ruby"> end</code>
3096
3174
  </li>
3097
3175
 
3098
- <li class="never" data-hits="" data-linenumber="41">
3176
+ <li class="never" data-hits="" data-linenumber="54">
3099
3177
 
3100
3178
 
3101
3179
  <code class="ruby"></code>
3102
3180
  </li>
3103
3181
 
3104
- <li class="covered" data-hits="1" data-linenumber="42">
3182
+ <li class="covered" data-hits="1" data-linenumber="55">
3105
3183
  <span class="hits">1</span>
3106
3184
 
3107
3185
  <code class="ruby"> def inspect</code>
3108
3186
  </li>
3109
3187
 
3110
- <li class="missed" data-hits="0" data-linenumber="43">
3188
+ <li class="missed" data-hits="0" data-linenumber="56">
3111
3189
 
3112
3190
 
3113
3191
  <code class="ruby"> &quot;#{self.class.name}: #{self.task_args.inspect}&quot;</code>
3114
3192
  </li>
3115
3193
 
3116
- <li class="never" data-hits="" data-linenumber="44">
3194
+ <li class="never" data-hits="" data-linenumber="57">
3117
3195
 
3118
3196
 
3119
3197
  <code class="ruby"> end</code>
3120
3198
  </li>
3121
3199
 
3122
- <li class="never" data-hits="" data-linenumber="45">
3200
+ <li class="never" data-hits="" data-linenumber="58">
3123
3201
 
3124
3202
 
3125
3203
  <code class="ruby"></code>
3126
3204
  </li>
3127
3205
 
3128
- <li class="covered" data-hits="1" data-linenumber="46">
3206
+ <li class="covered" data-hits="1" data-linenumber="59">
3129
3207
  <span class="hits">1</span>
3130
3208
 
3131
3209
  <code class="ruby"> def define</code>
3132
3210
  </li>
3133
3211
 
3134
- <li class="covered" data-hits="1" data-linenumber="47">
3212
+ <li class="covered" data-hits="1" data-linenumber="60">
3135
3213
  <span class="hits">1</span>
3136
3214
 
3137
3215
  <code class="ruby"> task = task_class.define_task(*task_args) do</code>
3138
3216
  </li>
3139
3217
 
3140
- <li class="covered" data-hits="1" data-linenumber="48">
3218
+ <li class="covered" data-hits="1" data-linenumber="61">
3141
3219
  <span class="hits">1</span>
3142
3220
 
3143
3221
  <code class="ruby"> action</code>
3144
3222
  </li>
3145
3223
 
3146
- <li class="never" data-hits="" data-linenumber="49">
3224
+ <li class="never" data-hits="" data-linenumber="62">
3147
3225
 
3148
3226
 
3149
3227
  <code class="ruby"> end</code>
3150
3228
  </li>
3151
3229
 
3152
- <li class="covered" data-hits="1" data-linenumber="50">
3230
+ <li class="covered" data-hits="1" data-linenumber="63">
3153
3231
  <span class="hits">1</span>
3154
3232
 
3155
3233
  <code class="ruby"> copy_settings_to(task)</code>
3156
3234
  </li>
3157
3235
 
3158
- <li class="never" data-hits="" data-linenumber="51">
3236
+ <li class="never" data-hits="" data-linenumber="64">
3159
3237
 
3160
3238
 
3161
3239
  <code class="ruby"> end</code>
3162
3240
  </li>
3163
3241
 
3164
- <li class="never" data-hits="" data-linenumber="52">
3242
+ <li class="never" data-hits="" data-linenumber="65">
3165
3243
 
3166
3244
 
3167
3245
  <code class="ruby"> end</code>
3168
3246
  </li>
3169
3247
 
3170
- <li class="never" data-hits="" data-linenumber="53">
3248
+ <li class="never" data-hits="" data-linenumber="66">
3249
+
3250
+
3251
+ <code class="ruby"></code>
3252
+ </li>
3253
+
3254
+ <li class="covered" data-hits="1" data-linenumber="67">
3255
+ <span class="hits">1</span>
3256
+
3257
+ <code class="ruby"> class Task &lt; Rake::Task</code>
3258
+ </li>
3259
+
3260
+ <li class="covered" data-hits="1" data-linenumber="68">
3261
+ <span class="hits">1</span>
3262
+
3263
+ <code class="ruby"> include TaskMixin</code>
3264
+ </li>
3265
+
3266
+ <li class="never" data-hits="" data-linenumber="69">
3267
+
3268
+
3269
+ <code class="ruby"> end</code>
3270
+ </li>
3271
+
3272
+ <li class="never" data-hits="" data-linenumber="70">
3273
+
3274
+
3275
+ <code class="ruby"></code>
3276
+ </li>
3277
+
3278
+ <li class="covered" data-hits="1" data-linenumber="71">
3279
+ <span class="hits">1</span>
3280
+
3281
+ <code class="ruby"> class FileTask &lt; Rake::FileTask</code>
3282
+ </li>
3283
+
3284
+ <li class="covered" data-hits="1" data-linenumber="72">
3285
+ <span class="hits">1</span>
3286
+
3287
+ <code class="ruby"> include TaskMixin</code>
3288
+ </li>
3289
+
3290
+ <li class="never" data-hits="" data-linenumber="73">
3291
+
3292
+
3293
+ <code class="ruby"> end</code>
3294
+ </li>
3295
+
3296
+ <li class="never" data-hits="" data-linenumber="74">
3171
3297
 
3172
3298
 
3173
3299
  <code class="ruby">end</code>
data/lib/mattock/task.rb CHANGED
@@ -1,15 +1,27 @@
1
1
  require 'mattock/cascading-definition'
2
2
  require 'rake/task'
3
+ require 'rake/file_task'
3
4
 
4
5
  module Mattock
5
- class Task < Rake::Task
6
+ # A configurable subclass of Rake::Task, such that you can use a
7
+ # configuration block to change how a common task behaves, while still
8
+ # overriding Rake API methods like Task#needed? and Task#timestamp
9
+
10
+ module TaskMixin
6
11
  include CascadingDefinition
7
12
 
8
13
  setting :task_name
9
14
  setting :task_args
10
15
 
11
- def self.default_taskname(name)
12
- setting(:task_name, name)
16
+ module ClassMethods
17
+ def default_taskname(name)
18
+ setting(:task_name, name)
19
+ end
20
+ end
21
+
22
+ def self.included(mod)
23
+ mod.class_eval{ extend ClassMethods }
24
+ super
13
25
  end
14
26
 
15
27
  def initialize(*args)
@@ -32,6 +44,7 @@ module Mattock
32
44
  def action
33
45
  end
34
46
 
47
+ # I continue to look for an alternative here.
35
48
  def task_class
36
49
  return @task_class if @task_class
37
50
  @task_class = Class.new(self.class) do
@@ -50,4 +63,12 @@ module Mattock
50
63
  copy_settings_to(task)
51
64
  end
52
65
  end
66
+
67
+ class Task < Rake::Task
68
+ include TaskMixin
69
+ end
70
+
71
+ class FileTask < Rake::FileTask
72
+ include TaskMixin
73
+ end
53
74
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: mattock
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.2
5
+ version: 0.1.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Judson Lester
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-02-04 00:00:00 Z
13
+ date: 2012-02-06 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: corundum
@@ -189,7 +189,7 @@ rdoc_options:
189
189
  - --main
190
190
  - doc/README
191
191
  - --title
192
- - mattock-0.1.2 RDoc
192
+ - mattock-0.1.3 RDoc
193
193
  require_paths:
194
194
  - lib/
195
195
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -197,7 +197,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
197
197
  requirements:
198
198
  - - ">="
199
199
  - !ruby/object:Gem::Version
200
- hash: 684090449
200
+ hash: 184575953
201
201
  segments:
202
202
  - 0
203
203
  version: "0"