peeky 0.0.28 → 0.0.31

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
  SHA256:
3
- metadata.gz: f5bfa72308dbaa677a774831ef7323b1a6b7756589714b068edab839232e96c1
4
- data.tar.gz: c20a0d04a9ef69d8f77d7c506ddd45560294a4e9b0b7ec7ffeb33c6665b6a3f6
3
+ metadata.gz: edb80ec928d5d4495d464467e28bbb6b16638a14773eca16891ddbea915335a5
4
+ data.tar.gz: febac36ff7fa54d618d0ef6f3ef20da522b5918904c76550b823f11e1eb6ffde
5
5
  SHA512:
6
- metadata.gz: '0070992885f6a7a5a19acb3d62fef9e5ce3d116b35c0436185fe3304293c7831bb6c9652704c43985842854bba7472733bb10b2cd26f055b9893dedecae27604'
7
- data.tar.gz: 2312202e390a5ad6478aa124f94634627b65d7a69f0e0b725091907d7bddc10040a524b7eaf784e0bf37c74ab030228a74a8d1a319f810516308c7dc83c985ea
6
+ metadata.gz: 4c984b3df997d970c6da34e654495802f54ce67c18bf7a057e22b56ab6f0c7b9e68579834715b09288059ac389662d5c3504ebe1aa42eee7675978b8010cb1b3
7
+ data.tar.gz: c2e45fbfda42652aeec5334edc8a5d596948eba45ecaa91d3a3f8522e603c39284deff97a78abc519edc0be675e29811624b7c51a2e17d48a3fe501acd9ca669
data/README.md CHANGED
@@ -30,17 +30,82 @@ gem install peeky
30
30
 
31
31
  As a Ruby Developer, I should be able to Reverse engineer classes and methods, so that I can document and understand them
32
32
 
33
- See all [stories](./file.STORIES.html)
33
+ See all [stories](./STORIES.md)
34
34
 
35
35
  ### Featured Stories
36
36
 
37
37
  - As a Developer, I should be able to interrogate class instance information, so that I can reverse engineer a ruby class
38
- - As a Developer, I can render method with minimal parameter calls, So that I know the minimum parameters when calling a method
38
+ - As a Developer, I can render a method with minimal parameter calls, So that I know the minimum parameters when calling a method
39
39
  - As a Developer, I can render a class with instance attributes and methods, So that I can quickly mock out an entire class
40
40
 
41
41
  ## Usage
42
42
 
43
- TODO: Write usage instructions here
43
+ See all [usages](./USAGE.md)
44
+
45
+ ### Basic Example
46
+
47
+ This example assumes you have this simple class
48
+
49
+
50
+
51
+ ```ruby
52
+ module Sample
53
+ class SimpleClass
54
+ attr_accessor :read_write
55
+
56
+ def position_and_optional(aaa, bbb = 1)
57
+ end
58
+ end
59
+ end
60
+ ```
61
+
62
+
63
+ ### Rendering Examples
64
+
65
+ Here a list of example renderers for the simple class
66
+
67
+ #### Class interface
68
+ Render simple class using class_interface renderer with compact formatting
69
+
70
+ ```ruby
71
+ puts api.render_class(:class_interface, instance: Sample::SimpleClass.new)
72
+ ```
73
+
74
+
75
+
76
+ ```ruby
77
+ class SimpleClass
78
+ attr_accessor :read_write
79
+
80
+ def position_and_optional(aaa, bbb = nil); end
81
+ end
82
+ ```
83
+
84
+ #### Documented class interface
85
+ Render simple class using class_interface_yard renderer to product YARD compatible documentation
86
+
87
+ ```ruby
88
+ puts api.render_class(:class_interface_yard, instance: Sample::SimpleClass.new)
89
+ ```
90
+
91
+
92
+
93
+ ```ruby
94
+ class SimpleClass
95
+ # Read write
96
+ attr_accessor :read_write
97
+
98
+ # Position and optional
99
+ #
100
+ # @param aaa [String] aaa (required)
101
+ # @param bbb [String] bbb (optional)
102
+ def position_and_optional(aaa, bbb = nil)
103
+ end
104
+ end
105
+ ```
106
+
107
+
108
+
44
109
 
45
110
  ## Development
46
111
 
