gemsmith 8.0.0 → 8.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
  SHA1:
3
- metadata.gz: 7b1e5311577e90d181cad13d15213dc594450040
4
- data.tar.gz: 777ee65fe3019ece41362faf8875a9b1c79ded58
3
+ metadata.gz: e3a96c9154c4fb90efc956a37d51aec117517651
4
+ data.tar.gz: 0205e0b2cf6c1e918b3bbd2af0604b57731064d0
5
5
  SHA512:
6
- metadata.gz: 9852fb4e6aa21e3880e3a034df9a1c8aa077705799ebd0fe261990db1a1fbe73e59c257ed69be945f1d7a0f65b7857ab667c9f6890c19eeb0fe1c16829b04b0e
7
- data.tar.gz: 01f05a28bc1f0cc79d1ee9b727ec56f79f5dd548729ccfb44323b792d21705578a4b022dfea16588332dfa620929349d1a8d3e11147c241cdd00c13c7ef18b02
6
+ metadata.gz: 1662d27ce0745b77682b287b9648de230f5262bb3771608667d38be3eecbad38f38530a7012d823353afc7ea826f88dec28bb2122a995de86d2245f9be772560
7
+ data.tar.gz: e1d2fab655c0e0103b78f21f130de0a8144df440142a14cea914471188766f9769831a2b6dabc6dcf3b56b868beacd176d190158799efad2aa96d41bec8ac6bc
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,37 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "gemsmith/identity"
4
+ require "gemsmith/git"
5
+ require "gemsmith/credentials"
6
+ require "gemsmith/authenticators/basic"
7
+ require "gemsmith/authenticators/ruby_gems"
8
+ require "gemsmith/errors/base"
9
+ require "gemsmith/errors/requirement_conversion"
10
+ require "gemsmith/errors/requirement_operator"
11
+ require "gemsmith/errors/specification"
12
+ require "gemsmith/gem/inspector"
13
+ require "gemsmith/gem/module_formatter"
14
+ require "gemsmith/gem/requirement"
15
+ require "gemsmith/gem/specification"
16
+ require "gemsmith/generators/base"
17
+ require "gemsmith/generators/bundler"
18
+ require "gemsmith/generators/cli"
19
+ require "gemsmith/generators/code_climate"
20
+ require "gemsmith/generators/documentation"
21
+ require "gemsmith/generators/gem"
22
+ require "gemsmith/generators/git"
23
+ require "gemsmith/generators/git_hub"
24
+ require "gemsmith/generators/guard"
25
+ require "gemsmith/generators/pragma"
26
+ require "gemsmith/generators/rails"
27
+ require "gemsmith/generators/rake"
28
+ require "gemsmith/generators/reek"
29
+ require "gemsmith/generators/rspec"
30
+ require "gemsmith/generators/rubocop"
31
+ require "gemsmith/generators/ruby"
32
+ require "gemsmith/generators/scss_lint"
33
+ require "gemsmith/generators/travis"
34
+ require "gemsmith/rake/builder"
35
+ require "gemsmith/rake/publisher"
36
+ require "gemsmith/rake/tasks"
37
+ require "gemsmith/cli"
@@ -1,41 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "yaml"
4
3
  require "thor"
5
4
  require "thor/actions"
6
5
  require "thor_plus/actions"
7
6
  require "refinements/strings"
8
7
  require "refinements/hashes"
9
8
  require "runcom"
