singer 2.1.0 → 2.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 61d9abf1b94fa1a0b85d2770ab2f4ec38b81f9a99855054d4eeab41f69ce8e49
4
- data.tar.gz: f4a433fdbfa9bc1b64847936f9033387cdc36d5490a03b497f25b49fa8c5347e
3
+ metadata.gz: 1496a866af8bd84f5f37b7fd231ebca183cb1af9527c80fcf82d7d12e559ae60
4
+ data.tar.gz: d162ae6671bde936f13594d4a9ce989179d207f96a92eb3a24496f5db5116fe6
5
5
  SHA512:
6
- metadata.gz: ce7559042aaa658bfd03921901218444ea33dbf0406b04654f0b79371c8812fd3bcd6b879176b8670cf7f74db17cc9ee2f84316c94bcd1e06ab6a86f390275e9
7
- data.tar.gz: c5d81b77aabe190a6e6d214857c551753270afda439367b0312df7cf9f3ec11f05030edd468b8327100369b517f3e56fb19760dd22460131f3b5f79be7c71adb
6
+ metadata.gz: 475541c7ea0a9c63f64eb9ee72c8267b0e4eb9f3aa9e240587e37010077123a8dc3e7ab2005c0bea4a7bd0849ec088879d4acb6967ebad766ab829e1b093d26c
7
+ data.tar.gz: c2cb1b56b6b65d644a844c7305ebf1fa2158d221bce249d1f9cd8970273709f0578df79c2307d89037fa45a57912ccc0a4b6341395ff6e16c651ede61823c57d
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(...).gsub(/__([[:alpha:]][[:word:]]+)__/) do |match|
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)
@@ -1,3 +1,3 @@
1
1
  module Singer
2
- VERSION = '2.1.0'.freeze
2
+ VERSION = '2.2.0'.freeze
3
3
  end
@@ -1,6 +1,6 @@
1
1
  require 'minitest_helper'
2
2
 
3
- class TestAutoloading < Minitest::Test
3
+ class AutoloadingTest < Minitest::Test
4
4
  def test_zeitwerk_has_one_loader
5
5
  refute_empty Zeitwerk::Registry.loaders
6
6
  assert_equal 1, Zeitwerk::Registry.loaders.size
@@ -1,7 +1,7 @@
1
1
  require 'minitest_helper'
2
2
 
3
3
  # TODO: remove
4
- class TestHello < Minitest::Test
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
@@ -1,6 +1,6 @@
1
1
  require 'minitest_helper'
2
2
 
3
- class TestServerErrorDumping < Minitest::Test
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
6
  assert exc.backtrace.any?{ _1.include?('/vendor/') } # now you see me
@@ -1,6 +1,6 @@
1
1
  require 'minitest_helper'
2
2
 
3
- class TestServer < Minitest::Test
3
+ class ServerTest < Minitest::Test
4
4
  include Rack::Test::Methods
5
5
 
6
6
  def app
@@ -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 Test<%= Singer.configuration.project_name_camelcase %> < Minitest::Test
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
@@ -1,4 +1,4 @@
1
- class Test<%= Singer.configuration.project_name_camelcase %> < Minitest::Test
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.1.0
4
+ version: 2.2.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/test_server.rb
58
- - templates/sinatra_app/test/server/test_server_error_dumping.rb
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/test___PROJECT_NAME_SNAKECASE__.rb
67
- - templates/test/test/test___PROJECT_NAME_SNAKECASE__.rb
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: 3.6.7
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: []