rocket_api 0.0.1.1 → 0.0.1.4

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: 546ea307031df1d56b8a5c8d64e3e118cc96c7f5bc211973d3411ef535a90870
4
- data.tar.gz: 28781e6b14d6d40f7c76082b707b517ddc1958cd8b606bc01a6b7313b165d501
3
+ metadata.gz: ff7716e1a326f80a7ead99f9657a61af886a75c676327361da954c93833da468
4
+ data.tar.gz: c5ae8eb50c61ce8ef6641291b236b29c11e6c75159e5ee00639eb14eb519efd0
5
5
  SHA512:
6
- metadata.gz: 8584d5cbbd3e0a56b3c8c1ed587ad4ee29a47f21f3b8bde1ceca031192edf2682cee519844d1ffa234fe8437af2d4cca354cb19582dd0f5e4fa92746fd695401
7
- data.tar.gz: f9deffa396fe77975ff02e314a033348019cdd8a973a2e72d9a76fc78ab2494238825a97d89fd108b9a1b28f45964baf0288ad0efc10c9e07658dac2fa4f3b6a
6
+ metadata.gz: 67f9b747d2eb2f99076521faafb458d5a80e2abbe1050021c7e3f995002ede86c7cf60cfb5cc0fe1a781cec2419626d790308a1b163a31d2e2ea74204bc1ae0a
7
+ data.tar.gz: e761c7019125540070b2953c545132d89d53e8e391c4a4212aca53b2f307c67dbedd0668abe7419191be6cdd74fa2b27bf8464188dfa96e339f8c0be5072ae23
data/.rubocop.yml CHANGED
@@ -70,4 +70,7 @@ Style/RedundantInterpolation:
70
70
  Enabled: false
71
71
 
72
72
  Style/NumericLiteralPrefix:
73
+ Enabled: false
74
+
75
+ Layout/EmptyLineBetweenDefs:
73
76
  Enabled: false
data/bin/rocket_api CHANGED
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require './rocket_api/rocket_commands'
4
- require './rocket_api/constants'
3
+ require "rocket_api"
5
4
 
6
5
  base_command = ARGV[0]
7
6
  sub_command = ARGV[1]
@@ -13,8 +12,12 @@ when RocketApi::INIT
13
12
  when RocketApi::BASE
14
13
  # TODO: implement me
15
14
  when RocketApi::GEM
16
- RocketApi::RocketCommands.init_gem_dir
17
- RocketApi::RocketCommands.init_gem_files project_name&.downcase
15
+ begin
16
+ RocketApi::RocketCommands.init_gem_dir
17
+ RocketApi::RocketCommands.init_gem_files project_name&.downcase
18
+ rescue RocketApi::Error => e
19
+ puts "Init directory error: #{e.message}"
20
+ end
18
21
  else
19
22
  puts RocketApi::WRONG_ANSWER
20
23
  end
@@ -1,17 +1,25 @@
1
1
  module RocketApi
2
2
  module Commands
3
3
  module Dirs
4
+ # @param [Array] dirs
4
5
  def create_repo(dirs)
5
- dirs.each { |dir| create_dir(dir) }
6
+ dirs.each do |dir|
7
+ create_dir(dir)
8
+ rescue StandardError => e
9
+ puts "#{CREATE_FAILED} #{e.message}"
10
+ end
6
11
  end
7
12
 
13
+ # @param [String] dir_name
14
+ # ...
15
+ # @raise [StandardError]
8
16
  def create_dir(dir_name)
9
17
  raise "#{RocketApi::FOLDER_EXIST} #{dir_name}" if is_exist?(dir_name)
10
18
 
11
19
  system 'mkdir', '-p', "#{dir_name}"
12
20
  puts "#{RocketApi::CREATE_SUCCESS} #{dir_name}"
13
21
  rescue StandardError => e
14
- puts "#{RocketApi::CREATE_FAILED} #{dir_name} err: #{e.message}"
22
+ raise e, "#{dir_name} err: #{e.message}"
15
23
  end
16
24
  end
17
25
  end
@@ -1,14 +1,21 @@
1
1
  module RocketApi
2
2
  module Commands
3
3
  module Files
4
+ # @param [String] dir_name
4
5
  def is_exist?(dir_name)
5
6
  File.exist?(dir_name)
6
7
  end