@@ -58,7 +123,7 @@ The gem is available as open source under the terms of the [MIT License](https:/
58
123
 
59
124
  ## Code of Conduct
60
125
 
61
- Everyone interacting in the Peeky project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the.
126
+ Everyone interacting in the Peeky project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/peeky/blob/master/CODE_OF_CONDUCT.md).
62
127
 
63
128
  ## Copyright
64
129
 
data/STORIES.md CHANGED
@@ -4,17 +4,12 @@
4
4
 
5
5
  As a Ruby Developer, I should be able to Reverse engineer classes and methods, so that I can document and understand them
6
6
 
7
- ## Development rader
7
+ ## Development radar
8
8
 
9
9
 
10
10
  ### Tasks next on list
11
11
 
12
- As a Developer, I can render a class with RDoc documentation, so that I do not have to manually type RDoc references
13
-
14
- - Add simplified API with examples
15
- - Start documenting usage instructions
16
-
17
- As a Developer, I can use Peeky with a simple API, so that I use this GEM quickly
12
+ As a Developer, I can use Peeky with a simple API, so that I use Peeky quickly
18
13
 
19
14
  - Add simplified API with examples
20
15
  - Start documenting usage instructions
@@ -30,12 +25,6 @@ As a Developer, I can quickly build requirements, so that I can document project
30
25
 
31
26
  ### Stories - completed
32
27
 
33
- As a David, I can edify Karin, because she is cool
34
-
35
- - karin_is_awesome
36
- - i_am_very_grateful_for_karin
37
- - karin_the_beautiful
38
-
39
28
  As a Developer, I can render a class with instance attributes and methods, So that I can quickly mock out an entire class
40
29
 
41
30
  - Render: Class Interface
@@ -48,7 +37,7 @@ As a Developer, I can see the method signature of a method, So that I understand
48
37
 
49
38
  - Render: Method Signature in compact format
50
39
 
51
- As a Developer, I can render method with minimal parameter calls, So that I know the minimum parameters when calling a method
40
+ As a Developer, I can render a method with minimal parameter calls, So that I know the minimum parameters when calling a method
52
41
 
53
42
  - Render: Simple instance method calls with minimum parameters
54
43
 
@@ -65,7 +54,14 @@ As a Developer, I should be able to interrogate class instance information, so t
65
54
  - ClassInfo stores information about a ruby class. Only support instance methods
66
55
 
67
56
 
68
- ##$ Tasks - completed
57
+ ### Tasks - completed
58
+
59
+ As a Developer, I can render a class with RDoc documentation, so that I do not have to manually type RDoc references
60
+
61
+
62
+ As a Developer, I can read detailed API documentation on Peaky, so that I use Peeky quickly
63
+
64
+ - Acid Test: Use the YARD renderer to document Peaky the GEM
69
65
 
70
66
  Setup GitHub Action (test and lint)
71
67
 
