gem_bootstrap 0.2.7 → 0.2.8
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.
- data/CHANGELOG.md +5 -0
- data/lib/gem_bootstrap.rb +3 -0
- data/lib/gem_bootstrap/errors.rb +5 -0
- data/lib/gem_bootstrap/git_utils.rb +2 -2
- data/lib/gem_bootstrap/misc_utils.rb +5 -6
- data/lib/gem_bootstrap/version.rb +1 -1
- data/templates/Guardfile-minitest +0 -1
- data/templates/Guardfile-rspec +0 -1
- data/templates/Rakefile-minitest +0 -2
- data/templates/Rakefile-rspec +0 -3
- data/templates/bin/newgem +0 -1
- data/templates/lib/newgem.rb +3 -3
- data/templates/lib/newgem/newgem.rb +0 -1
- data/templates/newgem-minitest.gemspec.tt +1 -1
- data/test/fixtures/file0 +0 -0
- data/test/fixtures/file1.txt +0 -0
- data/test/fixtures/file2.txt +0 -0
- data/test/fixtures/sub_dir/file3.txt +0 -0
- data/test/fixtures/sub_dir/file4.txt +0 -0
- data/test/lib/gem_bootstrap/test_misc_utils.rb +62 -0
- metadata +15 -2
data/CHANGELOG.md
CHANGED
data/lib/gem_bootstrap.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# external libraries
|
1
2
|
require 'grit'
|
2
3
|
require 'open3'
|
3
4
|
require 'thor'
|
@@ -5,7 +6,9 @@ require 'active_support'
|
|
5
6
|
require 'active_support/core_ext/object/blank'
|
6
7
|
require 'active_support/core_ext/hash/keys'
|
7
8
|
require 'active_support/core_ext/hash/indifferent_access'
|
9
|
+
# internal files
|
8
10
|
require 'gem_bootstrap/version'
|
11
|
+
require 'gem_bootstrap/errors'
|
9
12
|
require 'gem_bootstrap/cli'
|
10
13
|
require 'gem_bootstrap/git_utils'
|
11
14
|
require 'gem_bootstrap/misc_utils'
|
@@ -21,6 +21,8 @@ module GemBootstrap
|
|
21
21
|
git_add(base_dir, files)
|
22
22
|
end
|
23
23
|
|
24
|
+
private
|
25
|
+
|
24
26
|
# Run the `git init` on a given directory
|
25
27
|
#
|
26
28
|
# @param [String] base_dir the starting directory
|
@@ -46,8 +48,6 @@ module GemBootstrap
|
|
46
48
|
end
|
47
49
|
end
|
48
50
|
|
49
|
-
private
|
50
|
-
|
51
51
|
def expand_path(base_dir)
|
52
52
|
raise "Invalid directory name `{base_dir}`" if base_dir.nil? || !File.directory?(File.new(base_dir))
|
53
53
|
File.expand_path(base_dir)
|
@@ -1,13 +1,12 @@
|
|
1
1
|
module GemBootstrap
|
2
2
|
class MiscUtils
|
3
|
-
CustomError = Class.new(StandardError)
|
4
|
-
|
5
3
|
class << self
|
6
4
|
# Receives a string and convert it to snake case.
|
7
5
|
# SnakeCase returns snake_case.
|
8
6
|
#
|
9
7
|
# @param [String] str the input string
|
10
8
|
def snake_case(str)
|
9
|
+
# for testing only
|
11
10
|
return str.downcase if str =~ /^[A-Z_]+$/
|
12
11
|
str.gsub(/\B[A-Z]/, '_\&').squeeze('_') =~ /_*(.*)/
|
13
12
|
$+.downcase
|
@@ -27,14 +26,14 @@ module GemBootstrap
|
|
27
26
|
# @param [Hash<Symbol, Object>] args keys and values of argument
|
28
27
|
def files(args = {})
|
29
28
|
opts = {
|
30
|
-
base_dir:
|
29
|
+
base_dir: Dir.pwd,
|
31
30
|
recursive: false,
|
32
|
-
exts:
|
33
|
-
non_exts:
|
31
|
+
exts: [],
|
32
|
+
non_exts: []
|
34
33
|
}.merge(args)
|
35
34
|
|
36
35
|
base_dir = opts[:base_dir]
|
37
|
-
fail CustomError, "The directory #{base_dir} is not valid or or not readable!" unless File.exist?(base_dir)
|
36
|
+
fail Errors::CustomError, "The directory #{base_dir} is not valid or or not readable!" unless File.exist?(base_dir)
|
38
37
|
|
39
38
|
wildcard = opts[:recursive] ? '**' : ''
|
40
39
|
exts = opts[:exts]
|
data/templates/Guardfile-rspec
CHANGED
data/templates/Rakefile-minitest
CHANGED
@@ -6,7 +6,6 @@ Rake::TestTask.new do |t|
|
|
6
6
|
t.test_files = FileList["test/lib/#{project_name}/test_*.rb"]
|
7
7
|
t.verbose = true
|
8
8
|
end
|
9
|
-
|
10
9
|
task default: [:test, :rubocop]
|
11
10
|
task :pry do
|
12
11
|
require 'pry'
|
@@ -16,7 +15,6 @@ task :pry do
|
|
16
15
|
ARGV.clear
|
17
16
|
Pry.start
|
18
17
|
end
|
19
|
-
|
20
18
|
require 'rubocop/rake_task'
|
21
19
|
desc 'Run RuboCop on the lib directory'
|
22
20
|
RuboCop::RakeTask.new(:rubocop) do |task|
|
data/templates/Rakefile-rspec
CHANGED
@@ -2,7 +2,6 @@ require "bundler/gem_tasks"
|
|
2
2
|
Bundler::GemHelper.install_tasks
|
3
3
|
require "rspec/core/rake_task"
|
4
4
|
RSpec::Core::RakeTask.new
|
5
|
-
|
6
5
|
task :pry do
|
7
6
|
require "pry"
|
8
7
|
require "awesome_print"
|
@@ -11,7 +10,6 @@ task :pry do
|
|
11
10
|
ARGV.clear
|
12
11
|
Pry.start
|
13
12
|
end
|
14
|
-
|
15
13
|
require "rubocop/rake_task"
|
16
14
|
desc "Run RuboCop on the lib directory"
|
17
15
|
RuboCop::RakeTask.new(:rubocop) do |task|
|
@@ -19,5 +17,4 @@ RuboCop::RakeTask.new(:rubocop) do |task|
|
|
19
17
|
task.formatters = ["files"]
|
20
18
|
task.fail_on_error = false
|
21
19
|
end
|
22
|
-
|
23
20
|
task default: [:spec, :rubocop]
|
data/templates/bin/newgem
CHANGED
data/templates/lib/newgem.rb
CHANGED
@@ -4,7 +4,7 @@ require 'active_support/core_ext/hash/keys'
|
|
4
4
|
require 'active_support/core_ext/hash/indifferent_access'
|
5
5
|
require 'active_support/core_ext/kernel/reporting'
|
6
6
|
require 'thor'
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
require '<%= name %>/version'
|
8
|
+
require '<%= name %>/<%= name %>'
|
9
|
+
require '<%= name %>/cli'
|
10
10
|
include <%= MiscUtils.camel_case(name) %>
|
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.add_development_dependency 'guard-minitest', '~> 2.3.2'
|
33
33
|
spec.add_development_dependency 'minitest', '~> 5.4.2'
|
34
34
|
spec.add_development_dependency 'minitest-spec-context', '~> 0.0.3'
|
35
|
-
spec.add_development_dependency 'pry', '~> 0.10.
|
35
|
+
spec.add_development_dependency 'pry', '~> 0.10.1'
|
36
36
|
spec.add_development_dependency 'pry-byebug', '~> 2.0.0' if RUBY_VERSION >= '2.0.0'
|
37
37
|
spec.add_development_dependency 'rake', '~> 10.3.2'
|
38
38
|
spec.add_development_dependency 'rubocop', '~> 0.26.1'
|
data/test/fixtures/file0
ADDED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require_relative '../../test_helper'
|
2
|
+
describe GemBootstrap do
|
3
|
+
describe '#snake_case' do
|
4
|
+
it 'handles camel case text properly' do
|
5
|
+
MiscUtils.snake_case("someText").must_equal("some_text")
|
6
|
+
MiscUtils.snake_case("SomeText").must_equal("some_text")
|
7
|
+
end
|
8
|
+
it 'handles string that does not start with lowercase' do
|
9
|
+
MiscUtils.snake_case("Sometext").must_equal("sometext")
|
10
|
+
end
|
11
|
+
end
|
12
|
+
describe '#camel_case' do
|
13
|
+
it 'handles string with underscore' do
|
14
|
+
MiscUtils.camel_case("some_text").must_equal("SomeText")
|
15
|
+
MiscUtils.camel_case("_some_text").must_equal("SomeText")
|
16
|
+
end
|
17
|
+
it 'handles string without underscore' do
|
18
|
+
MiscUtils.camel_case("html2pdf").must_equal("Html2pdf")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
describe '#files' do
|
22
|
+
let :fixtures_dir do
|
23
|
+
File.expand_path("../../../fixtures", __FILE__)
|
24
|
+
end
|
25
|
+
context 'non matching file' do
|
26
|
+
it 'returns empty list by default' do
|
27
|
+
MiscUtils.files.must_equal []
|
28
|
+
end
|
29
|
+
it 'returns empty list for non-matching files' do
|
30
|
+
result = MiscUtils.files(base_dir: fixtures_dir,
|
31
|
+
exts: %w(invalid_extension),
|
32
|
+
recursive: true)
|
33
|
+
result.must_be_empty
|
34
|
+
end
|
35
|
+
end
|
36
|
+
context 'recursive' do
|
37
|
+
it 'returns proper list of files' do
|
38
|
+
result = MiscUtils.files(base_dir: fixtures_dir,
|
39
|
+
exts: %w(txt),
|
40
|
+
recursive: true)
|
41
|
+
result.map! { |file| file.gsub(fixtures_dir, '') }
|
42
|
+
result.must_equal ['/file1.txt', '/file2.txt', '/sub_dir/file3.txt', '/sub_dir/file4.txt']
|
43
|
+
end
|
44
|
+
it 'returns all files including one with no extension' do
|
45
|
+
result = MiscUtils.files(base_dir: fixtures_dir,
|
46
|
+
exts: %w(txt),
|
47
|
+
non_exts: %w(file0),
|
48
|
+
recursive: true)
|
49
|
+
result.map! { |file| file.gsub(fixtures_dir, '') }
|
50
|
+
result.must_equal ['/file0', '/file1.txt', '/file2.txt', '/sub_dir/file3.txt', '/sub_dir/file4.txt']
|
51
|
+
end
|
52
|
+
end
|
53
|
+
context 'non-recursive' do
|
54
|
+
it 'returns proper list of files' do
|
55
|
+
result = MiscUtils.files(base_dir: fixtures_dir,
|
56
|
+
exts: %w(txt))
|
57
|
+
result.map! { |file| file.gsub(fixtures_dir, '') }
|
58
|
+
result.must_equal ['/file1.txt', '/file2.txt' ]
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gem_bootstrap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-10-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport-core-ext
|
@@ -248,6 +248,7 @@ extra_rdoc_files: []
|
|
248
248
|
files:
|
249
249
|
- bin/gem_bootstrap
|
250
250
|
- lib/gem_bootstrap/cli.rb
|
251
|
+
- lib/gem_bootstrap/errors.rb
|
251
252
|
- lib/gem_bootstrap/gem_bootstrap.rb
|
252
253
|
- lib/gem_bootstrap/git_utils.rb
|
253
254
|
- lib/gem_bootstrap/misc_utils.rb
|
@@ -284,7 +285,13 @@ files:
|
|
284
285
|
- LICENSE
|
285
286
|
- .rubocop.yml
|
286
287
|
- .gitignore
|
288
|
+
- test/fixtures/file0
|
289
|
+
- test/fixtures/file1.txt
|
290
|
+
- test/fixtures/file2.txt
|
291
|
+
- test/fixtures/sub_dir/file3.txt
|
292
|
+
- test/fixtures/sub_dir/file4.txt
|
287
293
|
- test/lib/gem_bootstrap/test_gem_bootstrap.rb
|
294
|
+
- test/lib/gem_bootstrap/test_misc_utils.rb
|
288
295
|
- test/test_helper.rb
|
289
296
|
homepage: https://github.com/agilecreativity/gem_bootstrap
|
290
297
|
licenses:
|
@@ -312,6 +319,12 @@ signing_key:
|
|
312
319
|
specification_version: 3
|
313
320
|
summary: Bootstrap the creation of ruby gem so that you don't have to start from scratch
|
314
321
|
test_files:
|
322
|
+
- test/fixtures/file0
|
323
|
+
- test/fixtures/file1.txt
|
324
|
+
- test/fixtures/file2.txt
|
325
|
+
- test/fixtures/sub_dir/file3.txt
|
326
|
+
- test/fixtures/sub_dir/file4.txt
|
315
327
|
- test/lib/gem_bootstrap/test_gem_bootstrap.rb
|
328
|
+
- test/lib/gem_bootstrap/test_misc_utils.rb
|
316
329
|
- test/test_helper.rb
|
317
330
|
has_rdoc:
|