10
- require "gemsmith/errors/base"
11
- require "gemsmith/errors/requirement_conversion"
12
- require "gemsmith/errors/requirement_operator"
13
- require "gemsmith/errors/specification"
14
- require "gemsmith/gem/inspector"
15
- require "gemsmith/gem/module_formatter"
16
- require "gemsmith/gem/requirement"
17
- require "gemsmith/gem/specification"
18
- require "gemsmith/generators/base"
19
- require "gemsmith/generators/bundler"
20
- require "gemsmith/generators/cli"
21
- require "gemsmith/generators/code_climate"
22
- require "gemsmith/generators/documentation"
23
- require "gemsmith/generators/gem"
24
- require "gemsmith/generators/git"
25
- require "gemsmith/generators/git_hub"
26
- require "gemsmith/generators/guard"
27
- require "gemsmith/generators/pragma"
28
- require "gemsmith/generators/rails"
29
- require "gemsmith/generators/rake"
30
- require "gemsmith/generators/reek"
31
- require "gemsmith/generators/rspec"
32
- require "gemsmith/generators/rubocop"
33
- require "gemsmith/generators/ruby"
34
- require "gemsmith/generators/scss_lint"
35
- require "gemsmith/generators/travis"
36
- require "gemsmith/cli_helpers"
37
- require "gemsmith/template_helper"
38
- require "gemsmith/git"
9
+ require "gemsmith/helpers/cli"
10
+ require "gemsmith/helpers/template"
39
11
 
40
12
  module Gemsmith
41
13
  # The Command Line Interface (CLI) for the gem.
@@ -43,13 +15,13 @@ module Gemsmith
43
15
  class CLI < Thor
44
16
  include Thor::Actions
45
17
  include ThorPlus::Actions
46
- include CLIHelpers
47
- include TemplateHelper
18
+ include Helpers::CLI
19
+ include Helpers::Template
48
20
 
49
21
  using Refinements::Strings
50
22
  using Refinements::Hashes
51
23
 
52
- package_name Gemsmith::Identity.version_label
24
+ package_name Identity.version_label
53
25
 
54
26
  # Overwrites Thor's template source root.
55
27
  def self.source_root
@@ -193,7 +165,7 @@ module Gemsmith
193
165
  say
194
166
  info "Generating gem..."
195
167
 
196
- setup_configuration name: name, options: options
168
+ setup_configuration name: name, options: options.to_h
197
169
  self.class.generators.each { |generator| generator.run self, configuration: configuration }
198
170
 
199
171
  info "Gem generation finished."
@@ -234,7 +206,7 @@ module Gemsmith
234
206
  desc "-v, [--version]", "Show gem version."
235
207
  map %w[-v --version] => :version
236
208
  def version
237
- say Gemsmith::Identity.version_label
209
+ say Identity.version_label
238
210
  end
239
211
 
240
212
  desc "-h, [--help=COMMAND]", "Show this message or get help for a command."
@@ -248,10 +220,6 @@ module Gemsmith
248
220
  attr_reader :configuration
249
221
 
250
222
  def setup_configuration name:, options: {}
251
- symbolized_options = options.reduce({}) do |new_options, (key, value)|
252
- new_options.merge! key.to_sym => value
253
- end
254
-
255
223
  @configuration = self.class.configuration.to_h.merge(
256
224
  gem: {
257
225
  name: name,
@@ -261,7 +229,7 @@ module Gemsmith
261
229
  url: Git.github_url(name),
262
230
  license: "MIT"
263
231
  },
264
- generate: symbolized_options
232
+ generate: options.symbolize_keys
265
233
  )
266
234
  end
267
235
  end
@@ -2,8 +2,6 @@
2
2
 
3
3
  require "yaml"
4
4
  require "fileutils"
5
- require "gemsmith/authenticators/ruby_gems"
6
- require "gemsmith/authenticators/basic"
7
5
 
8
6
  module Gemsmith