7
8
 
9
+ # @param [String] name
8
10
  def class_name_camel(name)
9
11
  name.split('_').map(&:capitalize).join
10
12
  end
11
13
 
14
+ # @param [String] name
15
+ # @param [String] text
16
+ # @param [Hash] options
17
+ # ...
18
+ # @raise [StandardError] error
12
19
  def create_single_file(name, text, **options)
13
20
  raise "#{RocketApi::FILE_EXIST} #{name}" if is_exist?(name)
14
21
 
@@ -19,7 +26,7 @@ module RocketApi
19
26
 
20
27
  puts "#{RocketApi::CREATE_SUCCESS} #{name}"
21
28
  rescue StandardError => e
22
- puts "#{RocketApi::CREATE_FAILED} #{name} err: #{e.message}"
29
+ raise e, "#{name} err: #{e.message}"
23
30
  end
24
31
  end
25
32
  end
@@ -0,0 +1,32 @@
1
+ module RocketApi
2
+ module Commands
3
+ module GemsDir
4
+ # @param [String] name
5
+ def init_gems_version!(name)
6
+ dir_name = "lib/#{name}"
7
+ create_dir(dir_name)
8
+ file_name = "#{dir_name}/version.rb"
9
+ create_single_file(
10
+ file_name,
11
+ plain_version_text(class_name_camel(name))
12
+ )
13
+ end
14
+
15
+ # @param [String] name
16
+ def init_gems_main_file!(name)
17
+ file_name = "lib/#{name}.rb"
18
+ text = "class #{class_name_camel(name)}; end"
19
+ create_single_file(file_name, text)
20
+ end
21
+
22
+ # @param [String] name
23
+ def init_gemspec!(name)
24
+ file_name = "#{name}.gemspec"
25
+ create_single_file(
26
+ file_name,
27
+ plain_gemspec_text(name, class_name_camel(name))
28
+ )
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,15 +1,15 @@
1
1
  module RocketApi
2
+ # Dirs map
2
3
  GEM_PROJECTS_DIR = %w[bin lib test].freeze
3
4
 
4
- # ...
5
5
  # Ping
6
6
  PONG = "PONG".freeze
7
- # ...
7
+
8
8
  # Commands
9
9
  INIT = "init".freeze
10
10
  BASE = "base".freeze
11
11
  GEM = "gem".freeze
12
- # ...
12
+
13
13
  # Answers
14
14
  FOLDER_EXIST = "folder exist:".freeze
15
15
  FILE_EXIST = "file already exist:".freeze
@@ -0,0 +1,11 @@
1
+ module RocketApi
2
+ # ...
3
+ # Base error
4
+ class Error < StandardError; end
5
+ # ...
6
+ # Raise in case of dir creation error
7
+ class CreateDirError < Error; end
8
+ # ...
9
+ # Raise in case of file creation error
10
+ class InitFilesError < Error; end
11
+ end
@@ -1,6 +1,10 @@
1
1
  module RocketApi
2
2
  module Library
3
3
  module GemRepoPlainText
4
+ def gitignore_text
5
+ ".idea/\nGemfile.lock\n*.gem".freeze
6
+ end
7
+
4
8
  def plain_version_text(module_name)
5
9
  "module #{module_name}\n\tVERSION = \"0.0.1\".freeze\nend"
6
10
  end
@@ -1,28 +1,34 @@
1
- require './rocket_api/constants'
2
- require './rocket_api/commands/files'
3
- require './rocket_api/commands/dirs'
4
- require './rocket_api/library/gem_repo_plain_text'
1
+ require "rocket_api/rocket_commands"
5
2
 
6
3
  module RocketApi
7
4
  class RocketCommands
8
5
  extend RocketApi::Commands::Files
9
6
  extend RocketApi::Commands::Dirs
7
+ extend RocketApi::Commands::GemsDir
10
8
  extend RocketApi::Library::GemRepoPlainText
11
9
 
10
+ # @raise [RocketApi::CreateDirError]
12
11
  def self.init_gem_dir
13
12
  create_repo(RocketApi::GEM_PROJECTS_DIR)
13
+ rescue StandardError => e
14
+ raise RocketApi::CreateDirError,
15
+ "#{RocketApi::CREATE_FAILED} #{e.message}"
14
16
  end
15
17
 
