rdm 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/rdm-generate +54 -0
- data/lib/rdm.rb +3 -1
- data/lib/rdm/errors.rb +9 -0
- data/lib/rdm/package_generator.rb +43 -0
- data/lib/rdm/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b67d7684622c7d913b9ec35a5d92b25db7dc4e8
|
4
|
+
data.tar.gz: 21c6e6877cf719a368808462b056b99ab3a9e40d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc1a7db026e98426b5de7d42b96b4982286376bdbf3af1beae4aec27c2c6480633eb36acf9c31777e1d1f2d1cb98ed2aaf686d2b1118751b9c0de7065f4332d6
|
7
|
+
data.tar.gz: f359681e460ed58a04b14f50c440d020b355b9bcfa78fa1dc5eaeb27becb7981bc0b1be564877910207151590cc35c6a9a0d452fa30985b42179fe6cf292526c
|
data/bin/rdm-generate
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# -*- encoding: utf-8 -*-
|
3
|
+
|
4
|
+
require 'rubygems'
|
5
|
+
require 'bundler'
|
6
|
+
require 'rdm'
|
7
|
+
require 'optparse'
|
8
|
+
|
9
|
+
current_dir = `pwd`.chomp
|
10
|
+
|
11
|
+
options = {
|
12
|
+
skip_rspec: false
|
13
|
+
}
|
14
|
+
|
15
|
+
if ARGV[0] != 'package'
|
16
|
+
puts "Unsupported generator command provided. Please use rdm-generate packate args."
|
17
|
+
exit 1
|
18
|
+
end
|
19
|
+
|
20
|
+
package_name = ARGV[1].to_s.strip
|
21
|
+
if package_name.empty?
|
22
|
+
puts 'Package name was not specified'
|
23
|
+
exit 1
|
24
|
+
end
|
25
|
+
|
26
|
+
OptionParser.new do |opts|
|
27
|
+
opts.banner = "Usage: rdm-generate PACKAGE_NAME --path=RELATIVE_PATH --skip-rspec"
|
28
|
+
|
29
|
+
opts.on('-skip-rspec', 'Skip rspec generation') do
|
30
|
+
options[:skip_rspec] = true
|
31
|
+
end
|
32
|
+
|
33
|
+
opts.on('--path=', '', 'Package relative path') do |v|
|
34
|
+
options[:path] = v.strip
|
35
|
+
end
|
36
|
+
end.parse!
|
37
|
+
|
38
|
+
if options[:path].nil?
|
39
|
+
options[:path] = package_name.downcase.gsub(/\s+/, '_')
|
40
|
+
end
|
41
|
+
|
42
|
+
options[:path].gsub!(/^\/+/, '')
|
43
|
+
|
44
|
+
puts "Generating package #{package_name} to #{options[:path]}"
|
45
|
+
|
46
|
+
begin
|
47
|
+
Rdm::PackageGenerator.generate_package(current_dir, package_name, options[:path], options[:skip_rspec])
|
48
|
+
rescue Errno::ENOENT
|
49
|
+
puts "#{Rdm::SOURCE_FILENAME} not found. Please run on directory containing #{Rdm::SOURCE_FILENAME}"
|
50
|
+
rescue Rdm::Errors::PackageExists
|
51
|
+
puts "Error. Package already exist. Package was not generated"
|
52
|
+
rescue Rdm::Errors::PackageDirExists
|
53
|
+
puts "Error. Directory #{options[:path]} exists. Package was not generated"
|
54
|
+
end
|
data/lib/rdm.rb
CHANGED
@@ -3,12 +3,14 @@ module Rdm
|
|
3
3
|
PACKAGE_FILENAME = "Package.rb"
|
4
4
|
PACKAGE_LOCK_FILENAME = "#{PACKAGE_FILENAME}.lock"
|
5
5
|
|
6
|
+
require "rdm/errors"
|
6
7
|
require "rdm/settings"
|
7
8
|
require "rdm/source"
|
8
9
|
require "rdm/source_parser"
|
9
10
|
require "rdm/source_installer"
|
10
11
|
require "rdm/package"
|
11
12
|
require "rdm/package_parser"
|
13
|
+
require "rdm/package_generator"
|
12
14
|
require "rdm/package_importer"
|
13
15
|
require "rdm/config"
|
14
16
|
require "rdm/config_scope"
|
@@ -46,4 +48,4 @@ module Rdm
|
|
46
48
|
@root
|
47
49
|
end
|
48
50
|
end
|
49
|
-
end
|
51
|
+
end
|
data/lib/rdm/errors.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
class Rdm::PackageGenerator
|
4
|
+
class << self
|
5
|
+
def generate_package(current_dir, package_name, package_relative_path, skip_rspec = false)
|
6
|
+
source_path = File.join(current_dir, Rdm::SOURCE_FILENAME)
|
7
|
+
source_content = File.open(source_path).read
|
8
|
+
|
9
|
+
rdm_source = Rdm::SourceParser.parse(source_content)
|
10
|
+
package_subdir_name = Rdm.settings.send(:package_subdir_name)
|
11
|
+
|
12
|
+
if Dir.exist?(File.join(current_dir, package_relative_path))
|
13
|
+
raise Rdm::Errors::PackageDirExists, "package dir exists"
|
14
|
+
end
|
15
|
+
|
16
|
+
if rdm_source.package_paths.include?(package_relative_path)
|
17
|
+
raise Rdm::Errors::PackageExists, "package exists"
|
18
|
+
end
|
19
|
+
|
20
|
+
FileUtils.mkdir_p(File.join(current_dir, package_relative_path, package_subdir_name, package_name))
|
21
|
+
FileUtils.touch(File.join(current_dir, package_relative_path, package_subdir_name, "#{package_name}.rb"))
|
22
|
+
FileUtils.touch(File.join(current_dir, package_relative_path, '.gitignore'))
|
23
|
+
|
24
|
+
if !skip_rspec
|
25
|
+
FileUtils.cd(File.join(current_dir, package_relative_path, package_subdir_name)) do
|
26
|
+
system('rspec --init')
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
package_rb_template = <<EOF
|
31
|
+
package do
|
32
|
+
name "#{package_name}"
|
33
|
+
version "1.0.0"
|
34
|
+
end
|
35
|
+
|
36
|
+
dependency do
|
37
|
+
# TODO: add dependencies here
|
38
|
+
end
|
39
|
+
EOF
|
40
|
+
File.write(File.join(current_dir, package_relative_path, 'Package.rb'), package_rb_template)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/lib/rdm/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Droid Labs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -69,6 +69,7 @@ dependencies:
|
|
69
69
|
description: Ruby Dependency Manager
|
70
70
|
email:
|
71
71
|
executables:
|
72
|
+
- rdm-generate
|
72
73
|
- rdm-install
|
73
74
|
extensions: []
|
74
75
|
extra_rdoc_files: []
|
@@ -78,6 +79,7 @@ files:
|
|
78
79
|
- LICENSE.txt
|
79
80
|
- README.md
|
80
81
|
- Rakefile
|
82
|
+
- bin/rdm-generate
|
81
83
|
- bin/rdm-install
|
82
84
|
- example/Gemfile
|
83
85
|
- example/Rdm.packages
|
@@ -101,7 +103,9 @@ files:
|
|
101
103
|
- lib/rdm/config.rb
|
102
104
|
- lib/rdm/config_manager.rb
|
103
105
|
- lib/rdm/config_scope.rb
|
106
|
+
- lib/rdm/errors.rb
|
104
107
|
- lib/rdm/package.rb
|
108
|
+
- lib/rdm/package_generator.rb
|
105
109
|
- lib/rdm/package_importer.rb
|
106
110
|
- lib/rdm/package_parser.rb
|
107
111
|
- lib/rdm/settings.rb
|