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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 110369476f565253c6a81d6bf8b1a93f3757042f
4
- data.tar.gz: 4200110c0597b3579f6f046db0981630f0d5abcf
3
+ metadata.gz: 8b67d7684622c7d913b9ec35a5d92b25db7dc4e8
4
+ data.tar.gz: 21c6e6877cf719a368808462b056b99ab3a9e40d
5
5
  SHA512:
6
- metadata.gz: 4447d7be586ed19904b7a4a206515df3009673637a65561361beb2883687722c2bd3733d0010f8d1ef1faa8a92e599ba5276f3618b0b1fdb03f15abfb1e1d7cc
7
- data.tar.gz: 022a38149ce80d75da06f016d460a393cf08f7949f0f10deebccdf0165c736fcc0e30d1862496cee7b2d94290c591d33459a8a93f32f50acdbd4cff9741b6f59
6
+ metadata.gz: cc1a7db026e98426b5de7d42b96b4982286376bdbf3af1beae4aec27c2c6480633eb36acf9c31777e1d1f2d1cb98ed2aaf686d2b1118751b9c0de7065f4332d6
7
+ data.tar.gz: f359681e460ed58a04b14f50c440d020b355b9bcfa78fa1dc5eaeb27becb7981bc0b1be564877910207151590cc35c6a9a0d452fa30985b42179fe6cf292526c
@@ -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
@@ -0,0 +1,9 @@
1
+ module Rdm
2
+ module Errors
3
+ class PackageExists < StandardError
4
+ end
5
+
6
+ class PackageDirExists < StandardError
7
+ end
8
+ end
9
+ end
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Rdm
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
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.3
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-03-22 00:00:00.000000000 Z
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