@@ -0,0 +1,322 @@
1
+ # Peeky
2
+
3
+ > Peeky is a Ruby GEM for peaking into ruby classes and extracting meta
4
+
5
+ As a Ruby Developer, I should be able to Reverse engineer classes and methods, so that I can document and understand them
6
+
7
+ ## Usage
8
+
9
+ ### Sample Classes
10
+
11
+ The usage examples listed below will work with these sample classes
12
+
13
+ #### Simple example
14
+
15
+
16
+ ```ruby
17
+ module Sample
18
+ class SimpleClass
19
+ attr_accessor :read_write
20
+
21
+ def position_and_optional(aaa, bbb = 1)
22
+ end
23
+ end
24
+ end
25
+ ```
26
+
27
+ #### Complex example
28
+
29
+
30
+ ```ruby
31
+ module Sample
32
+ class ComplexClass
33
+ attr_accessor :a_read_write1, :a_read_write2
34
+ attr_reader :b_reader, :b_another_reader
35
+ attr_writer :c_writer, :c_another_writer
36
+
37
+ def do_something_method
38
+ end
39
+
40
+ def looks_like_an_attr_reader
41
+ @looks_like_an_attr_reader ||= 5
42
+ end
43
+
44
+ def method_01(aaa); end
45
+
46
+ def method_02(aaa, bbb = 1); end
47
+
48
+ def method_03(aaa, bbb = 1, ccc = 2); end
49
+
50
+ def method_04(*aaa); end
51
+
52
+ def method_05(aaa, bbb = 1, *ccc); end
53
+
54
+ def method_06(**aaa); end
55
+
56
+ def method_07(aaa, *bbb, **ccc); end
57
+
58
+ def method_08(aaa, *bbb, **ccc, &ddd); end
59
+
60
+ def method_09(aaa:); end
61
+
62
+ def method_10(aaa:, bbb: 1); end
63
+
64
+ def questionable?; end
65
+
66
+ def destructive!; end
67
+
68
+ def method_with_every_type_of_paramater(aaa, bbb = 1, *ccc, ddd:, eee: 1, **fff, &ggg); end
69
+
70
+ # Check that methods are sorted
71
+ def alpha_sort2; end
72
+ def alpha_sort1; end
73
+ end
74
+ end
75
+ ```
76
+
77
+
78
+ ### Build Class Information
79
+
80
+ Use build_class_info to extract meta data from a ruby class
81
+
82
+ #### Build ClassInfo
83
+ By default information is lazy loaded only when accessed
84
+
85
+
86
+ ```ruby
87
+ class_info = api.build_class_info(Sample::SimpleClass.new)
88
+
89
+ puts class_info
90
+ ```
91
+
92
+
93
+
94
+ ```shell
95
+ Sample::SimpleClass
96
+ ```
97
+
98
+ #### Build ClassInfo - pre-loaded
99
+ Pre-load will ensure that methods and parameters are loaded straight away.
100
+
101
+
102
+ ```ruby
103
+ class_info = api.build_class_info(Sample::ComplexClass.new, lazy: false)
104
+
105
+ puts class_info
106
+ ```
107
+
108
+
109
+
110
+ ```shell
111
+ Sample::ComplexClass
112
+ ```
113
+
114
+
115
+ ### Render Class
116
+
117
+ Render a class using a pre-defined class renderer that can be referenced by key
118
+
119
+ #### Render class interface using class_info
120
+ Render a basic class interface in compact format "One line per method".
121
+
122
+ Note: Modules are not yet supported in Peeky
123
+
124
+
125
+ ```ruby
126
+ class_info = api.build_class_info(Sample::SimpleClass.new)
127
+
128
+ puts api.render_class(:class_interface, class_info: class_info)
129
+ ```
130
+
131
+ #### Render class interface using an instance of the intended class
132
+
133
+
134
+ ```ruby
135
+ puts api.render_class(:class_interface, instance: Sample::SimpleClass.new)
136
+ ```
137
+
138
+
139
+ ### Render Class Examples
140
+
141
+ Here a list of example renderers for the complex class
142
+
143
+ #### Class interface
144
+ Render simple class using class_interface renderer
145
+
146
+ ```ruby
147
+ puts api.render_class(:class_interface, instance: Sample::SimpleClass.new)
148
+ ```
149
+
150
+
151
+
152
+ ```ruby
153
+ class ComplexClass
154
+ attr_accessor :a_read_write1
155
+ attr_accessor :a_read_write2
156
+
157
+ attr_reader :b_another_reader
158
+ attr_reader :b_reader
159
+ attr_reader :looks_like_an_attr_reader
160
+
161
+ attr_writer :c_another_writer
162
+ attr_writer :c_writer
163
+
164
+ def alpha_sort1; end
165
+ def alpha_sort2; end
166
+ def destructive!; end
167
+ def do_something_method; end
168
+ def method_01(aaa); end
169
+ def method_02(aaa, bbb = nil); end
170
+ def method_03(aaa, bbb = nil, ccc = nil); end
171
+ def method_04(*aaa); end
172
+ def method_05(aaa, bbb = nil, *ccc); end
173
+ def method_06(**aaa); end
174
+ def method_07(aaa, *bbb, **ccc); end
175
+ def method_08(aaa, *bbb, **ccc, &ddd); end
176
+ def method_09(aaa:); end
177
+ def method_10(aaa:, bbb: nil); end
178
+ def method_with_every_type_of_paramater(aaa, bbb = nil, *ccc, ddd:, eee: nil, **fff, &ggg);end
179
+ def questionable?; end
180
+ end
181
+ ```
182
+
183
+ #### Class interface - YARD
184
+ Render complex class using class_interface_yard renderer
185
+
186
+ ```ruby
187
+ puts api.render_class(:class_interface_yard, instance: Sample::ComplexClass.new)
188
+ ```
189
+
190
+
191
+
192
+ ```ruby
193
+ class ComplexClass
194
+ # A read write1
195
+ attr_accessor :a_read_write1
196
+
197
+ # A read write2
198
+ attr_accessor :a_read_write2
199
+
200
+ # B another reader
201
+ attr_reader :b_another_reader
202
+
203
+ # B reader
204
+ attr_reader :b_reader
205
+
206
+ # Looks like an attr reader
207
+ attr_reader :looks_like_an_attr_reader
208
+
209
+ # C another writer
210
+ attr_writer :c_another_writer
211
+
212
+ # C writer
213
+ attr_writer :c_writer
214
+
215
+ # Alpha sort1
216
+ def alpha_sort1
217
+ end
218
+
219
+ # Alpha sort2
220
+ def alpha_sort2
221
+ end
222
+
223
+ # Destructive!
224
+ def destructive!
225
+ end
226
+
227
+ # Do something method
228
+ def do_something_method
229
+ end
230
+
231
+ # Method 01
232
+ #
233
+ # @param aaa [String] aaa (required)
234
+ def method_01(aaa)
235
+ end
236
+
237
+ # Method 02
238
+ #
239
+ # @param aaa [String] aaa (required)
240
+ # @param bbb [String] bbb (optional)
241
+ def method_02(aaa, bbb = nil)
242
+ end
243
+
244
+ # Method 03
245
+ #
246
+ # @param aaa [String] aaa (required)
247
+ # @param bbb [String] bbb (optional)
248
+ # @param ccc [String] ccc (optional)
249
+ def method_03(aaa, bbb = nil, ccc = nil)
250
+ end
251
+
252
+ # Method 04
253
+ #
254
+ # @param aaa [Array<Object>] *aaa - list of aaa
255
+ def method_04(*aaa)
256
+ end
257
+
258
+ # Method 05
259
+ #
260
+ # @param aaa [String] aaa (required)
261
+ # @param bbb [String] bbb (optional)
262
+ # @param ccc [Array<Object>] *ccc - list of ccc
263
+ def method_05(aaa, bbb = nil, *ccc)
264
+ end
265
+
266
+ # Method 06
267
+ #
268
+ # @param aaa [<key: value>...] **aaa - list of key/values
269
+ def method_06(**aaa)
270
+ end
271
+
272
+ # Method 07
273
+ #
274
+ # @param aaa [String] aaa (required)
275
+ # @param bbb [Array<Object>] *bbb - list of bbb
276
+ # @param ccc [<key: value>...] **ccc - list of key/values
277
+ def method_07(aaa, *bbb, **ccc)
278
+ end
279
+
280
+ # Method 08
281
+ #
282
+ # @param aaa [String] aaa (required)
283
+ # @param bbb [Array<Object>] *bbb - list of bbb
284
+ # @param ccc [<key: value>...] **ccc - list of key/values
285
+ # @param ddd [Block] &ddd
286
+ def method_08(aaa, *bbb, **ccc, &ddd)
287
+ end
288
+
289
+ # Method 09
290
+ #
291
+ # @param aaa [String] aaa: <value for aaa> (required)
292
+ def method_09(aaa:)
293
+ end
294
+
295
+ # Method 10
296
+ #
297
+ # @param aaa [String] aaa: <value for aaa> (required)
298
+ # @param bbb [String] bbb: <value for bbb> (optional)
299
+ def method_10(aaa:, bbb: nil)
300
+ end
301
+
302
+ # Method with every type of paramater
303
+ #
304
+ # @param aaa [String] aaa (required)
305
+ # @param bbb [String] bbb (optional)
306
+ # @param ccc [Array<Object>] *ccc - list of ccc
307
+ # @param ddd [String] ddd: <value for ddd> (required)
308
+ # @param eee [String] eee: <value for eee> (optional)
309
+ # @param fff [<key: value>...] **fff - list of key/values
310
+ # @param ggg [Block] &ggg
311
+ def method_with_every_type_of_paramater(aaa, bbb = nil, *ccc, ddd:, eee: nil, **fff, &ggg)
312
+ end
313
+
314
+ # Questionable?
315
+ #
316
+ # @return [Boolean] true when questionable?
317
+ def questionable?
318
+ end
319
+ end
320
+ ```
321
+
322
+ #### Debug class info
@@ -16,8 +16,10 @@ module Peeky
16
16
  # ClassInfo stores information about the instance of a
