rocket_api 0.0.1.6 → 0.0.1.7

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: a1022fcc23b0400dc2dd32da344613ddbf781a28943eeed0f4fb7a017ef713a1
4
- data.tar.gz: c6d6eb54cdc3c48b5aaf1ca64844d79767ddd05c182a2275196ee5e61b41785b
3
+ metadata.gz: 37afe5384de38860240c2f361e0754b0f4c8a734be348f22979bab0d203ebf4a
4
+ data.tar.gz: 721db37f2bcc3a254def12a42938127da04d490dc5ac933198dbb23e37d14ea9
5
5
  SHA512:
6
- metadata.gz: 65310b3e37e9d32996b8f307d9eb879fb712b24880522e6eb65330ac9063d1029bd5f7eda3b8c3d4421c858f8d4065e962d75647196347ae18acb2110776733f
7
- data.tar.gz: 57a82a3489ffe10a8d32a4831bc803ec45e0bc1271dcca93695af43ac497cc1b51969e105f4a42cd36cbb2e2eb5a1090627469914ba599cf246397de645aafb7
6
+ metadata.gz: 3aa07c310add8201f2016a2b10cd3ed5c41c95a402e86337446065d6f0a8cce5426ed88a92165a9814061dc3dab5b07bce9dd0f98c5efc926b7f702ac4bcaead
7
+ data.tar.gz: a65a88c575bb6def0000fe27764ac5ecfe415c1d1f9d1d3313fb2a461d910888c9cdbc09a6c82479bf98e656ab064dec1ec1e95947080309eb72983916182b5c
data/README.md CHANGED
@@ -14,7 +14,10 @@ gem install rocket_api
14
14
  ```
15
15
  ## How it works:
16
16
  ```sh
17
+ Availble commands:
18
+ - init
19
+ - gem [ project_name ]
17
20
  In working directory:
18
21
 
