pragmater 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5e3cd60cb96e801aa4fd3cc4e1c6598d2298eb8b
4
+ data.tar.gz: f518b806aafe3e671c97651d739b59c81312fce5
5
+ SHA512:
6
+ metadata.gz: 714d74c9f14f6a301325e61e662388a2a780f98589f858b73f6a4080ca9afe77a5f8f5db6d56e86e92b7d75aca48efaa9a710b94d83d6ab5218b6529c03b15bf
7
+ data.tar.gz: fe04dadb9f1324af93dcaacf37bfdb50c9c8d8945f3f183170c1db3974f86c5b9d42b99d205383b331a55f95bd7d468180003e3d3ab6acc9d872d4c239b3f320
data/LICENSE.md ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2015 [Alchemists](https://www.alchemists.io).
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,120 @@
1
+ # Pragmater
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/pragmater.svg)](http://badge.fury.io/rb/pragmater)
4
+ [![Code Climate GPA](https://codeclimate.com/github/bkuhlmann/pragmater.svg)](https://codeclimate.com/github/bkuhlmann/pragmater)
5
+ [![Code Climate Coverage](https://codeclimate.com/github/bkuhlmann/pragmater/coverage.svg)](https://codeclimate.com/github/bkuhlmann/pragmater)
6
+ [![Gemnasium Status](https://gemnasium.com/bkuhlmann/pragmater.svg)](https://gemnasium.com/bkuhlmann/pragmater)
7
+ [![Travis CI Status](https://secure.travis-ci.org/bkuhlmann/pragmater.svg)](https://travis-ci.org/bkuhlmann/pragmater)
8
+ [![Patreon](https://img.shields.io/badge/patreon-donate-brightgreen.svg)](https://www.patreon.com/bkuhlmann)
9
+
10
+ A command line interface for adding [directive pragma](https://en.wikipedia.org/wiki/Directive_(programming)) comments
11
+ (a.k.a. *magic comments*) to source files. Examples:
12
+
13
+ #! /usr/bin/ruby
14
+ # frozen_string_literal: true
15
+ # encoding: UTF-8
16
+
17
+ With the release of [Ruby 2.3.0](https://www.ruby-lang.org/en/news/2015/12/25/ruby-2-3-0-released), support for frozen
18
+ strings are now supported via a pragma comment. This gems provides a easy way to add pragma comments to single or
19
+ multiple Ruby source files in order to benefit from improved memory and concurrency performance.
20
+
21
+ <!-- Tocer[start]: Auto-generated, don't remove. -->
22
+
23
+ # Table of Contents
24
+
25
+ - [Features](#features)
26
+ - [Requirements](#requirements)
27
+ - [Setup](#setup)
28
+ - [Usage](#usage)
29
+ - [Command Line Interface (CLI)](#command-line-interface-cli)
30
+ - [Tests](#tests)
31
+ - [Versioning](#versioning)
32
+ - [Code of Conduct](#code-of-conduct)
33
+ - [Contributions](#contributions)
34
+ - [License](#license)
35
+ - [History](#history)
36
+ - [Credits](#credits)
37
+
38
+ <!-- Tocer[finish]: Auto-generated, don't remove. -->
39
+
40
+ # Features
41
+
42
+ - Supports adding a pragma comment or multiple pragma comments to single or multiple source files.
43
+ - Supports removing a pragma comment or multiple pragma comments from single or multiple source files.
44
+ - Supports whitelist filtering. Defaults to `*.rb` and `*.rake` files.
45
+ - Ensures duplicate pragma comments never exist.
46
+ - Ensures pragma commments are always properly formatted.
47
+
48
+ # Requirements
49
+
50
+ 0. [MRI 2.3.x](https://www.ruby-lang.org)
51
+
52
+ # Setup
53
+
54
+ For a secure install, type the following (recommended):
55
+
56
+ gem cert --add <(curl -Ls https://www.my-website.com/gem-public.pem)
57
+ gem install pragmater --trust-policy MediumSecurity
58
+
59
+ NOTE: A HighSecurity trust policy would be best but MediumSecurity enables signed gem verification while
60
+ allowing the installation of unsigned dependencies since they are beyond the scope of this gem.
61
+
62
+ For an insecure install, type the following (not recommended):
63
+
64
+ gem install pragmater
65
+
66
+ # Usage
67
+
68
+ ## Command Line Interface (CLI)
69
+
70
+ From the command line, type: `pragmater help`
71
+
72
+ pragmater -a, [--add=ADD] # Add pragma comments to source file(s).
73
+ pragmater -e, [--edit] # Edit Pragmater settings in default editor.
74
+ pragmater -h, [--help=HELP] # Show this message or get help for a command.
75
+ pragmater -r, [--remove=REMOVE] # Remove pragma comments from source file(s).
76
+ pragmater -v, [--version] # Show Pragmater version.
77
+
78
+ Both the `--add` and `--remove` options provide the ability to supply specific pragma comments and/or whitelisted file
79
+ extensions:
80
+
81
+ -c, [--comments=one two three] # Pragma comments
82
+ -e, [--extensions=one two three] # File extension whitelist
83
+ # Default: [".rb", ".rake"]
84
+
85
+ # Tests
86
+
87
+ To test, run:
88
+
89
+ bundle exec rake
90
+
91
+ # Versioning
92
+
93
+ Read [Semantic Versioning](http://semver.org) for details. Briefly, it means:
94
+
95
+ - Patch (x.y.Z) - Incremented for small, backwards compatible bug fixes.
96
+ - Minor (x.Y.z) - Incremented for new, backwards compatible public API enhancements and/or bug fixes.
97
+ - Major (X.y.z) - Incremented for any backwards incompatible public API changes.
98
+
99
+ # Code of Conduct
100
+
101
+ Please note that this project is released with a [CODE OF CONDUCT](CODE_OF_CONDUCT.md). By participating in this project
102
+ you agree to abide by its terms.
103
+
104
+ # Contributions
105
+
106
+ Read [CONTRIBUTING](CONTRIBUTING.md) for details.
107
+
108
+ # License
109
+
110
+ Copyright (c) 2015 [Alchemists](https://www.alchemists.io).
111
+ Read the [LICENSE](LICENSE.md) for details.
112
+
113
+ # History
114
+
115
+ Read the [CHANGELOG](CHANGELOG.md) for details.
116
+ Built with [Gemsmith](https://github.com/bkuhlmann/gemsmith).
117
+
118
+ # Credits
119
+
120
+ Developed by [Brooke Kuhlmann](https://www.alchemists.io) at [Alchemists](https://www.alchemists.io).
data/bin/pragmater ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "pragmater"
5
+ require "pragmater/cli"
6
+ require "pragmater/identity"
7
+
8
+ Process.setproctitle Pragmater::Identity.version_label
9
+ Pragmater::CLI.start
@@ -0,0 +1,78 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "yaml"
4
+ require "pathname"
5
+ require "thor"
6
+ require "thor/actions"
7
+ require "thor_plus/actions"
8
+
9
+ module Pragmater
10
+ # The Command Line Interface (CLI) for the gem.
11
+ class CLI < Thor
12
+ include Thor::Actions
13
+ include ThorPlus::Actions
14
+
15
+ package_name Pragmater::Identity.version_label
16
+
17
+ def initialize args = [], options = {}, config = {}
18
+ super args, options, config
19
+ end
20
+
21
+ desc "-a, [--add=ADD]", "Add pragma comments to source file(s)."
22
+ map %w(-a --add) => :add
23
+ method_option :comments, aliases: "-c", desc: "Pragma comments", type: :array, default: []
24
+ method_option :extensions, aliases: "-e", desc: "File extension whitelist", type: :array, default: [".rb", ".rake"]
25
+ def add path
26
+ write path, options[:comments], options[:extensions], :add
27
+ end
28
+
29
+ desc "-r, [--remove=REMOVE]", "Remove pragma comments from source file(s)."
30
+ map %w(-r --remove) => :remove
31
+ method_option :comments, aliases: "-c", desc: "Pragma comments", type: :array, default: []
32
+ method_option :extensions, aliases: "-e", desc: "File extension whitelist", type: :array, default: [".rb", ".rake"]
33
+ def remove path
34
+ write path, options[:comments], options[:extensions], :remove
35
+ end
36
+
37
+ desc "-e, [--edit]", "Edit #{Pragmater::Identity.label} settings in default editor."
38
+ map %w(-e --edit) => :edit
39
+ def edit
40
+ resource_file = File.join ENV["HOME"], Pragmater::Identity.file_name
41
+ info "Editing: #{resource_file}..."
42
+ `#{editor} #{resource_file}`
43
+ end
44
+
45
+ desc "-v, [--version]", "Show #{Pragmater::Identity.label} version."
46
+ map %w(-v --version) => :version
47
+ def version
48
+ say Pragmater::Identity.version_label
49
+ end
50
+
51
+ desc "-h, [--help=HELP]", "Show this message or get help for a command."
52
+ map %w(-h --help) => :help
53
+ def help task = nil
54
+ say && super
55
+ end
56
+
57
+ private
58
+
59
+ def update_file path, comments, action
60
+ Writer.new(path, comments).public_send action
61
+ say "Updated: #{path}."
62
+ end
63
+
64
+ def write path, comments, extensions, action
65
+ pathname = Pathname path
66
+
67
+ case
68
+ when pathname.file?
69
+ update_file pathname, comments, action
70
+ when pathname.directory?
71
+ files = Pathname.glob %(#{pathname}/**/*{#{extensions.join ","}})
72
+ files.each { |file_path| update_file file_path, comments, action }
73
+ else
74
+ error "Invalid path: #{path}."
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pragmater
4
+ # Handles pragma comments.
5
+ class Commenter
6
+ def initialize older, newer, formatter: Formatter
7
+ @formatter = formatter
8
+ @older = format older
9
+ @newer = format newer
10
+ end
11
+
12
+ def add
13
+ older | newer
14
+ end
15
+
16
+ def remove
17
+ older - (older & newer)
18
+ end
19
+
20
+ private
21
+
22
+ attr_reader :older, :newer, :formatter
23
+
24
+ def format comments
25
+ Array(comments).map { |comment| formatter.new(comment).format }
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pragmater
4
+ # Formats pragma comments in a consistent manner.
5
+ class Formatter
6
+ def self.shebang_format
7
+ /
8
+ \A # Start of line.
9
+ \# # Start of comment.
10
+ \! # Bang.
11
+ \s? # Space - optional.
12
+ \/.*ruby # Absolute path to Ruby program.
13
+ \Z # End of line.
14
+ /x
15
+ end
16
+
17
+ def self.pragma_format
18
+ /
19
+ \A # Start of line.
20
+ \# # Start of comment.
21
+ \s? # Space - optional.
22
+ \w+ # Key - 1 or more word characters only.
23
+ \: # Key and value delimiter.
24
+ \s? # Space - optional.
25
+ .+ # Value - 1 or more characters.
26
+ \Z # End of line.
27
+ /x
28
+ end
29
+
30
+ def initialize comment
31
+ @comment = comment
32
+ end
33
+
34
+ def format_shebang
35
+ return comment unless comment =~ self.class.shebang_format
36
+
37
+ _, path = comment.split "!"
38
+ "#! #{path.strip}"
39
+ end
40
+
41
+ def format_pragma
42
+ return comment unless comment =~ self.class.pragma_format
43
+
44
+ key, value = comment.split ":"
45
+ "# #{key.gsub(/\#\s?/, "")}: #{value.strip}"
46
+ end
47
+
48
+ def format
49
+ case comment
50
+ when self.class.shebang_format then format_shebang
51
+ when self.class.pragma_format then format_pragma
52
+ else comment
53
+ end
54
+ end
55
+
56
+ private
57
+
58
+ attr_reader :comment
59
+ end
60
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pragmater
4
+ # Gem identity information.
5
+ module Identity
6
+ def self.name
7
+ "pragmater"
8
+ end
9
+
10
+ def self.label
11
+ "Pragmater"
12
+ end
13
+
14
+ def self.version
15
+ "0.1.0"
16
+ end
17
+
18
+ def self.version_label
19
+ "#{label} #{version}"
20
+ end
21
+
22
+ def self.file_name
23
+ ".#{name}rc"
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pragmater
4
+ # Writes formatted pragma comments to source file.
5
+ class Writer
6
+ def initialize file_path, new_comments, formatter: Formatter, commenter: Commenter
7
+ @file_path = file_path
8
+ @file_lines = File.open(file_path).to_a
9
+ @formatter = formatter
10
+ @commenter = commenter
11
+ @old_comments = file_comments
12
+ @new_comments = new_comments
13
+ end
14
+
15
+ def add
16
+ write { (format(commenter.new(old_comments, new_comments).add) + file_lines_without_comments).join }
17
+ end
18
+
19
+ def remove
20
+ write { (format(commenter.new(old_comments, new_comments).remove) + file_lines_without_comments).join }
21
+ end
22
+
23
+ private
24
+
25
+ attr_reader :file_path, :file_lines, :new_comments, :old_comments, :formatter, :commenter
26
+
27
+ def file_comments
28
+ file_lines.select { |line| line =~ formatter.shebang_format || line =~ formatter.pragma_format }
29
+ end
30
+
31
+ def file_lines_without_comments
32
+ file_lines.reject { |line| old_comments.include? line }
33
+ end
34
+
35
+ def format lines
36
+ lines.map { |line| "#{line}\n" }
37
+ end
38
+
39
+ def write
40
+ File.open(file_path, "w") { |file| file.write yield }
41
+ end
42
+ end
43
+ end
data/lib/pragmater.rb ADDED
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "pragmater/commenter"
4
+ require "pragmater/formatter"
5
+ require "pragmater/identity"
6
+ require "pragmater/writer"
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ begin
4
+ require "rspec/core/rake_task"
5
+ RSpec::Core::RakeTask.new(:spec)
6
+ rescue LoadError => error
7
+ puts error.message
8
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ begin
4
+ require "rubocop/rake_task"
5
+ RuboCop::RakeTask.new
6
+ rescue LoadError => error
7
+ puts error.message
8
+ end
metadata ADDED
@@ -0,0 +1,310 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pragmater
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Brooke Kuhlmann
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-12-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: thor_plus
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: gemsmith
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry-byebug
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry-remote
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry-state
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry-rescue
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: pry-stack_explorer
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: rspec
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: climate_control
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rb-fsevent
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: guard-rspec
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: terminal-notifier
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: terminal-notifier-guard
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: rubocop
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: codeclimate-test-reporter
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
265
+ description: A command line interface for adding pragma comments to source files.
266
+ email:
267
+ - brooke@alchemists.io
268
+ executables:
269
+ - pragmater
270
+ extensions: []
271
+ extra_rdoc_files:
272
+ - README.md
273
+ - LICENSE.md
274
+ files:
275
+ - LICENSE.md
276
+ - README.md
277
+ - bin/pragmater
278
+ - lib/pragmater.rb
279
+ - lib/pragmater/cli.rb
280
+ - lib/pragmater/commenter.rb
281
+ - lib/pragmater/formatter.rb
282
+ - lib/pragmater/identity.rb
283
+ - lib/pragmater/writer.rb
284
+ - lib/tasks/rspec.rake
285
+ - lib/tasks/rubocop.rake
286
+ homepage: https://github.com/bkuhlmann/pragmater
287
+ licenses:
288
+ - MIT
289
+ metadata: {}
290
+ post_install_message:
291
+ rdoc_options: []
292
+ require_paths:
293
+ - lib
294
+ required_ruby_version: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - "~>"
297
+ - !ruby/object:Gem::Version
298
+ version: '2.3'
299
+ required_rubygems_version: !ruby/object:Gem::Requirement
300
+ requirements:
301
+ - - ">="
302
+ - !ruby/object:Gem::Version
303
+ version: '0'
304
+ requirements: []
305
+ rubyforge_project:
306
+ rubygems_version: 2.5.1
307
+ signing_key:
308
+ specification_version: 4
309
+ summary: A command line interface for adding pragma comments to source files.
310
+ test_files: []