rdm 0.1.3 → 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
  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