17
17
  # class that is passed in including methods, attr_accessors
18
18
  # attr_readers and attr_writers.
19
- def build_class_info(instance)
20
- Peeky::ClassInfo.new(instance)
19
+ def build_class_info(instance, lazy: true)
20
+ ci = Peeky::ClassInfo.new(instance)
21
+ ci.load unless lazy
22
+ ci
21
23
  end
22
24
 
23
25
  # Render a class using a predefined class renderer
@@ -17,6 +17,23 @@ module Peeky
17
17
  @instance = instance
18
18
  end
19
19
 
20
+ def to_s
21
+ class_full_name
22
+ end
23
+
24
+ # Load class_info
25
+ #
26
+ # Accessing information about methods and parameters is currently
27
+ # lazy-loaded via memoization.
28
+ #
29
+ # At times during debug or other edge cases, it may be useful to
30
+ # pre-load this information early.
31
+ def load
32
+ ruby_instance_methods
33
+ ruby_instance_method_names
34
+ signatures
35
+ end
36
+
20
37
  # Class full name includes the module namespace
21
38
  def class_full_name
22
39
  instance.class.name
@@ -144,17 +161,6 @@ module Peeky
144
161
  signatures.select { |im| im.name == name && im.implementation_type == filter_type }
145
162
  end
