arsenic 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gem_release.yml +3 -0
- data/.github/CODEOWNERS +1 -0
- data/.github/FUNDING.yml +12 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +40 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +19 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +23 -0
- data/.github/workflows/linters.yml +34 -0
- data/.github/workflows/tests.yml +34 -0
- data/.gitignore +11 -0
- data/.rspec +3 -0
- data/.standard.yml +9 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +10 -0
- data/Gemfile.lock +72 -0
- data/LICENSE.txt +21 -0
- data/README.md +42 -0
- data/Rakefile +6 -0
- data/arsenic.gemspec +32 -0
- data/bin/console +14 -0
- data/bin/format +3 -0
- data/bin/rspec +29 -0
- data/bin/setup +8 -0
- data/bin/standardrb +29 -0
- data/exe/arsenic +13 -0
- data/lib/arsenic.rb +100 -0
- data/lib/arsenic/templates/newgem/.gem_release.yml.tt +3 -0
- data/lib/arsenic/templates/newgem/.github/ISSUE_TEMPLATE/bug_report.md.tt +24 -0
- data/lib/arsenic/templates/newgem/.github/ISSUE_TEMPLATE/feature_request.md +23 -0
- data/lib/arsenic/templates/newgem/.github/PULL_REQUEST_TEMPLATE.md +23 -0
- data/lib/arsenic/templates/newgem/.github/workflows/docs-lint.yml.tt +72 -0
- data/lib/arsenic/templates/newgem/.github/workflows/rspec-jruby.yml.tt +35 -0
- data/lib/arsenic/templates/newgem/.github/workflows/rspec.yml.tt +61 -0
- data/lib/arsenic/templates/newgem/.github/workflows/rubocop.yml.tt +21 -0
- data/lib/arsenic/templates/newgem/.gitignore +43 -0
- data/lib/arsenic/templates/newgem/.mdlrc +1 -0
- data/lib/arsenic/templates/newgem/.rubocop-md.yml +16 -0
- data/lib/arsenic/templates/newgem/.rubocop.yml +29 -0
- data/lib/arsenic/templates/newgem/Gemfile.tt +19 -0
- data/lib/arsenic/templates/newgem/LICENSE.txt +22 -0
- data/lib/arsenic/templates/newgem/README.md +43 -0
- data/lib/arsenic/templates/newgem/RELEASING.md.tt +43 -0
- data/lib/arsenic/templates/newgem/Rakefile +20 -0
- data/lib/arsenic/templates/newgem/gemfiles/jruby.gemfile +5 -0
- data/lib/arsenic/templates/newgem/gemfiles/rails5.gemfile +5 -0
- data/lib/arsenic/templates/newgem/gemfiles/rails6.gemfile +5 -0
- data/lib/arsenic/templates/newgem/gemfiles/railsmaster.gemfile +6 -0
- data/lib/arsenic/templates/newgem/gemfiles/rubocop.gemfile +4 -0
- data/lib/arsenic/templates/newgem/lefthook.yml +18 -0
- data/lib/arsenic/templates/newgem/lib/dir/railtie.rb.tt +6 -0
- data/lib/arsenic/templates/newgem/lib/dir/version.rb.tt +5 -0
- data/lib/arsenic/templates/newgem/lib/name.rb.tt +6 -0
- data/lib/arsenic/templates/newgem/newgem.gemspec.tt +34 -0
- data/lib/arsenic/templates/newgem/spec/spec_helper.rb.tt +30 -0
- data/lib/arsenic/version.rb +3 -0
- metadata +103 -0
data/arsenic.gemspec
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative "lib/arsenic/version"
|
2
|
+
|
3
|
+
Gem::Specification.new do |spec|
|
4
|
+
spec.name = "arsenic"
|
5
|
+
spec.license = "MIT"
|
6
|
+
spec.version = Arsenic::VERSION
|
7
|
+
spec.authors = ["Andrew Mason"]
|
8
|
+
spec.email = %w[andrewmcodes@protonmail.com]
|
9
|
+
|
10
|
+
spec.summary = "andrewmcodes gem generator"
|
11
|
+
spec.description = "originally forked from Palkan. https://github.com/palkan/new-gem-generator"
|
12
|
+
spec.homepage = "https://github.com/andrewmcodes/arsenic"
|
13
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
14
|
+
|
15
|
+
spec.metadata = {
|
16
|
+
# "allowed_push_host" => "TODO: Set to 'http://mygemserver.com'"
|
17
|
+
"bug_tracker_uri" => "#{spec.homepage}/issues",
|
18
|
+
"changelog_uri" => "#{spec.homepage}/blob/main/CHANGELOG.md",
|
19
|
+
"documentation_uri" => spec.homepage,
|
20
|
+
"homepage_uri" => spec.homepage,
|
21
|
+
"source_code_uri" => spec.homepage
|
22
|
+
}
|
23
|
+
|
24
|
+
spec.files =
|
25
|
+
Dir.chdir(File.expand_path("..", __FILE__)) do
|
26
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
27
|
+
end
|
28
|
+
|
29
|
+
spec.bindir = "exe"
|
30
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
31
|
+
spec.require_paths = %w[lib]
|
32
|
+
end
|
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "arsenic"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start(__FILE__)
|
data/bin/format
ADDED
data/bin/rspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'rspec' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
require "pathname"
|
12
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
13
|
+
Pathname.new(__FILE__).realpath)
|
14
|
+
|
15
|
+
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
16
|
+
|
17
|
+
if File.file?(bundle_binstub)
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
+
load(bundle_binstub)
|
20
|
+
else
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require "rubygems"
|
27
|
+
require "bundler/setup"
|
28
|
+
|
29
|
+
load Gem.bin_path("rspec-core", "rspec")
|
data/bin/setup
ADDED
data/bin/standardrb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'standardrb' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
require "pathname"
|
12
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
13
|
+
Pathname.new(__FILE__).realpath)
|
14
|
+
|
15
|
+
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
16
|
+
|
17
|
+
if File.file?(bundle_binstub)
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
+
load(bundle_binstub)
|
20
|
+
else
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require "rubygems"
|
27
|
+
require "bundler/setup"
|
28
|
+
|
29
|
+
load Gem.bin_path("standard", "standardrb")
|
data/exe/arsenic
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
lib_path = File.expand_path("../lib", __dir__)
|
5
|
+
$:.unshift(lib_path) unless $:.include?(lib_path)
|
6
|
+
require "arsenic"
|
7
|
+
|
8
|
+
Signal.trap("INT") do
|
9
|
+
warn("\n#{caller.join("\n")}: interrupted")
|
10
|
+
exit(1)
|
11
|
+
end
|
12
|
+
|
13
|
+
Arsenic.start
|
data/lib/arsenic.rb
ADDED
@@ -0,0 +1,100 @@
|
|
1
|
+
begin
|
2
|
+
require "thor"
|
3
|
+
require "bundler"
|
4
|
+
require "pry-byebug"
|
5
|
+
rescue LoadError
|
6
|
+
require "bundler/inline"
|
7
|
+
require "thor"
|
8
|
+
end
|
9
|
+
|
10
|
+
require "arsenic/version"
|
11
|
+
|
12
|
+
module Arsenic
|
13
|
+
class Newgem < Thor::Group
|
14
|
+
include Thor::Actions
|
15
|
+
|
16
|
+
COPY_FILES = %w[
|
17
|
+
.gem_release.yml
|
18
|
+
.gitignore
|
19
|
+
.mdlrc
|
20
|
+
.rspec
|
21
|
+
.rubocop-md.yml
|
22
|
+
.rubocop.yml
|
23
|
+
lefthook.yml
|
24
|
+
Gemfile
|
25
|
+
LICENSE.txt
|
26
|
+
Rakefile
|
27
|
+
README.md
|
28
|
+
RELEASING.md
|
29
|
+
].freeze
|
30
|
+
|
31
|
+
COPY_DIRS = %w[
|
32
|
+
.github
|
33
|
+
spec
|
34
|
+
].freeze
|
35
|
+
|
36
|
+
argument :name
|
37
|
+
|
38
|
+
def self.source_root
|
39
|
+
ENV.fetch("TEMPLATE", File.join(__dir__, "arsenic", "templates", "newgem"))
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.exit_on_failure?
|
43
|
+
true
|
44
|
+
end
|
45
|
+
|
46
|
+
def copy_files
|
47
|
+
COPY_FILES.each { |file| template file }
|
48
|
+
end
|
49
|
+
|
50
|
+
def copy_dirs
|
51
|
+
COPY_DIRS.each { |dir| directory(dir) }
|
52
|
+
end
|
53
|
+
|
54
|
+
def copy_gemfiles
|
55
|
+
template "gemfiles/rubocop.gemfile"
|
56
|
+
return unless rails?
|
57
|
+
|
58
|
+
template "gemfiles/jruby.gemfile"
|
59
|
+
template "gemfiles/rails5.gemfile"
|
60
|
+
template "gemfiles/rails6.gemfile"
|
61
|
+
template "gemfiles/railsmaster.gemfile"
|
62
|
+
end
|
63
|
+
|
64
|
+
def copy_lib
|
65
|
+
template "lib/name.rb", "lib/#{name}.rb"
|
66
|
+
directory "lib/dir", "lib/#{name_path}"
|
67
|
+
remove_file "lib/#{name_path}/railtie.rb" unless rails?
|
68
|
+
end
|
69
|
+
|
70
|
+
def copy_gemspec
|
71
|
+
template "newgem.gemspec", "#{name}.gemspec"
|
72
|
+
end
|
73
|
+
|
74
|
+
private
|
75
|
+
|
76
|
+
def rails?
|
77
|
+
@rails ||= yes?("Need Rails stuff?")
|
78
|
+
end
|
79
|
+
|
80
|
+
def module_name
|
81
|
+
@module_name ||= name.split("-").map { |mod|
|
82
|
+
mod.split("_").map(&:capitalize).join
|
83
|
+
}.join("::")
|
84
|
+
end
|
85
|
+
|
86
|
+
def human_name
|
87
|
+
@human_name ||= name.split(/[-_]/).map(&:capitalize).join(" ")
|
88
|
+
end
|
89
|
+
|
90
|
+
def name_path
|
91
|
+
@name_path ||= name.tr("-", "/")
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def self.start
|
96
|
+
generator = Newgem.new ARGV
|
97
|
+
generator.destination_root = ARGV[0]
|
98
|
+
generator.invoke_all
|
99
|
+
end
|
100
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
---
|
2
|
+
name: Bug report
|
3
|
+
about: Create a report to help us improve
|
4
|
+
title: ''
|
5
|
+
labels: ''
|
6
|
+
assignees: andrewmcodes
|
7
|
+
|
8
|
+
---
|
9
|
+
|
10
|
+
## What did you do?
|
11
|
+
|
12
|
+
## What did you expect to happen?
|
13
|
+
|
14
|
+
## What actually happened?
|
15
|
+
|
16
|
+
## Additional context
|
17
|
+
|
18
|
+
## Environment
|
19
|
+
|
20
|
+
**Ruby Version:**
|
21
|
+
|
22
|
+
**Framework Version (Rails, whatever):**
|
23
|
+
|
24
|
+
**<%= human_name %> Version:**
|
@@ -0,0 +1,23 @@
|
|
1
|
+
---
|
2
|
+
name: Feature request
|
3
|
+
about: Suggest an idea for this project
|
4
|
+
title: ""
|
5
|
+
labels: enhancement
|
6
|
+
assignees: andrewmcodes
|
7
|
+
---
|
8
|
+
|
9
|
+
## Is your feature request related to a problem? Please describe.
|
10
|
+
|
11
|
+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
12
|
+
|
13
|
+
## Describe the solution you'd like
|
14
|
+
|
15
|
+
A clear and concise description of what you want to happen.
|
16
|
+
|
17
|
+
## Describe alternatives you've considered
|
18
|
+
|
19
|
+
A clear and concise description of any alternative solutions or features you've considered.
|
20
|
+
|
21
|
+
## Additional context
|
22
|
+
|
23
|
+
Add any other context or screenshots about the feature request here.
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<!--
|
2
|
+
First of all, thanks for contributing!
|
3
|
+
|
4
|
+
If it's a typo fix or minor documentation update feel free to skip the rest of this template!
|
5
|
+
-->
|
6
|
+
|
7
|
+
## What is the purpose of this pull request?
|
8
|
+
|
9
|
+
<!--
|
10
|
+
If it's a bug fix, then link it to the issue, for example:
|
11
|
+
|
12
|
+
Fixes #xxx
|
13
|
+
-->
|
14
|
+
|
15
|
+
## What changes did you make? (overview)
|
16
|
+
|
17
|
+
## Is there anything you'd like reviewers to focus on?
|
18
|
+
|
19
|
+
## Checklist
|
20
|
+
|
21
|
+
- [ ] I've added tests for this change
|
22
|
+
- [ ] I've added a Changelog entry
|
23
|
+
- [ ] I've updated a documentation
|
@@ -0,0 +1,72 @@
|
|
1
|
+
name: Lint Docs
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- master
|
7
|
+
paths:
|
8
|
+
- "*.md"
|
9
|
+
- "**/*.md"
|
10
|
+
pull_request:
|
11
|
+
paths:
|
12
|
+
- "*.md"
|
13
|
+
- "**/*.md"
|
14
|
+
|
15
|
+
jobs:
|
16
|
+
markdownlint:
|
17
|
+
runs-on: ubuntu-latest
|
18
|
+
steps:
|
19
|
+
- uses: actions/checkout@v2
|
20
|
+
- uses: ruby/setup-ruby@v1
|
21
|
+
with:
|
22
|
+
ruby-version: 2.7
|
23
|
+
- name: Run Markdown linter
|
24
|
+
run: |
|
25
|
+
gem install mdl
|
26
|
+
mdl **/*.md
|
27
|
+
rubocop:
|
28
|
+
runs-on: ubuntu-latest
|
29
|
+
steps:
|
30
|
+
- uses: actions/checkout@v2
|
31
|
+
- uses: ruby/setup-ruby@v1
|
32
|
+
with:
|
33
|
+
ruby-version: 2.7
|
34
|
+
- name: Lint Markdown files with RuboCop
|
35
|
+
run: |
|
36
|
+
gem install bundler
|
37
|
+
bundle install --gemfile gemfiles/rubocop.gemfile --jobs 4 --retry 3
|
38
|
+
bundle exec --gemfile gemfiles/rubocop.gemfile rubocop -c .rubocop-md.yml
|
39
|
+
forspell:
|
40
|
+
runs-on: ubuntu-latest
|
41
|
+
steps:
|
42
|
+
- uses: actions/checkout@v2
|
43
|
+
- name: Install Hunspell
|
44
|
+
run: |
|
45
|
+
sudo apt-get install hunspell
|
46
|
+
- uses: ruby/setup-ruby@v1
|
47
|
+
with:
|
48
|
+
ruby-version: 2.7
|
49
|
+
- name: Cache installed gems
|
50
|
+
uses: actions/cache@v1
|
51
|
+
with:
|
52
|
+
path: /home/runner/.rubies/ruby-2.7.0/lib/ruby/gems/2.7.0
|
53
|
+
key: gems-cache-${{ runner.os }}
|
54
|
+
- name: Install Forspell
|
55
|
+
run: gem install forspell
|
56
|
+
- name: Run Forspell
|
57
|
+
run: forspell **/*.md .github/**/*.md
|
58
|
+
liche:
|
59
|
+
runs-on: ubuntu-latest
|
60
|
+
env:
|
61
|
+
GO111MODULE: on
|
62
|
+
steps:
|
63
|
+
- uses: actions/checkout@v2
|
64
|
+
- name: Set up Go
|
65
|
+
uses: actions/setup-go@v1
|
66
|
+
with:
|
67
|
+
go-version: 1.13.x
|
68
|
+
- name: Run liche
|
69
|
+
run: |
|
70
|
+
export PATH=$PATH:$(go env GOPATH)/bin
|
71
|
+
go get -u github.com/raviqqe/liche
|
72
|
+
liche README.md CHANGELOG.md
|
@@ -0,0 +1,35 @@
|
|
1
|
+
name: JRuby Build
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- master
|
7
|
+
pull_request:
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
rspec:
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
env:
|
13
|
+
BUNDLE_JOBS: 4
|
14
|
+
BUNDLE_RETRY: 3
|
15
|
+
CI: true
|
16
|
+
steps:
|
17
|
+
- uses: actions/checkout@v2
|
18
|
+
- uses: actions/cache@v1
|
19
|
+
with:
|
20
|
+
path: /home/runner/bundle
|
21
|
+
key: bundle-${{ hashFiles('**/gemfiles/jruby.gemfile') }}-${{ hashFiles('**/*.gemspec') }}
|
22
|
+
restore-keys: |
|
23
|
+
bundle-
|
24
|
+
- uses: ruby/setup-ruby@v1
|
25
|
+
with:
|
26
|
+
ruby-version: jruby
|
27
|
+
- name: Bundle install
|
28
|
+
run: |
|
29
|
+
bundle config --global gemfile gemfiles/jruby.gemfile
|
30
|
+
bundle config path /home/runner/bundle
|
31
|
+
bundle install
|
32
|
+
bundle update
|
33
|
+
- name: Run RSpec
|
34
|
+
run: |
|
35
|
+
bundle exec rspec
|
@@ -0,0 +1,61 @@
|
|
1
|
+
name: Build
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- master
|
7
|
+
pull_request:
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
rspec:
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
env:
|
13
|
+
BUNDLE_JOBS: 4
|
14
|
+
BUNDLE_RETRY: 3
|
15
|
+
CI: true
|
16
|
+
strategy:
|
17
|
+
fail-fast: false
|
18
|
+
matrix:
|
19
|
+
<%- if rails? -%>
|
20
|
+
ruby: ["2.7"]
|
21
|
+
gemfile: ["gemfiles/rails6.gemfile"]
|
22
|
+
include:
|
23
|
+
- ruby: "2.5"
|
24
|
+
gemfile: "gemfiles/rails5.gemfile"
|
25
|
+
- ruby: "2.6"
|
26
|
+
gemfile: "gemfiles/rails5.gemfile"
|
27
|
+
- ruby: "2.7"
|
28
|
+
gemfile: "gemfiles/railsmaster.gemfile"
|
29
|
+
<%- else %>
|
30
|
+
ruby: ["2.5", "2.6", "2.7"]
|
31
|
+
<%- end -%>
|
32
|
+
steps:
|
33
|
+
- uses: actions/checkout@v2
|
34
|
+
- uses: actions/cache@v1
|
35
|
+
with:
|
36
|
+
path: /home/runner/bundle
|
37
|
+
<%- if rails? -%>
|
38
|
+
key: bundle-${{ matrix.ruby }}-${{ matrix.gemfile }}-${{ hashFiles(matrix.gemfile) }}-${{ hashFiles('**/*.gemspec') }}
|
39
|
+
<%- else -%>
|
40
|
+
key: bundle-${{ matrix.ruby }}-${{ hashFiles('../Gemfile') }}-${{ hashFiles('**/*.gemspec') }}
|
41
|
+
<%- end -%>
|
42
|
+
restore-keys: |
|
43
|
+
<%- if rails? -%>
|
44
|
+
bundle-${{ matrix.ruby }}-${{ matrix.gemfile }}-
|
45
|
+
<%- else -%>
|
46
|
+
bundle-${{ matrix.ruby }}-
|
47
|
+
<%- end -%>
|
48
|
+
- uses: ruby/setup-ruby@v1
|
49
|
+
with:
|
50
|
+
ruby-version: ${{ matrix.ruby }}
|
51
|
+
- name: Bundle install
|
52
|
+
run: |
|
53
|
+
bundle config path /home/runner/bundle
|
54
|
+
<%- if rails? -%>
|
55
|
+
bundle config --global gemfile ${{ matrix.gemfile }}
|
56
|
+
<%- end -%>
|
57
|
+
bundle install
|
58
|
+
bundle update
|
59
|
+
- name: Run RSpec
|
60
|
+
run: |
|
61
|
+
bundle exec rspec
|