9
7
  # Generates gem credentials for RubyGems and/or alternative servers.
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gemsmith
4
+ module Helpers
5
+ # Command Line Interface (CLI) helpers for the CLI class.
6
+ module CLI
7
+ module_function
8
+
9
+ def print_gems gems
10
+ say "Multiple versions found:\n\n"
11
+ gems.each.with_index { |spec, index| say "#{index + 1}. #{spec.name} #{spec.version.version}" }
12
+ say "q. Quit.\n\n"
13
+ end
14
+
15
+ def pick_gem gems, name
16
+ answer = ask "Enter selection:"
17
+ return if answer == "q"
18
+
19
+ answer = answer.to_i
20
+
21
+ if (1..gems.size).cover?(answer)
22
+ Gem::Specification.find name, gems[answer - 1].version.version
23
+ else
24
+ error "Invalid option: #{answer}"
25
+ nil
26
+ end
27
+ end
28
+
29
+ def inspect_gem specification, method
30
+ return unless specification
31
+ Gem::Inspector.new.public_send method, Gem::Specification.new(specification.spec_file)
32
+ rescue Versionaire::Errors::Conversion => exception
33
+ error(exception.message)
34
+ end
35
+
36
+ def process_gem name, method
37
+ specs = Gem::Specification.find_all name
38
+ spec_count = specs.size
39
+
40
+ if spec_count == 1
41
+ inspect_gem specs.first, method
42
+ elsif spec_count > 1
43
+ print_gems specs
44
+ inspect_gem pick_gem(specs, name), method
45
+ else
46
+ error("Unable to find gem: #{name}.") and ""
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gemsmith
4
+ module Helpers
5
+ # Provides helper methods for use by the Thor CLI. These methods are necessary to resolve %% file
6
+ # and folder variables and render dynamic content within the Thor ERB *templates* structure.
7
+ module Template
8
+ def gem_name
9
+ configuration.dig :gem, :name
10
+ end
11
+
12
+ def gem_path
13
+ configuration.dig :gem, :path
14
+ end
15
+
16
+ def gem_class
17
+ configuration.dig :gem, :class
18
+ end
19
+
20
+ def rails_version
21
+ configuration.dig :versions, :rails
22
+ end
23
+
24
+ def render_namespace &block
25
+ body = capture(&block) if block_given?
26
+ concat Gem::ModuleFormatter.new(gem_class).render(body)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -12,7 +12,7 @@ module Gemsmith
12
12
  end
13
13
 
14
14
  def self.version
15
- "8.0.0"
15
+ "8.1.0"
16
16
  end
17
17
 
18
18
  def self.version_label
@@ -1,9 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "milestoner"
4
+ require "gemsmith/identity"
4
5
  require "gemsmith/credentials"
5
6
  require "gemsmith/git"
6
- require "gemsmith/identity"
7
+ require "gemsmith/cli"
7
8
 
8
9
  module Gemsmith
9
10
  module Rake
@@ -15,7 +16,7 @@ module Gemsmith
15
16
 
16
17
  # rubocop:disable Metrics/ParameterLists
17
18
  def initialize gem_spec: Gemsmith::Gem::Specification.new(self.class.gem_spec_path),
18
- gem_config: {},
19
+ gem_config: Gemsmith::CLI.configuration.to_h,
19
20
  credentials: Gemsmith::Credentials,
20
21
  publisher: Milestoner::Publisher.new,
21
22
  shell: Bundler::UI::Shell.new,
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "rake"
3
4
  require "gemsmith/gem/specification"
4
5
  require "gemsmith/errors/base"
5
6
  require "gemsmith/errors/specification"
@@ -20,8 +20,8 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  <%- if config.dig(:generate, :cli) -%>
22
22
  spec.add_dependency "thor", "~> 0.19"
23
- spec.add_dependency "thor_plus", "~> 4.0"
24
- spec.add_dependency "runcom", "~> 0.2"
23
+ spec.add_dependency "thor_plus", "~> 4.1"
24
+ spec.add_dependency "runcom", "~> 0.3"
25
25
  <%- end -%>
26
26
  <%- if config.dig(:generate, :rails) -%>
27
27
  spec.add_dependency "rails", "~> <%= config.dig(:versions, :rails) %>"
@@ -1,4 +1,7 @@
1
1
  require "<%= config.dig(:gem, :path) %>/identity"
2
+ <%- if config.dig(:generate, :cli) -%>
3
+ require "<%= config.dig(:gem, :path) %>/cli"
4
+ <%- end -%>
2
5
  <%- if config.dig(:generate, :rails) -%>
