refinements 7.0.0 → 7.1.0

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: ff378c2c0076828fcd3e3ad623de04d09cf9c0f55bd12a17912504fad71bdf28
4
- data.tar.gz: 9280e888aad9dcebe9872734501cc6d5a8ce46af9baa7e3fb9bf3baca0e49518
3
+ metadata.gz: 33305a79040d956270249e8e69d221e18144754a754c768a4c5dbd46f52672aa
4
+ data.tar.gz: c8d64fe7e0be077ae13e3dda3bf65baa0b4f0bd5690d30ff4fc5cf75df08772b
5
5
  SHA512:
6
- metadata.gz: 0c2ba552ed6a3779b3eb220f6d39b348baf83e2bab906aca907c483209f52f98554d9baeed1c5cbeeba939be205779ed20e1c625671672d4e143451ea36210d0
7
- data.tar.gz: e7a91844e7df2654a1b20257e036d634d96bd867291bf5687e0ead5e07cdf307cd2e1347a917304119520813baddaca8f740589674545f1b3ac24acecc1e910d
6
+ metadata.gz: fc20aa5a6d29ddf5d184d54054e76ba44f1b0b092fecb67b98c8ba4bbe53ee3004f9e7418feeadce99243367070791a2c6064b4667b306cfbf8f4c40421e5e27
7
+ data.tar.gz: ed26803b0ed30ea0fc82cf89781c15604946db6ad0826b3a452b51b97f9b868dabc1d9b547a32385b5dcf7bc03a3269e999654ba30dd9d350696b188bdbb09c5
Binary file
data.tar.gz.sig CHANGED
@@ -1,3 +1,2 @@
1
- I^��׬��c�ž��A�[)O
2
- ,�[X��1[[���+�� ����'pGׯG9���D-8��骇���(�Č~񪄴��
3
- ���$�m���C��AZ²��<��I�l�W�}��D�������2���٘ƿ̶g:i�{0uU�)�����!+�$�7��.-6��[�L�W�>����h u�*X�����(�)"���99E3)�-=�w=.��t@}��Td���_�Ut���4;W����Qp�L'
1
+ L��S,-������7�Ͻ��I�����AEJr�`�(j:û�"Q�PU�#���[��h~����M}���q�f]�7H�$��vqZӳ���.�����B��as���>�����
2
+ /K��ɿ�^j���$h����k&�������Q@���d�t6N�.�X�c��K�G� Eq�Zs5���8�����$Z��Vl�B�|S��"��o� E��Q�̷�n|��%]�U����I�=3)�ajJ��>�x� 
data/README.md CHANGED
@@ -49,8 +49,12 @@ A collection of refinements (enhancements) to core Ruby objects.
49
49
  - Provides BigDecimal refinements:
50
50
  - `#inspect` - Allows one to inspect a big decimal with numeric representation.
51
51
  - Provides File refinements:
52
- - `.rewrite` - When given a file path and a block, it provides the contents of the recently read
52
+ - `#name` - Answers the *name* of file without extension.
53
+ - `#copy` - Copies an existing file to new file. Both directory structures must exist.
54
+ - `#rewrite` - When given a file path and a block, it provides the contents of the recently read
53
55
  file for manipulation and immediate writing back to the same file.
56
+ - `#touch` - Updates the access and modified times of an existing file or creates the file when
57
+ not existing.
54
58
  - Provides Hash refinements:
55
59
  - `#except` - Answers new hash with given keys removed without modifying calling hash.
56
60
  - `#except!` - Answers new hash with given keys removed while modifying calling hash.
@@ -78,7 +82,7 @@ A collection of refinements (enhancements) to core Ruby objects.
78
82
 
79
83
  ## Requirements
80
84
 
81
- 1. [Ruby 2.6.x](https://www.ruby-lang.org).
85
+ 1. [Ruby 2.7.x](https://www.ruby-lang.org).
82
86
  1. A solid understanding of [Ruby refinements and lexical scope](https://www.youtube.com/watch?v=qXC9Gk4dCEw).
83
87
 
84
88
  ## Setup
@@ -196,8 +200,15 @@ The following sections demonstrate how each refinement enriches your objects wit
196
200
 
197
201
  #### Pathname
198
202
 
203
+ Pathname("test.txt").name # => Pathname("test")
204
+
205
+ Pathname("input.txt").copy Pathname("output.txt")
206
+
199
207
  Pathname("/test.txt").rewrite { |content| content.sub "[placeholder]", "example" }
200
208
 
209
+ Pathname("test.txt").touch
210
+ Pathname("test.txt").touch accessed_at: Time.now - 1, modified_at: Time.now - 1
211
+
201
212
  #### String
202
213
 
203
214
  "example".first # => "e"
@@ -12,7 +12,7 @@ module Refinements
12
12
  end
13
13
 
14
14
  def self.version
15
- "7.0.0"
15
+ "7.1.0"
16
16
  end
17
17
 
18
18
  def self.version_label
@@ -5,8 +5,24 @@ require "pathname"
5
5
  module Refinements
6
6
  module Pathnames
7
7
  refine Pathname do
8
+ def name
9
+ basename extname
10
+ end
11
+
12
+ def copy to
13
+ destination = to.directory? ? to.join(basename) : to
14
+ read.then { |content| destination.write content }
15
+ self
16
+ end
17
+
8
18
  def rewrite
9
- read.then { |content| write yield(content) }
19
+ read.then { |content| write yield(content) if block_given? }
20
+ self
21
+ end
22
+
23
+ def touch at: Time.now
24
+ exist? ? utime(at, at) : write("")
25
+ self
10
26
  end
11
27
  end
12
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: refinements
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.0
4
+ version: 7.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -28,7 +28,7 @@ cert_chain:
28
28
  dKvURM+1PwDCzC5tvRwjhUJIizau6+MtkFCvJHmaAj1aZL3odcPejHj5Hxt/0CUW
29
29
  y84=
30
30
  -----END CERTIFICATE-----
31
- date: 2020-01-01 00:00:00.000000000 Z
31
+ date: 2020-01-31 00:00:00.000000000 Z
32
32
  dependencies:
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: bundler-audit
@@ -44,6 +44,34 @@ dependencies:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0.6'
47
+ - !ruby/object:Gem::Dependency
48
+ name: gemsmith
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '14.0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '14.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: git-cop
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '4.0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '4.0'
47
75
  - !ruby/object:Gem::Dependency
48
76
  name: guard-rspec
49
77
  requirement: !ruby/object:Gem::Requirement
@@ -106,14 +134,14 @@ dependencies:
106
134
  requirements:
107
135
  - - "~>"
108
136
  - !ruby/object:Gem::Version
109
- version: '5.4'
137
+ version: '5.6'
110
138
  type: :development
111
139
  prerelease: false
112
140
  version_requirements: !ruby/object:Gem::Requirement
113
141
  requirements:
114
142
  - - "~>"
115
143
  - !ruby/object:Gem::Version
116
- version: '5.4'
144
+ version: '5.6'
117
145
  - !ruby/object:Gem::Dependency
118
146
  name: rspec
119
147
  requirement: !ruby/object:Gem::Requirement
@@ -134,14 +162,14 @@ dependencies:
134
162
  requirements:
135
163
  - - "~>"
136
164
  - !ruby/object:Gem::Version
137
- version: '0.78'
165
+ version: '0.79'
138
166
  type: :development
139
167
  prerelease: false
140
168
  version_requirements: !ruby/object:Gem::Requirement
141
169
  requirements:
142
170
  - - "~>"
143
171
  - !ruby/object:Gem::Version
144
- version: '0.78'
172
+ version: '0.79'
145
173
  - !ruby/object:Gem::Dependency
146
174
  name: rubocop-performance
147
175
  requirement: !ruby/object:Gem::Requirement
@@ -190,14 +218,14 @@ dependencies:
190
218
  requirements:
191
219
  - - "~>"
192
220
  - !ruby/object:Gem::Version
193
- version: '0.17'
221
+ version: '0.18'
194
222
  type: :development
195
223
  prerelease: false
196
224
  version_requirements: !ruby/object:Gem::Requirement
197
225
  requirements:
198
226
  - - "~>"
199
227
  - !ruby/object:Gem::Version
200
- version: '0.17'
228
+ version: '0.18'
201
229
  description:
202
230
  email:
203
231
  - brooke@alchemists.io
metadata.gz.sig CHANGED
Binary file