pragmater 5.0.2 → 5.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: 9d207f1d3b63fba912f2f781c3e2f7b9175b05761940d692b3234dea30c06a9e
4
- data.tar.gz: db2f6c630023f76b4163679cccf8c447b5ea341f41e534f79505389103377aca
3
+ metadata.gz: 43d44e1947b60d7b411a16fe44c69806b76e30ddb7088d31342f79774164d8ff
4
+ data.tar.gz: 6489dc53d3557222ed545a280622b806ca781006d699d40dec3611486f3c5486
5
5
  SHA512:
6
- metadata.gz: 37b22ae14a11750281782cf0c540364f0a149326885ca93e24b4110b2a0f8b4436db53871c8784758361daefb67975ce6cdf496d4b9c8183f9c70d9636edf36e
7
- data.tar.gz: e929ba3fce0169fa21716d1791744b49b4c4c42deca2b0c049376746dc33ff4c3b59a5600ef94b2e6ea4a700e9105fe60f07da522e26e5853517300a371ffecc
6
+ metadata.gz: a7b2206f9a09f74bc8bd60f7da523ab908f6d3e1709e311a117c28699ff67985d76e6c9b12e775aeccf4bebfd772029c9eb6be88139cc2ff21e47efba9220eb2
7
+ data.tar.gz: 32ce7f987dccfe5f0de528dd7354b24b40b24d7945186d9a54b9714f2d99d31c204d854a1162b8a7660b3bd46473e35e8abfe169e19dc3869afbd777c2ff25b4
checksums.yaml.gz.sig ADDED
Binary file
data.tar.gz.sig ADDED
Binary file
data/README.md CHANGED
@@ -3,7 +3,6 @@
3
3
  [![Gem Version](https://badge.fury.io/rb/pragmater.svg)](http://badge.fury.io/rb/pragmater)
4
4
  [![Code Climate Maintainability](https://api.codeclimate.com/v1/badges/f0971ab6985309ce4db4/maintainability)](https://codeclimate.com/github/bkuhlmann/pragmater/maintainability)
5
5
  [![Code Climate Test Coverage](https://api.codeclimate.com/v1/badges/f0971ab6985309ce4db4/test_coverage)](https://codeclimate.com/github/bkuhlmann/pragmater/test_coverage)
6
- [![Gemnasium Status](https://gemnasium.com/bkuhlmann/pragmater.svg)](https://gemnasium.com/bkuhlmann/pragmater)
7
6
  [![Circle CI Status](https://circleci.com/gh/bkuhlmann/pragmater.svg?style=svg)](https://circleci.com/gh/bkuhlmann/pragmater)
8
7
 
9
8
  A command line interface for managing/formatting source file
@@ -81,6 +80,14 @@ included files (viewable by running `pragmater --help --add` or `pragmater --hel
81
80
  -c, [--comments=one two three] # Pragma comments
82
81
  -i, [--includes=one two three] # File include list
83
82
 
83
+ Example (same options could be used for the `--remove` command too):
84
+
85
+ pragmater --add --comments "# frozen_string_literal: true" --includes "Gemfile" "Guardfile" "Rakefile" ".gemspec" "config.ru" "bin/**/*" "**/*.rake" "**/*.rb"
86
+
87
+ The `--add` and `--remove` commands default to the current working directory so a path isn't
88
+ necessary unless you want to run Pragmater on a directory structure *other than* your current
89
+ working directory.
90
+
84
91
  ### Customization
85
92
 
86
93
  This gem can be configured via a global configuration:
@@ -111,8 +118,8 @@ The `configuration.yml` file can be configured as follows:
111
118
 
112
119
  ### Frozen String Literals
113
120
 
114
- With Ruby 2.3.0, support for frozen strings was added. These comments are meant to be placed at the
115
- top of each source file. Example:
121
+ Support for frozen string literals was added in Ruby 2.3.0. The ability to freeze strings within a
122
+ source can be done by placing a frozen string pragma at the top of each source file. Example:
116
123
 
117
124
  # frozen_string_literal: true
118
125
 
@@ -122,7 +129,7 @@ the following Ruby command line option:
122
129
 
123
130
  --enable=frozen-string-literal
124
131
 
125
- It is important to note that, once enabled, it freezes strings program-wide -- It's an all or
132
+ It is important to note that, once enabled, this freezes strings program-wide -- It's an all or
126
133
  nothing option.
127
134
 
128
135
  Regardless of whether you leverage the capabilities of this gem or the Ruby command line option
@@ -131,6 +138,37 @@ down frozen string literal issues:
131
138
 
132
139
  --debug=frozen-string-literal
133
140
 
141
+ Ruby 2.3.0 also added the following methods to the `String` class:
142
+
143
+ - `String#+@`: Answers a duplicated, mutable, string if not already frozen. Example:
144
+
145
+ immutable = "test".freeze
146
+ mutable = +immutable
147
+ mutable.capitalize! # => "Test"
148
+
149
+ - `String#-@`: Answers a immutable string if not already frozen. Example:
150
+
151
+ mutable = "test"
152
+ immutable = -mutable
153
+ immutable.capitalize! # => FrozenError
154
+
155
+ You can also use the methods, shown above, for variable initialization. Example:
156
+
157
+ immutable = -"test"
158
+ mutable = +"test"
159
+
160
+ Despite Ruby allowing you to do this, it is *not recommended* to use the above examples as it leads
161
+ to hard to read code. Instead use the following:
162
+
163
+ immutable = "test".freeze
164
+ mutable = "test"
165
+
166
+ While this requires extra typing, it expresses intent more clearly. There is a slight caveat to this
167
+ rule in that the use of `String#-@` was [enhanced in Ruby 2.5.0](http://bit.ly/2DGAjgG) to
168
+ *deduplicate* all instances of the same string thus reducing your memory footprint. This can be
169
+ valuable in situations where you are not using the frozen string comment and need to selectively
170
+ freeze strings.
171
+
134
172
  ### Available Comments
135
173
 
136
174
  With Ruby 2.3 and higher, the following comments are available:
data/lib/pragmater/cli.rb CHANGED
@@ -13,7 +13,7 @@ module Pragmater
13
13
  package_name Identity.version_label
14
14
 
15
15
  def self.configuration
16
- Runcom::Configuration.new project_name: Identity.name, defaults: {
16
+ Runcom::Configuration.new Identity.name, defaults: {
17
17
  add: {
18
18
  comments: "",
19
19
  includes: []
@@ -45,7 +45,9 @@ module Pragmater
45
45
  type: :array,
46
46
  default: configuration.to_h.dig(:add, :includes)
47
47
  def add path = "."
48
- settings = configuration.merge add: {comments: options.comments, includes: options.includes}
48
+ settings = configuration.merge(
49
+ add: {comments: options.comments, includes: options.includes}
50
+ ).to_h
49
51
 
50
52
  runner = Runner.new path,
51
53
  comments: settings.dig(:add, :comments),
@@ -67,10 +69,9 @@ module Pragmater
67
69
  type: :array,
68
70
  default: configuration.to_h.dig(:remove, :includes)
69
71
  def remove path = "."
70
- settings = configuration.merge remove: {
71
- comments: options.comments,
72
- includes: options.includes
73
- }
72
+ settings = configuration.merge(
73
+ remove: {comments: options.comments, includes: options.includes}
74
+ ).to_h
74
75
 
75
76
  runner = Runner.new path,
76
77
  comments: settings.dig(:remove, :comments),
@@ -12,7 +12,7 @@ module Pragmater
12
12
  end
13
13
 
14
14
  def self.version
15
- "5.0.2"
15
+ "5.1.0"
16
16
  end
17
17
 
18
18
  def self.version_label
metadata CHANGED
@@ -1,14 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pragmater
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.2
4
+ version: 5.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain: []
11
- date: 2018-01-06 00:00:00.000000000 Z
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDQDCCAiigAwIBAgIBATANBgkqhkiG9w0BAQsFADAlMSMwIQYDVQQDDBpicm9v
14
+ a2UvREM9YWxjaGVtaXN0cy9EQz1pbzAeFw0xODAyMTQxNTA4NDVaFw0xOTAyMTQx
15
+ NTA4NDVaMCUxIzAhBgNVBAMMGmJyb29rZS9EQz1hbGNoZW1pc3RzL0RDPWlvMIIB
16
+ IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6l1qpXTiomH1RfMRloyw7MiE
17
+ xyVx/x8Yc3EupdH7uhNaTXQGyORN6aOY//1QXXMHIZ9tW74nZLhesWMSUMYy0XhB
18
+ brs+KkurHnc9FnEJAbG7ebGvl/ncqZt72nQvaxpDxvuCBHgJAz+8i5wl6FhLw+oT
19
+ 9z0A8KcGhz67SdcoQiD7qiCjL/2NTeWHOzkpPrdGlt088+VerEEGf5I13QCvaftP
20
+ D5vkU0YlAm1r98BymuJlcQ1qdkVEI1d48ph4kcS0S0nv1RiuyVb6TCAR3Nu3VaVq
21
+ 3fPzZKJLZBx67UvXdbdicWPiUR75elI4PXpLIic3xytaF52ZJYyKZCNZJhNwfQID
22
+ AQABo3sweTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU0nzow9vc
23
+ 2CdikiiE3fJhP/gY4ggwHwYDVR0RBBgwFoEUYnJvb2tlQGFsY2hlbWlzdHMuaW8w
24
+ HwYDVR0SBBgwFoEUYnJvb2tlQGFsY2hlbWlzdHMuaW8wDQYJKoZIhvcNAQELBQAD
25
+ ggEBAImQPNpkb90nkDUCJ4ivQNKK1LCebOjqZnOWGC4HxndvBQBqj78MTZifoODl
26
+ uPBY4fSnnpVGph+Y1OTWw/xhk3HE2AH0GDGC9xbM75qrg3/+a4D81pM94B6zuBdA
27
+ 7hxUy4kByawrii833IidV0zkI4lCombTNicc8JWXXSlL2G/sWPLndNvn5rzoyyRT
28
+ pPOLYGdB4hqUam3hBgLOsYIOVp+yXMvj0gvk/Djq8IR2P1RS4NZU7HHD485xkBfL
29
+ 4Zrsxi713z6sndd9JBAm4G7mJiV93MsuCM5N4ZDY7XaxIhvctNSNhX/Yn8LLdtGI
30
+ b4jw5t40FKyNUvLPPXYAvQALBtk=
31
+ -----END CERTIFICATE-----
32
+ date: 2018-04-01 00:00:00.000000000 Z
12
33
  dependencies:
13
34
  - !ruby/object:Gem::Dependency
14
35
  name: runcom
@@ -16,14 +37,14 @@ dependencies:
16
37
  requirements:
17
38
  - - "~>"
18
39
  - !ruby/object:Gem::Version
19
- version: '2.0'
40
+ version: '3.0'
20
41
  type: :runtime
21
42
  prerelease: false
22
43
  version_requirements: !ruby/object:Gem::Requirement
23
44
  requirements:
24
45
  - - "~>"
25
46
  - !ruby/object:Gem::Version
26
- version: '2.0'
47
+ version: '3.0'
27
48
  - !ruby/object:Gem::Dependency
28
49
  name: thor
29
50
  requirement: !ruby/object:Gem::Requirement
@@ -81,47 +102,33 @@ dependencies:
81
102
  - !ruby/object:Gem::Version
82
103
  version: '0.6'
83
104
  - !ruby/object:Gem::Dependency
84
- name: codeclimate-test-reporter
105
+ name: climate_control
85
106
  requirement: !ruby/object:Gem::Requirement
86
107
  requirements:
87
108
  - - "~>"
88
109
  - !ruby/object:Gem::Version
89
- version: '1.0'
110
+ version: '0.2'
90
111
  type: :development
91
112
  prerelease: false
92
113
  version_requirements: !ruby/object:Gem::Requirement
93
114
  requirements:
94
115
  - - "~>"
95
116
  - !ruby/object:Gem::Version
96
- version: '1.0'
117
+ version: '0.2'
97
118
  - !ruby/object:Gem::Dependency
98
- name: gemsmith
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '11.0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '11.0'
111
- - !ruby/object:Gem::Dependency
112
- name: git-cop
119
+ name: codeclimate-test-reporter
113
120
  requirement: !ruby/object:Gem::Requirement
114
121
  requirements:
115
122
  - - "~>"
116
123
  - !ruby/object:Gem::Version
117
- version: '2.0'
124
+ version: '1.0'
118
125
  type: :development
119
126
  prerelease: false
120
127
  version_requirements: !ruby/object:Gem::Requirement
121
128
  requirements:
122
129
  - - "~>"
123
130
  - !ruby/object:Gem::Version
124
- version: '2.0'
131
+ version: '1.0'
125
132
  - !ruby/object:Gem::Dependency
126
133
  name: guard-rspec
127
134
  requirement: !ruby/object:Gem::Requirement
@@ -198,14 +205,14 @@ dependencies:
198
205
  requirements:
199
206
  - - "~>"
200
207
  - !ruby/object:Gem::Version
201
- version: '4.7'
208
+ version: '4.8'
202
209
  type: :development
203
210
  prerelease: false
204
211
  version_requirements: !ruby/object:Gem::Requirement
205
212
  requirements:
206
213
  - - "~>"
207
214
  - !ruby/object:Gem::Version
208
- version: '4.7'
215
+ version: '4.8'
209
216
  - !ruby/object:Gem::Dependency
210
217
  name: rspec
211
218
  requirement: !ruby/object:Gem::Requirement
@@ -226,14 +233,14 @@ dependencies:
226
233
  requirements:
227
234
  - - "~>"
228
235
  - !ruby/object:Gem::Version
229
- version: '0.52'
236
+ version: '0.54'
230
237
  type: :development
231
238
  prerelease: false
232
239
  version_requirements: !ruby/object:Gem::Requirement
233
240
  requirements:
234
241
  - - "~>"
235
242
  - !ruby/object:Gem::Version
236
- version: '0.52'
243
+ version: '0.54'
237
244
  - !ruby/object:Gem::Dependency
238
245
  name: wirb
239
246
  requirement: !ruby/object:Gem::Requirement
@@ -271,7 +278,10 @@ files:
271
278
  homepage: https://github.com/bkuhlmann/pragmater
272
279
  licenses:
273
280
  - Apache-2.0
274
- metadata: {}
281
+ metadata:
282
+ source_code_uri: https://github.com/bkuhlmann/pragmater
283
+ changelog_uri: https://github.com/bkuhlmann/pragmater/blob/master/CHANGES.md
284
+ bug_tracker_uri: https://github.com/bkuhlmann/pragmater/issues
275
285
  post_install_message:
276
286
  rdoc_options: []
277
287
  require_paths:
@@ -288,7 +298,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
288
298
  version: '0'
289
299
  requirements: []
290
300
  rubyforge_project:
291
- rubygems_version: 2.7.4
301
+ rubygems_version: 2.7.6
292
302
  signing_key:
293
303
  specification_version: 4
294
304
  summary: A command line interface for managing/formatting source file pragma comments.
metadata.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ ȷq�|U��.��Z��}�Rߧ�# ��G�NEX��k>���%
2
+ 4�Z��˸|/m��uP�T[`�Ff�i���Ur!W��NA7�=��4��N����)&�$�@���=������6=Rf�eC�ںq}SD]�r*�Lf�W���N�_+���Ϡ^[[TQ�J�1%�k��ڮ�������p���%w