18
+ # @param [String] project_name
19
+ # ...
20
+ # @raise [RocketApi::InitFilesError] error
16
21
  def self.init_gem_files(project_name)
17
22
  raise RocketApi::EMPTY_NAME if project_name.nil?
18
23
 
19
24
  init_bin!(project_name)
20
25
  init_gemspec!(project_name)
21
- init_main_file!(project_name)
22
- init_version!(project_name)
26
+ init_gems_main_file!(project_name)
27
+ init_gems_version!(project_name)
23
28
  init_gitignore!
24
29
  rescue StandardError => e
25
- puts "#{RocketApi::INIT_FAIL} #{e.message}"
30
+ raise RocketApi::InitFilesError,
31
+ "#{RocketApi::INIT_FAIL} #{e.message}"
26
32
  end
27
33
 
28
34
  def self.init_bin!(name)
@@ -34,34 +40,11 @@ module RocketApi
34
40
  )
35
41
  end
36
42
 
37
- def self.init_version!(name)
38
- dir_name = "lib/#{name}"
39
- create_dir(dir_name)
40
-
41
- file_name = "#{dir_name}/version.rb"
42
- create_single_file(
43
- file_name,
44
- plain_version_text(class_name_camel(name))
45
- )
46
- end
47
-
48
- def self.init_main_file!(name)
49
- file_name = "lib/#{name}.rb"
50
- text = "class #{class_name_camel(name)}; end"
51
- create_single_file(file_name, text)
52
- end
53
-
54
43
  def self.init_gitignore!
55
44
  file_name = ".gitignore"
56
- text = ".idea/\nGemfile.lock\n*.gem"
57
- create_single_file(file_name, text)
58
- end
59
-
60
- def self.init_gemspec!(name)
61
- file_name = "#{name}.gemspec"
62
45
  create_single_file(
63
46
  file_name,
64
- plain_gemspec_text(name, class_name_camel(name))
47
+ gitignore_text
65
48
  )
66
49
  end
67
50
  end
@@ -1,3 +1,3 @@
1
1
  module RocketApi
2
- VERSION = "0.0.1.1".freeze
2
+ VERSION = "0.0.1.4".freeze
3
3
  end
data/lib/rocket_api.rb CHANGED
@@ -1,7 +1,7 @@
1
- require './rocket_api/constants'
2
-
3
- module RocketApi
4
- def ping
5
- RocketApi::PONG
6
- end
7
- end
1
+ require "rocket_api/rocket_commands"
2
+ require "rocket_api/constants"
3
+ require "rocket_api/errors"
4
+ require "rocket_api/commands/files"
5
+ require "rocket_api/commands/dirs"
6
+ require "rocket_api/commands/gems_dir"
7
+ require "rocket_api/library/gem_repo_plain_text"
@@ -0,0 +1,9 @@
1
+ require 'minitest/autorun'
2
+ require 'rocket_api/version'
3
+
4
+ class TestVersion < Minitest::Test
5
+ include RocketApi
6
+ def test_ping
7
+ assert_equal("0.0.1.4", RocketApi::VERSION)
8
+ end
9
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rocket_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.1
4
+ version: 0.0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ilya Kondratev
@@ -56,12 +56,14 @@ files:
56
56
  - lib/rocket_api.rb
57
57
  - lib/rocket_api/commands/dirs.rb
58
58
  - lib/rocket_api/commands/files.rb
59
+ - lib/rocket_api/commands/gems_dir.rb
59
60
  - lib/rocket_api/constants.rb
61
+ - lib/rocket_api/errors.rb
60
62
  - lib/rocket_api/library/gem_repo_plain_text.rb
61
63
  - lib/rocket_api/rocket_commands.rb
62
64
  - lib/rocket_api/version.rb
63
65
  - rocket_api.gemspec
64
- - test/test_ping.rb
66
+ - test/test_version.rb
65
67
  homepage: https://github.com/ikondratev/rocket_api
66
68
  licenses:
67
69
  - MIT
data/test/test_ping.rb DELETED
@@ -1,9 +0,0 @@
1
- require 'minitest/autorun'
2
- require 'rocket_api'
3
-
4
- class TestPing < Minitest::Test
5
- include RocketApi
6
- def test_ping
7
- assert_equal("PONG", ping)
8
- end
9
- end