146
163
 
147
- # Build (not sure where I am going with this yet)
148
- # TODO: Refact: Currently the idea is to pre-load data
149
- # this is slower when you are not accessing things, but
150
- # it is easier to debug, so think about what I really want
151
- # here
152
- def build
153
- ruby_instance_methods
154
- ruby_instance_method_names
155
- signatures
156
- end
157
-
158
164
  # Debug
159
165
  #
160
166
  # Refact: PATTERN: Come up it an debug inclusion system so that
@@ -99,6 +99,7 @@ module Peeky
99
99
  end
100
100
 
101
101
  # P available?
102
+
102
103
  # @return [Boolean] true when p available?
103
104
  def p_available?
104
105
  end
@@ -20,11 +20,8 @@ module Peeky
20
20
  # type of the parameter
21
21
  attr_accessor :type
22
22
 
23
- # ruby code format when used in a signature
24
- attr_accessor :signature_format
25
-
26
- # minimal required usage in a call to the method with this paramater
27
- attr_accessor :minimal_call_format
23
+ # default value for positional or keyed parameters
24
+ attr_accessor :default_value
28
25
 
29
26
  def initialize(param)
30
27
  map(param)
@@ -58,47 +55,125 @@ module Peeky
58
55
  puts "minimal_call_format : #{minimal_call_format}"
59
56
  end
60
57
 
58
+ # ruby code formatted for use in a method signature
59
+ def signature_format
60
+ @_signature_format ||= begin
61
+ method_name = "signature_format_#{@type}".to_sym
62
+
63
+ m = method(method_name)
64
+ m.call
65
+ end
66
+ end
67
+
68
+ # minimal required usage in a call to the method with this paramater
69
+ def minimal_call_format
70
+ @_minimal_call_format ||= begin
71
+ method_name = "minimal_call_format_#{@type}".to_sym
72
+
73
+ if respond_to?(method_name, true)
74
+ m = method(method_name)
75
+ m.call
76
+ else
77
+ minimal_call_format_ignore
78
+ end
79
+ end
80
+ end
81
+
61
82
  private
62
83
 
63
84
  # Convert the limited information provided by ruby method.parameters
64
85
  # to a richer structure.
65
- # rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity, Metrics/AbcSize
86
+ # rubocop:disable Metrics/CyclomaticComplexity
66
87
  def map(param)
67
88
  @name = param.length > 1 ? param[1].to_s : ''
68
89
 
90
+ @default_value = nil
91
+
69
92
  case param[0]
70
93
  when :req
71
94
  @type = :param_required
72
- @signature_format = name.to_s
73
- @minimal_call_format = "'#{name}'"
74
95
  when :opt
75
96
  @type = :param_optional
76
- @signature_format = "#{name} = nil"
77
- @minimal_call_format = ''
78
97
  when :rest
79
98
  @type = :splat
80
- @signature_format = "*#{name}"
81
- @minimal_call_format = ''
82
99
  when :keyreq
83
100
  @type = :key_required
84
- @signature_format = "#{name}:"
85
- @minimal_call_format = "#{name}: '#{name}'"
86
101
  when :key
87
102
  @type = :key_optional
