singer 2.1.0 → 2.3.0
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 +4 -4
- data/lib/singer/paths.rb +6 -1
- data/lib/singer/version.rb +1 -1
- data/templates/sinatra_app/Gemfile +2 -2
- data/templates/sinatra_app/exe/server.rb +5 -1
- data/templates/sinatra_app/test/{test_autoloading.rb → autoloading_test.rb} +5 -4
- data/templates/sinatra_app/test/{test_hello.rb → hello_test.rb} +1 -1
- data/templates/sinatra_app/test/server/{test_server_error_dumping.rb → server_error_dumping_test.rb} +3 -3
- data/templates/sinatra_app/test/server/{test_server.rb → server_test.rb} +2 -2
- data/templates/tdd/test/{test___PROJECT_NAME_SNAKECASE__.rb → __PROJECT_NAME_SNAKECASE___test.rb} +1 -1
- data/templates/test/test/{test___PROJECT_NAME_SNAKECASE__.rb → __PROJECT_NAME_SNAKECASE___test.rb} +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7ddb4f2b6355ce6ebce3856cc7030b20f3338a1af33fd2a01b5e94ed491b89e7
|
|
4
|
+
data.tar.gz: 1a6efcb12834b46b2dc1d8f39673a21d349e2f6d807c7d1775e7d6547e5acba3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7b306e89c44c9d4ccecf843301178b2d14de488ba0d5949a2dcfa6436af72b67bb6291a8cc829b9cf331458d4c99f0333c9b9b4c93be0c3d727e73239f0bc519
|
|
7
|
+
data.tar.gz: e2765626a12557c2433e5c5b7e06463036b2500c08fcd9ac327f9c7631dc3316f4e79c5d3eb6f008ee72ebfcc2a15018afa2d934c39360b3ed0bb1a6416c40fb
|
data/lib/singer/paths.rb
CHANGED
|
@@ -18,7 +18,12 @@ module Singer
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def self.output_path(...)
|
|
21
|
-
File.join(...)
|
|
21
|
+
substitute_variables(File.join(...))
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# will substitute non-forbidden variables, 2 characters or more
|
|
25
|
+
def self.substitute_variables(path)
|
|
26
|
+
path.gsub(/__([[:alpha:]][[:word:]]*[[:alpha:]])__/) do |match|
|
|
22
27
|
potential_config = $1.downcase
|
|
23
28
|
|
|
24
29
|
if variable_name_can_be_substituted?(potential_config)
|
data/lib/singer/version.rb
CHANGED
|
@@ -14,7 +14,7 @@ group :test do # for humans
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
group :test, :ci do
|
|
17
|
-
gem 'minitest'
|
|
17
|
+
gem 'minitest'
|
|
18
18
|
gem 'mocha'
|
|
19
19
|
gem 'rack-test'
|
|
20
20
|
gem 'rake'
|
|
@@ -23,6 +23,6 @@ group :test, :ci do
|
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
group :ci do # for CI automation
|
|
26
|
-
gem 'minitest-
|
|
26
|
+
gem 'minitest-reporters'
|
|
27
27
|
gem 'simplecov-cobertura'
|
|
28
28
|
end
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
require 'minitest_helper'
|
|
2
2
|
|
|
3
|
-
class
|
|
3
|
+
class AutoloadingTest < Minitest::Test
|
|
4
4
|
def test_zeitwerk_has_one_loader
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
loaders = Zeitwerk::Registry.loaders.instance_variable_get(:@loaders)
|
|
6
|
+
refute_empty loaders
|
|
7
|
+
assert_equal 1, loaders.size
|
|
7
8
|
end
|
|
8
9
|
|
|
9
10
|
# this test is kinda slow, but not as slow as Rack::Test
|
|
10
11
|
def test_zeitwerk_eager_autoloading_works
|
|
11
|
-
loader = Zeitwerk::Registry.loaders.first
|
|
12
|
+
loader = Zeitwerk::Registry.loaders.instance_variable_get(:@loaders).first
|
|
12
13
|
# loader.log!
|
|
13
14
|
loader.eager_load(force: true)
|
|
14
15
|
rescue Zeitwerk::NameError => exc
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require 'minitest_helper'
|
|
2
2
|
|
|
3
3
|
# TODO: remove
|
|
4
|
-
class
|
|
4
|
+
class HelloTest < Minitest::Test
|
|
5
5
|
def test_greet_with_a_param_generates_a_greeting_string
|
|
6
6
|
assert_equal 'Hello, stranger.', <%= Singer.configuration.project_name_camelcase %>::Hello.greet(:stranger)
|
|
7
7
|
end
|
data/templates/sinatra_app/test/server/{test_server_error_dumping.rb → server_error_dumping_test.rb}
RENAMED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
require 'minitest_helper'
|
|
2
2
|
|
|
3
|
-
class
|
|
3
|
+
class ServerErrorDumpingTest < Minitest::Test
|
|
4
4
|
def test_dump_errors_backtrace_is_filtered_against_vendor
|
|
5
5
|
exc = generate_exception_with_realistic_backtrace
|
|
6
|
-
assert
|
|
6
|
+
assert(exc.backtrace.any?{ _1.include?('/vendor/') }) # now you see me
|
|
7
7
|
|
|
8
8
|
log = mock()
|
|
9
9
|
log.expects(:puts).with do |message|
|
|
10
|
-
refute
|
|
10
|
+
refute(message.lines.any?{ _1.include?('/vendor/') }) # now you don't
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
app = <%= Singer.configuration.project_name_camelcase %>::Server.new! # .new! returns real instance without Sinatra::Wrapper
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require 'minitest_helper'
|
|
2
2
|
|
|
3
|
-
class
|
|
3
|
+
class ServerTest < Minitest::Test
|
|
4
4
|
include Rack::Test::Methods
|
|
5
5
|
|
|
6
6
|
def app
|
|
@@ -10,7 +10,7 @@ class TestServer < Minitest::Test
|
|
|
10
10
|
def test_top_level_redirects
|
|
11
11
|
get '/'
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
assert_predicate last_response, :redirect?
|
|
14
14
|
assert_match %r{/hello/world$}, last_response.headers['location']
|
|
15
15
|
end
|
|
16
16
|
|
data/templates/tdd/test/{test___PROJECT_NAME_SNAKECASE__.rb → __PROJECT_NAME_SNAKECASE___test.rb}
RENAMED
|
@@ -3,7 +3,7 @@ require 'minitest/autorun' if File.expand_path($PROGRAM_NAME) == File.expand_pat
|
|
|
3
3
|
|
|
4
4
|
require_relative '../lib/<%= Singer.configuration.project_name_snakecase %>'
|
|
5
5
|
|
|
6
|
-
class
|
|
6
|
+
class <%= Singer.configuration.project_name_camelcase %>Test < Minitest::Test
|
|
7
7
|
# TEST_INPUT = File.read('input_mini.txt').lines(chomp: true)
|
|
8
8
|
|
|
9
9
|
def setup
|
data/templates/test/test/{test___PROJECT_NAME_SNAKECASE__.rb → __PROJECT_NAME_SNAKECASE___test.rb}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class
|
|
1
|
+
class <%= Singer.configuration.project_name_camelcase %>Test < Minitest::Test
|
|
2
2
|
def setup
|
|
3
3
|
@<%= Singer.configuration.project_name_snakecase %> = <%= Singer.configuration.project_name_camelcase %>.new
|
|
4
4
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: singer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Emil Chludziński
|
|
@@ -53,18 +53,18 @@ files:
|
|
|
53
53
|
- templates/sinatra_app/lib/__PROJECT_NAME_SNAKECASE__/hello.rb
|
|
54
54
|
- templates/sinatra_app/lib/__PROJECT_NAME_SNAKECASE__/server.rb
|
|
55
55
|
- templates/sinatra_app/lib/zeitwerk_setup.rb
|
|
56
|
+
- templates/sinatra_app/test/autoloading_test.rb
|
|
57
|
+
- templates/sinatra_app/test/hello_test.rb
|
|
56
58
|
- templates/sinatra_app/test/minitest_helper.rb
|
|
57
|
-
- templates/sinatra_app/test/server/
|
|
58
|
-
- templates/sinatra_app/test/server/
|
|
59
|
-
- templates/sinatra_app/test/test_autoloading.rb
|
|
60
|
-
- templates/sinatra_app/test/test_hello.rb
|
|
59
|
+
- templates/sinatra_app/test/server/server_error_dumping_test.rb
|
|
60
|
+
- templates/sinatra_app/test/server/server_test.rb
|
|
61
61
|
- templates/sinatra_app/views/index.haml
|
|
62
62
|
- templates/sinatra_app/views/layout.haml
|
|
63
63
|
- templates/sinatra_app/views/style.sass
|
|
64
64
|
- templates/tdd/Gemfile
|
|
65
65
|
- templates/tdd/lib/__PROJECT_NAME_SNAKECASE__.rb
|
|
66
|
-
- templates/tdd/test/
|
|
67
|
-
- templates/test/test/
|
|
66
|
+
- templates/tdd/test/__PROJECT_NAME_SNAKECASE___test.rb
|
|
67
|
+
- templates/test/test/__PROJECT_NAME_SNAKECASE___test.rb
|
|
68
68
|
homepage: https://gitlab.com/tanstaafl/singer/
|
|
69
69
|
licenses:
|
|
70
70
|
- MIT
|
|
@@ -86,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
86
86
|
- !ruby/object:Gem::Version
|
|
87
87
|
version: '0'
|
|
88
88
|
requirements: []
|
|
89
|
-
rubygems_version:
|
|
89
|
+
rubygems_version: 4.0.6
|
|
90
90
|
specification_version: 4
|
|
91
91
|
summary: Singer generates code (such as Sinatra apps) from templates.
|
|
92
92
|
test_files: []
|