camping 3.0.1 → 3.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 69707262bf525f5cb135dbfeaa2a409bc6a3a49898cb40822028b4b5adac0a09
4
- data.tar.gz: b94ce5a9963004b6df3a5b3908bbc9fb2b447f7538d53ae6ec22f31e7ba7f7bc
3
+ metadata.gz: 6aa52530d539466610a0ae7b505a72176f38b2ba12975f776447dcfb4e6d6934
4
+ data.tar.gz: 31c521e39db07c10472bff1d6e56bec41b55052bf0e40b3a8165e1266873815b
5
5
  SHA512:
6
- metadata.gz: 8c49b9463466def77e63a75ec463e8bc037f05594045a14373746cbcb728dedf30fc2905748c22da83c2158fda14548546edbc8f47436aaafd41e9791b801031
7
- data.tar.gz: 3ccb7f67bba7eedc533a91d8cde7b3381cb5b66b44e83dd57fce50051d03ada4fc8d30ea491e655b8e50cd86c4766d61d210195c605f2b4b2766f3213cdfd1e4
6
+ metadata.gz: 200a6af8d4e245e7bf1fac8bb5965ec9ec2a049fc2b3965b9129e5fcc296f251de7ec5fd83656bde13dac6e2869692f52dd5d707e5718e84a498da1f742f7d07
7
+ data.tar.gz: b80af113694c5303ab1c955876dd6e6e0eb78d0324fa2b4d16f9361b8c8114e0af1cfdffd6761d452a22a3ee5c8febc679078ed50978a2d8a1385806d6da208b
@@ -11,6 +11,25 @@ module Camping
11
11
  downcase
12
12
  end
13
13
 
14
+ # transform app_name to camel Case
15
+ def self.to_camel_case(string)
16
+ cammelled = ""
17
+ to_snake_case(string).split("_").each do |seq|
18
+ cammelled << seq.capitalize
19
+ end
20
+ cammelled
21
+ end
22
+
23
+ # Helper method that generates an app name from command line input.
24
+ def self.app_name_from_input(app_name)
25
+ app_name = :Camp if app_name == nil
26
+ app_name = app_name.to_sym if app_name.class == String
27
+ snake_app_name = to_snake_case(app_name)
28
+ camel_app_name = to_camel_case(snake_app_name)
29
+
30
+ {app_name: camel_app_name.to_sym, snake_name: snake_app_name, camel_name: camel_app_name}
31
+ end
32
+
14
33
  RouteCollection = Struct.new(:routes)
15
34
  class RouteCollection
16
35
  # Displays formatted routes from a route collection
@@ -350,18 +369,17 @@ RUBY
350
369
  end
351
370
 
352
371
  def self.new_cmd(app_name=:Camp)
353
- app_name = :Camp if app_name == nil
354
- app_name = app_name.to_sym if app_name.class == String
355
372
 
356
- snake_app_name = Camping::CommandsHelpers.to_snake_case(app_name).capitalize
373
+ # Normalize the app_name
374
+ Camping::CommandsHelpers.app_name_from_input(app_name) => {app_name:, snake_name:, camel_name:}
357
375
 
358
376
  # make a directory then move there.
359
377
  # _original_dir = Dir.pwd
360
- Dir.mkdir("#{snake_app_name}") unless Dir.exist?("#{snake_app_name}")
361
- Dir.chdir("#{snake_app_name}")
378
+ Dir.mkdir("#{snake_name}") unless Dir.exist?("#{snake_name}")
379
+ Dir.chdir("#{snake_name}")
362
380
 
363
381
  # generate a new camping app in a directory named after it:
364
- Generators::make_camp_file(app_name)
382
+ Generators::make_camp_file(camel_name)
365
383
  Generators::make_gitignore()
366
384
  Generators::make_rakefile()
367
385
  Generators::make_ruby_version()
@@ -15,7 +15,6 @@ module Gear
15
15
 
16
16
  class << self
17
17
 
18
-
19
18
  # normalizes the routes provided to the controller, then returns some variables
20
19
  # used in make_camping_route
21
20
  def normalize_routes(routes)
@@ -1,5 +1,5 @@
1
1
  module Camping
2
- VERSION = "3.0.1"
2
+ VERSION = "3.0.2"
3
3
  def self.version
4
4
  VERSION
5
5
  end
@@ -0,0 +1,43 @@
1
+ require 'test_helper'
2
+ require 'camping'
3
+ require 'camping/commands'
4
+
5
+ Camping.goes :Generator
6
+
7
+ class Generator::Test < TestCase
8
+
9
+ def app_name(string)
10
+ Camping::CommandsHelpers.app_name_from_input string
11
+ end
12
+
13
+ # the app_name_from_input method normalizes the input for the camping new command.
14
+ # making sure it works right is kinda important.
15
+ def test_app_name_from_input_method
16
+
17
+ # input is expected, a symbol camel cased
18
+ app_name(:AppApp) => {app_name:, snake_name:, camel_name:}
19
+ assert_equal :AppApp, app_name, "app_name was unexpected: #{app_name}"
20
+ assert_equal "app_app", snake_name, "snake_name was unexpected: #{snake_name}"
21
+ assert_equal "AppApp", camel_name, "camel_name was unexpected: #{camel_name}"
22
+
23
+ # input is un expected, a camel cased string
24
+ app_name("AppApp") => {app_name:, snake_name:, camel_name:}
25
+ assert_equal :AppApp, app_name, "app_name was unexpected: #{app_name}"
26
+ assert_equal "app_app", snake_name, "snake_name was unexpected: #{snake_name}"
27
+ assert_equal "AppApp", camel_name, "camel_name was unexpected: #{camel_name}"
28
+
29
+ # input is un unexpected snake cased string
30
+ app_name("app_app") => {app_name:, snake_name:, camel_name:}
31
+ assert_equal :AppApp, app_name, "app_name was unexpected: #{app_name}"
32
+ assert_equal "app_app", snake_name, "snake_name was unexpected: #{snake_name}"
33
+ assert_equal "AppApp", camel_name, "camel_name was unexpected: #{camel_name}"
34
+
35
+ # input is un unexpected snake cased symbol
36
+ app_name(:app_app) => {app_name:, snake_name:, camel_name:}
37
+ assert_equal :AppApp, app_name, "app_name was unexpected: #{app_name}"
38
+ assert_equal "app_app", snake_name, "snake_name was unexpected: #{snake_name}"
39
+ assert_equal "AppApp", camel_name, "camel_name was unexpected: #{camel_name}"
40
+
41
+ end
42
+
43
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: camping
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - why the lucky stiff
@@ -172,6 +172,7 @@ files:
172
172
  - test/app_config.rb
173
173
  - test/app_cookies.rb
174
174
  - test/app_file.rb
175
+ - test/app_generator.rb
175
176
  - test/app_goes_meta.rb
176
177
  - test/app_helpers.rb
177
178
  - test/app_inception.rb
@@ -222,7 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
222
223
  - !ruby/object:Gem::Version
223
224
  version: '0'
224
225
  requirements: []
225
- rubygems_version: 3.4.10
226
+ rubygems_version: 3.4.12
226
227
  signing_key:
227
228
  specification_version: 4
228
229
  summary: micro mighty websites for anyone