88
- @signature_format = "#{name}: nil"
89
- @minimal_call_format = ''
90
103
  when :keyrest
91
104
  @type = :double_splat
92
- @signature_format = "**#{name}"
93
- @minimal_call_format = ''
94
105
  when :block
95
106
  @type = :block
96
- @signature_format = "&#{name}"
97
- @minimal_call_format = ''
98
107
  else
99
108
  raise 'unknown type'
100
109
  end
101
110
  end
102
- # rubocop:enable Metrics/MethodLength, Metrics/CyclomaticComplexity, Metrics/AbcSize
111
+ # rubocop:enable Metrics/CyclomaticComplexity
112
+
113
+ # Signature format *: Is used to format a parameter when it is used
114
+ # inside of a method signature, eg. def my_method(p1, p2 = 'xyz', p3: :name_value)
115
+
116
+ def signature_format_param_required
117
+ name.to_s
118
+ end
119
+
120
+ def signature_format_param_optional
121
+ "#{name} = nil" # signature format needs to be moved to a method
122
+ end
123
+
124
+ def signature_format_splat
125
+ "*#{name}"
126
+ end
127
+
128
+ def signature_format_key_required
129
+ "#{name}:"
130
+ end
131
+
132
+ def signature_format_key_optional
133
+ "#{name}: nil"
134
+ end
135
+
136
+ def signature_format_double_splat
137
+ "**#{name}"
138
+ end
139
+
140
+ def signature_format_block
141
+ "&#{name}"
142
+ end
143
+
144
+ # Minimal call format *: Is used to format a call to a method with the least
145
+ # number of parameters needed to make it work.
146
+
147
+ def minimal_call_format_ignore
148
+ ''
149
+ end
150
+
151
+ def minimal_call_format_param_required
152
+ "'#{@name}'"
153
+ end
154
+
155
+ # def minimal_call_format_param_optional
156
+ # ''
157
+ # end
158
+
159
+ # def minimal_call_format_splat
160
+ # ''
161
+ # end
162
+
163
+ def minimal_call_format_key_required
164
+ "#{@name}: '#{@name}'"
165
+ end
166
+
167
+ # def minimal_call_format_key_optional
168
+ # ''
169
+ # end
170
+
171
+ # def minimal_call_format_double_splat
172
+ # ''
173
+ # end
174
+
175
+ # def minimal_call_format_block
176
+ # ''
177
+ # end
103
178
  end
104
179
  end
@@ -122,7 +122,10 @@ module Peeky
122
122
  end
123
123
  end
124
124
 
125
- result.push "#{@indent}# @return [Boolean] true when #{method_signature.name.to_s.humanize.downcase}" if method_signature.name.to_s.end_with?('?')
125
+ if method_signature.name.to_s.end_with?('?')
126
+ result.push ''
127
+ result.push "#{@indent}# @return [Boolean] true when #{method_signature.name.to_s.humanize.downcase}"
128
+ end
126
129
 
127
130
  render_signature = Peeky::Renderer::MethodSignatureRender.new(method_signature)
128
131
  render_signature.indent = @indent
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Peeky
4
- VERSION = '0.0.28'
4
+ VERSION = '0.0.31'
5
5
  end
@@ -49,7 +49,7 @@ Gem::Specification.new do |spec|
49
49
  spec.rdoc_options += [
50
50
  '--title', 'peeky by appydave.com',
51
51
  '--main', 'README.md',
52
- '--files STORIES.MD'
52
+ '--files STORIES.MD USAGE.MD'
53
53
  ]
54
54
 
55
55
  spec.add_dependency 'activesupport'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peeky
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.28
4
+ version: 0.0.31
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-07 00:00:00.000000000 Z
11
+ date: 2020-11-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -48,6 +48,7 @@ files:
48
48
  - README.md
49
49
  - Rakefile
50
50
  - STORIES.md
51
+ - USAGE.md
51
52
  - bin/console
52
53
  - bin/k
53
54
  - bin/kgitsync
@@ -85,7 +86,7 @@ rdoc_options:
85
86
  - peeky by appydave.com
86
87
  - "--main"
87
88
  - README.md
88
- - "--files STORIES.MD"
89
+ - "--files STORIES.MD USAGE.MD"
89
90
  require_paths:
90
91
  - lib
91
92
  required_ruby_version: !ruby/object:Gem::Requirement