rivulet-rb 0.3.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 622289122f59a270997655c87af3287273f2f16f820f7713dd95092a32cb102b
4
- data.tar.gz: 99896962459012b47744e0e8466a1b691bf5bc04f5337ef44ab3039b12938296
3
+ metadata.gz: 002b318ec0a9c3870c5a4bc079af55e5465aa220e48c7f45f8550a8329d940f3
4
+ data.tar.gz: 12a8390d911990d023b8544c19792e5b04197ac9a8dcc202a752ac6e5c429b55
5
5
  SHA512:
6
- metadata.gz: '081156052069871b24b394ef91db773c57a9c3c1225fb52b76499f944e7d834edb0319f87211e0c53bc5d57d24e43c6d744df0455f3206a850c427c72ef0db87'
7
- data.tar.gz: 25b0d8cdb73570dd48c16d5e15d8bfb371f2721e47ffff66b12d9f87c9057957629c4fc2b005c85295fd7e1c4fa2d460b0522aea2b80da67aef5ddb8c6253038
6
+ metadata.gz: fa32444e438ebba963ff30844d294591fbfdfd57fa887d336bc637203f939aa20accf5d8dcf5967513c5d16db7c2ea617c4eec2303e6478941cfad038c1a46cd
7
+ data.tar.gz: 13643f0d76a49ad2df6d68b1168d54282005eddc5a3f4b8c8081677912b816c28361132b6bf774b56b741a4b80cb7609dff8a171f910e1ff4435027370ed6c99
@@ -24,6 +24,8 @@ module Rivulet
24
24
  ].freeze
25
25
 
26
26
  def call(name:, with_db: nil, **)
27
+ name = normalize_name(name)
28
+
27
29
  DIRS.each { |d| create_dir "#{name}/#{d}" }
28
30
 
29
31
  write name, 'Gemfile', gemfile(with_db)
@@ -43,10 +45,30 @@ module Rivulet
43
45
  copy name, 'AGENTS.md', File.expand_path('../../../docs/AGENTS.md', __dir__)
44
46
 
45
47
  puts "\nDone! Next steps:\n cd #{name}\n docker compose up"
48
+ rescue ArgumentError => e
49
+ puts "ERROR: #{e.message}"
50
+ exit false
46
51
  end
47
52
 
48
53
  private
49
54
 
55
+ def normalize_name(name)
56
+ normalized = name.to_s
57
+ # "HTTPServer" -> "HTTP_Server": split an acronym from the word that follows
58
+ .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
59
+ # "myApp" -> "my_App": split a camelCase boundary
60
+ .gsub(/([a-z\d])([A-Z])/, '\1_\2')
61
+ # "my app 2" -> "my_app_2": collapse spaces, dashes, dots, etc. into "_"
62
+ .gsub(/[^0-9a-zA-Z]+/, '_')
63
+ .downcase
64
+ # " My App " -> "my_app": drop leading/trailing "_"
65
+ .gsub(/\A_+|_+\z/, '')
66
+
67
+ raise ArgumentError, "invalid application name #{name}" if normalized.empty?
68
+
69
+ normalized
70
+ end
71
+
50
72
  def create_dir(path)
51
73
  FileUtils.mkdir_p(path)
52
74
  puts " create #{path}/"
@@ -101,7 +123,7 @@ module Rivulet
101
123
 
102
124
  <<~RUBY
103
125
  Rivulet.configure do |config|
104
- config.app.name = name
126
+ config.app.name = :#{name}
105
127
 
106
128
  #{dsn_line}
107
129
 
@@ -1,3 +1,3 @@
1
1
  module Rivulet
2
- VERSION = '0.3.0'
2
+ VERSION = '0.3.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rivulet-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vladimir Dombrovskiy <vold@fastmail.com>
@@ -350,7 +350,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
350
350
  - !ruby/object:Gem::Version
351
351
  version: '0'
352
352
  requirements: []
353
- rubygems_version: 4.0.19
353
+ rubygems_version: 4.0.20
354
354
  specification_version: 4
355
355
  summary: A small Rack web framework built on dry-rb, falcon and forced layering architecture
356
356
  test_files: []