3
6
  require "<%= config.dig(:gem, :path) %>/engine"
4
7
  <%- end -%>
@@ -1,4 +1,3 @@
1
- require "yaml"
2
1
  require "thor"
3
2
  require "thor/actions"
4
3
  require "thor_plus/actions"
@@ -10,7 +9,7 @@ require "runcom"
10
9
  include Thor::Actions
11
10
  include ThorPlus::Actions
12
11
 
13
- package_name <%= config.dig(:gem, :class) %>::Identity.version_label
12
+ package_name Identity.version_label
14
13
 
15
14
  def self.configuration
16
15
  Runcom::Configuration.new file_name: Identity.file_name
@@ -42,7 +41,7 @@ require "runcom"
42
41
  desc "-v, [--version]", "Show gem version."
43
42
  map %w[-v --version] => :version
44
43
  def version
45
- say <%= config.dig(:gem, :class) %>::Identity.version_label
44
+ say Identity.version_label
46
45
  end
47
46
 
48
47
  desc "-h, [--help=COMMAND]", "Show this message or get help for a command."
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "spec_helper"
4
- require "<%= config.dig(:gem, :path) %>/cli"
5
4
 
6
5
  RSpec.describe <%= config.dig(:gem, :class) %>::CLI do
7
6
  let(:options) { [] }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gemsmith
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.0
4
+ version: 8.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -30,7 +30,7 @@ cert_chain:
30
30
  n/LUZ1dKhIHzfKx1B4+TEIefArObGfkLIDM8+Dq1RX7TF1k81Men7iu4MgE9bYBn
31
31
  3dE+xI3FdB5gWcdWxdtgRCmWjtXeYYyb4z6NQQ==
32
32
  -----END CERTIFICATE-----
33
- date: 2016-11-12 00:00:00.000000000 Z
33
+ date: 2016-11-13 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: thor
@@ -52,98 +52,98 @@ dependencies:
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '4.0'
55
+ version: '4.1'
56
56
  type: :runtime
57
57
  prerelease: false
58
58
  version_requirements: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: '4.0'
62
+ version: '4.1'
63
63
  - !ruby/object:Gem::Dependency
64
64
  name: refinements
65
65
  requirement: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '3.0'
69
+ version: '3.1'
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '3.0'
76
+ version: '3.1'
77
77
  - !ruby/object:Gem::Dependency
78
78
  name: versionaire
79
79
  requirement: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '2.0'
83
+ version: '2.1'
84
84
  type: :runtime
85
85
  prerelease: false
86
86
  version_requirements: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: '2.0'
90
+ version: '2.1'
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: runcom
93
93
  requirement: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '0.2'
97
+ version: '0.3'
98
98
  type: :runtime
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: '0.2'
104
+ version: '0.3'
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: milestoner
107
107
  requirement: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: '4.0'
111
+ version: '4.1'
112
112
  type: :runtime
113
113
  prerelease: false
114
114
  version_requirements: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: '4.0'
118
+ version: '4.1'
119
119
  - !ruby/object:Gem::Dependency
120
120
  name: pragmater
121
121
  requirement: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - "~>"
124
124
  - !ruby/object:Gem::Version
125
- version: '2.0'
125
+ version: '2.1'
126
126
  type: :runtime
127
127
  prerelease: false
128
128
  version_requirements: !ruby/object:Gem::Requirement
129
129
  requirements:
130
130
  - - "~>"
131
131
  - !ruby/object:Gem::Version
132
- version: '2.0'
132
+ version: '2.1'
133
133
  - !ruby/object:Gem::Dependency
134
134
  name: tocer
135
135
  requirement: !ruby/object:Gem::Requirement
136
136
  requirements:
137
137
  - - "~>"
138
138
  - !ruby/object:Gem::Version
139
- version: '3.0'
139
+ version: '3.1'
140
140
  type: :runtime
141
141
  prerelease: false
142
142
  version_requirements: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - "~>"
145
145
  - !ruby/object:Gem::Version