19
- user@bulkas ~/gem/new_dir rocket_api init gem name_gem
22
+ user@bulkas ~/gem/new_dir rocket_api [ init ] [ gem ] [ project_name ]
20
23
  ```
@@ -2,33 +2,30 @@ module RocketApi
2
2
  module Commands
3
3
  module GemsDir
4
4
  # @param [String] name
5
- def init_gems_version!(name)
5
+ def gems_version!(name)
6
6
  dir_name = "lib/#{name}"
7
7
  create_dir(dir_name)
8
8
  file_name = "#{dir_name}/version.rb"
9
- create_single_file(
10
- file_name,
11
- plain_version_text(class_name_camel(name))
12
- )
9
+ create_single_file(file_name, plain_version_text(class_name_camel(name)))
13
10
  end
14
11
 
15
12
  # @param [String] name
16
- def init_gems_main_file!(name)
13
+ def gems_main_file!(name)
17
14
  file_name = "lib/#{name}.rb"
18
15
  text = "class #{class_name_camel(name)}; end"
19
- create_single_file(
20
- file_name,
21
- text
22
- )
16
+ create_single_file(file_name, text)
23
17
  end
24
18
 
25
19
  # @param [String] name
26
- def init_gemspec!(name)
20
+ def gemspec!(name)
27
21
  file_name = "#{name}.gemspec"
28
- create_single_file(
29
- file_name,
30
- plain_gemspec_text(name, class_name_camel(name))
31
- )
22
+ create_single_file(file_name, plain_gemspec_text(name, class_name_camel(name)))
23
+ end
24
+
25
+ # @param [String] name
26
+ def gem_test!(name)
27
+ file_name = "test/test_version.rb"
28
+ create_single_file(file_name, plain_gem_test_version_text(name, class_name_camel(name)))
32
29
  end
33
30
  end
34
31
  end
@@ -1,21 +1,24 @@
1
1
  module RocketApi
2
2
  module Commands
3
3
  module Helper
4
- def init_bin!(name)
5
- dir_name = "bin/#{name}"
6
- create_single_file(
7
- dir_name,
8
- "",
9
- exe: true
10
- )
4
+ # @param [String] name
5
+ def bin!(name)
6
+ create_single_file("bin/#{name}", "", exe: true)
11
7
  end
12
8
 
13
- def init_gitignore!
14
- file_name = ".gitignore"
15
- create_single_file(
16
- file_name,
17
- gitignore_text
18
- )
9
+ # @param [String] _name
10
+ def gitignore!(_name)
11
+ create_single_file(".gitignore", gitignore_text)
12
+ end
13
+
14
+ # @param [String] _name
15
+ def rake_file!(_name)
16
+ create_single_file("Rakefile", rake_text)
17
+ end
18
+
19
+ # @param [String] _name
20
+ def gem_file!(_name)
21
+ create_single_file("Gemfile", gemfile_text)
19
22
  end
20
23
  end
21
24
  end
@@ -4,6 +4,7 @@ module RocketApi
4
4
 
5
5
  # Dirs map
6
6
  GEM_PROJECTS_DIR = %w[bin lib test].freeze
7
+ GEM_COMMANDS = %w[bin! gemspec! gems_main_file! gems_version! gem_test! rake_file! gitignore! gem_file!].freeze
7
8
  AVAILABLE_COMMANDS = {
8
9
  init: {
9
10
  gem: %w[init_gem_dir init_gem_files]
@@ -13,10 +14,6 @@ module RocketApi
13
14
  # Ping
14
15
  PONG = "PONG".freeze
15
16
 
16
- # Commands
17
- BASE = "base".freeze
18
- GEM = "gem".freeze
19
-
20
17
  # Answers
21
18
  INIT_DIR_ERROR = "Init directory error".freeze
22
19
  GEM_DETECTED = "another one gem exist".freeze
@@ -30,8 +30,27 @@ module RocketApi
30
30
  "\ts.email = 'AUTHOR_MAIL'",
31
31
  "\ts.homepage = 'https://github.com/...'",
32
32
  "\ts.files = `git ls-files`.split($RS)",
33
+ "\ts.add_dependency \"rubocop\"",
34
+ "\ts.add_dependency \"rubocop-rake\"",
33
35
  "end"].join("\n")
34
36
  end
37
+
38
+ def plain_gem_test_version_text(name, module_name)
39
+ ["require 'minitest/autorun'",
40
+ "require '#{name}/version'\n",
41
+ "class TestVersion < Minitest::Test",
42
+ "\tinclude #{module_name}\n",
43
+ "\tdef test_ping",
44
+ "\t\tassert_equal(\"0.0.1\", #{module_name}::VERSION)",
45
+ "\tend",
46
+ "end"].join("\n")
47
+ end
48
+
49
+ def gemfile_text
50
+ ["source 'https://rubygems.org/'",
51
+ "ruby 'RUBY_VERSION'",
52
+ "gemspec"].join("\n")
53
+ end
35
54
  end
36
55
  end
37
56
  end
@@ -0,0 +1,21 @@
1
+ module RocketApi
2
+ module Library
3
+ module HelperPlainText
4
+ def rake_text
5
+ ["require 'rubygems'",
6
+ "require 'rake'\n",
7
+ "desc \"Run spec\"",
8
+ "task default: %i[test rubocop]\n",
9
+ "require 'rake/testtask'",
10
+ "Rake::TestTask.new do |test|",
11
+ "\ttest.libs << 'test'",
12
+ "end\n",
13
+ "require 'rubocop/rake_task'",
14
+ "RuboCop::RakeTask.new do |task|",
15
+ "\ttask.fail_on_error = true",
16
+ "\ttask.requires << 'rubocop-rake'",
17
+ "end"].join("\n")
18
+ end
19
+ end
20
+ end
21
+ end
@@ -3,6 +3,7 @@ require "rocket_api/commands/dirs"
3
3
  require "rocket_api/commands/gems_dir"
4
4
  require "rocket_api/commands/helper"
5
5
  require "rocket_api/library/gem_repo_plain_text"
6
+ require "rocket_api/library/helper_plain_text"
6
7
 
7
8
  module RocketApi
8
9
  class RocketCommands
@@ -11,7 +12,10 @@ module RocketApi
11
12
  extend RocketApi::Commands::GemsDir
12
13
  extend RocketApi::Commands::Helper
13
14
  extend RocketApi::Library::GemRepoPlainText
15
+ extend RocketApi::Library::HelperPlainText
14
16
 
17
+ # @param [Hah] options
18
+ # ...
15
19
  # @raise [RocketApi::CreateDirError]
16
20
  def self.init_gem_dir(**_options)
17
21
  raise GEM_DETECTED unless Dir.glob("*.gemspec").empty?
@@ -22,18 +26,14 @@ module RocketApi
22
26
  "#{RocketApi::CREATE_FAILED} #{e.message}"
23
27
  end
24
28
 
25
- # @param [String] project_name
29
+ # @param [Hash] options
26
30
  # ...
27
31
  # @raise [RocketApi::InitFilesError] error
28
32
  def self.init_gem_files(**options)
29
33
  raise RocketApi::EMPTY_NAME if options[:project_name].nil?
30
34
 
31
35
  project_name = options[:project_name]
32
- init_bin!(project_name)
33
- init_gemspec!(project_name)
34
- init_gems_main_file!(project_name)
35
- init_gems_version!(project_name)
36
- init_gitignore!
36
+ RocketApi::GEM_COMMANDS.each { |command| send(command, project_name) }
37
37
  rescue StandardError => e
38
38
  raise RocketApi::InitFilesError,
39
39
  "#{RocketApi::INIT_FAIL} #{e.message}"
@@ -1,3 +1,3 @@
1
1
  module RocketApi
2
- VERSION = "0.0.1.6".freeze
2
+ VERSION = "0.0.1.7".freeze
3
3
  end
data/test/test_version.rb CHANGED
@@ -4,6 +4,6 @@ require 'rocket_api/version'
4
4
  class TestVersion < Minitest::Test
5
5
  include RocketApi
6
6
  def test_ping
7
- assert_equal("0.0.1.6", RocketApi::VERSION)
7
+ assert_equal("0.0.1.7", RocketApi::VERSION)
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rocket_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.6
4
+ version: 0.0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ilya Kondratev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-19 00:00:00.000000000 Z
11
+ date: 2022-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -67,6 +67,7 @@ files:
67
67
  - lib/rocket_api/constants.rb
68
68
  - lib/rocket_api/errors.rb
69
69
  - lib/rocket_api/library/gem_repo_plain_text.rb
70
+ - lib/rocket_api/library/helper_plain_text.rb
70
71
  - lib/rocket_api/rocket_commands.rb
71
72
  - lib/rocket_api/version.rb
72
73
  - rocket_api.gemspec