146
- version: '3.0'
146
+ version: '3.1'
147
147
  - !ruby/object:Gem::Dependency
148
148
  name: rake
149
149
  requirement: !ruby/object:Gem::Requirement
@@ -357,7 +357,6 @@ files:
357
357
  - lib/gemsmith/authenticators/basic.rb
358
358
  - lib/gemsmith/authenticators/ruby_gems.rb
359
359
  - lib/gemsmith/cli.rb
360
- - lib/gemsmith/cli_helpers.rb
361
360
  - lib/gemsmith/credentials.rb
362
361
  - lib/gemsmith/errors/base.rb
363
362
  - lib/gemsmith/errors/requirement_conversion.rb
@@ -386,12 +385,13 @@ files:
386
385
  - lib/gemsmith/generators/scss_lint.rb
387
386
  - lib/gemsmith/generators/travis.rb
388
387
  - lib/gemsmith/git.rb
388
+ - lib/gemsmith/helpers/cli.rb
389
+ - lib/gemsmith/helpers/template.rb
389
390
  - lib/gemsmith/identity.rb
390
391
  - lib/gemsmith/rake/builder.rb
391
392
  - lib/gemsmith/rake/publisher.rb
392
393
  - lib/gemsmith/rake/setup.rb
393
394
  - lib/gemsmith/rake/tasks.rb
394
- - lib/gemsmith/template_helper.rb
395
395
  - lib/gemsmith/templates/%gem_name%/%gem_name%.gemspec.tt
396
396
  - lib/gemsmith/templates/%gem_name%/.codeclimate.yml.tt
397
397
  - lib/gemsmith/templates/%gem_name%/.github/ISSUE_TEMPLATE.md.tt
metadata.gz.sig CHANGED
Binary file
@@ -1,46 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Gemsmith
4
- # Command Line Interface (CLI) helpers for the CLI class.
5
- module CLIHelpers
6
- module_function
7
-
8
- def print_gems gems
9
- say "Multiple versions found:\n\n"
10
- gems.each.with_index { |spec, index| say "#{index + 1}. #{spec.name} #{spec.version.version}" }
11
- say "q. Quit.\n\n"
12
- end
13
-
14
- def pick_gem gems, name
15
- answer = ask "Enter selection:"
16
- return if answer == "q"
17
-
18
- if (1..gems.size).cover?(answer.to_i)
19
- Gem::Specification.find name, gems[answer.to_i - 1].version.version
20
- else
21
- error "Invalid option: #{answer}"
22
- nil
23
- end
24
- end
25
-
26
- def inspect_gem specification, method
27
- return unless specification
28
- Gem::Inspector.new.public_send method, Gem::Specification.new(specification.spec_file)
29
- rescue Versionaire::Errors::Conversion => exception
30
- error(exception.message)
31
- end
32
-
33
- def process_gem name, method
34
- specs = Gem::Specification.find_all name
35
-
36
- if specs.size == 1
37
- inspect_gem specs.first, method
38
- elsif specs.size > 1
39
- print_gems specs
40
- inspect_gem pick_gem(specs, name), method
41
- else
42
- error("Unable to find gem: #{name}.") and ""
43
- end
44
- end
45
- end
46
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Gemsmith
4
- # Provides helper methods for use by the Thor CLI. These methods are necessary to resolve %% file
5
- # and folder variables and render dynamic content within the Thor ERB *templates* structure.
6
- module TemplateHelper
7
- def gem_name
8
- configuration.dig :gem, :name
9
- end
10
-
11
- def gem_path
12
- configuration.dig :gem, :path
13
- end
14
-
15
- def gem_class
16
- configuration.dig :gem, :class
17
- end
18
-
19
- def rails_version
20
- configuration.dig :versions, :rails
21
- end
22
-
23
- def render_namespace &block
24
- body = capture(&block) if block_given?
25
- concat Gem::ModuleFormatter.new(gem_class).render(body)
26
- end
27
- end
28
- end