dropper 0.0.1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 854c5a24aa9d19c2a604a2ee9de67f7e7d9b8ec2
4
+ data.tar.gz: 2ebc1a92dcd78f37c2684e62bec2ad4a8f76b8ab
5
+ SHA512:
6
+ metadata.gz: f0980fde411656a242a3fe4684d1faba6c8abc9c750f3d7265c032f6d50dfa35ca9544a66b1a108f384ae9780760cef4b3608cf8ab9b47b758326fa934a23295
7
+ data.tar.gz: 7c6cce0a85e3bbdac31263abdf1bb6b1059a177bdfbbfb14218897c87fc71ade21bf2e356bb0d4e8c5bde04cc233792d3944d76f64e5bc032a9270ca7f8f3fca
@@ -0,0 +1,10 @@
1
+ Gemfile.lock
2
+ doc/
3
+ pkg/
4
+ vendor/cache/*.gem
5
+ tmp
6
+ droper.log
7
+ .#*
8
+ .yardopts
9
+ .rspec
10
+ .document
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ group :development do
6
+ gem 'kramdown'
7
+ gem 'guard-rspec'
8
+ end
@@ -0,0 +1,24 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard :rspec do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+
9
+ # Rails example
10
+ watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
11
+ watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
12
+ watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
13
+ watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
14
+ watch('config/routes.rb') { "spec/routing" }
15
+ watch('app/controllers/application_controller.rb') { "spec/controllers" }
16
+
17
+ # Capybara features specs
18
+ watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/features/#{m[1]}_spec.rb" }
19
+
20
+ # Turnip features and steps
21
+ watch(%r{^spec/acceptance/(.+)\.feature$})
22
+ watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
23
+ end
24
+
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2013 Brady Love
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,28 @@
1
+ # Dropper
2
+
3
+ * [Homepage](https://github.com/bradylove/dropper#readme)
4
+ * [Issues](https://github.com/bradylove/dropper/issues)
5
+ * [Documentation](http://rubydoc.info/gems/dropper/frames)
6
+ * [Email](mailto:love.brady at gmail.com)
7
+
8
+ ## Description
9
+
10
+ TODO: Description
11
+
12
+ ## Features
13
+
14
+ ## Examples
15
+
16
+ require 'dropper'
17
+
18
+ ## Requirements
19
+
20
+ ## Install
21
+
22
+ $ gem install dropper
23
+
24
+ ## Copyright
25
+
26
+ Copyright (c) 2013 Brady Love
27
+
28
+ See {file:LICENSE.txt} for details.
@@ -0,0 +1,34 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+
5
+ begin
6
+ require 'bundler'
7
+ rescue LoadError => e
8
+ warn e.message
9
+ warn "Run `gem install bundler` to install Bundler."
10
+ exit -1
11
+ end
12
+
13
+ begin
14
+ Bundler.setup(:development)
15
+ rescue Bundler::BundlerError => e
16
+ warn e.message
17
+ warn "Run `bundle install` to install missing gems."
18
+ exit e.status_code
19
+ end
20
+
21
+ require 'rake'
22
+
23
+ require 'rubygems/tasks'
24
+ Gem::Tasks.new
25
+
26
+ require 'rspec/core/rake_task'
27
+ RSpec::Core::RakeTask.new
28
+
29
+ task :test => :spec
30
+ task :default => :spec
31
+
32
+ require 'yard'
33
+ YARD::Rake::YardocTask.new
34
+ task :doc => :yard
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'dropper'
4
+ require 'cri'
5
+
6
+ command = Cri::Command.define do
7
+ name 'dropper'
8
+ usage 'dropper [new || setup || deploy] [options]'
9
+ summary 'A tool to help automate server setup and project deployment.'
10
+
11
+ flag :h, :help, 'show help for dropper' do |value, cmd|
12
+ puts cmd.help
13
+ exit 0
14
+ end
15
+
16
+ flag :c, :config, 'JSON config file',
17
+
18
+ run do |opts, args, cmd|
19
+
20
+ end
21
+ end
22
+
23
+ command.run(ARGV)
@@ -0,0 +1,29 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require File.expand_path('../lib/dropper/version', __FILE__)
4
+
5
+ Gem::Specification.new do |gem|
6
+ gem.name = "dropper"
7
+ gem.version = Dropper::VERSION
8
+ gem.summary = %q{A tool to help automate server setup and project deployment.}
9
+ gem.description = %q{A tool to help automate server setup and project deployment.}
10
+ gem.license = "MIT"
11
+ gem.authors = ["Brady Love"]
12
+ gem.email = "love.brady@gmail.com"
13
+ gem.homepage = "https://github.com/bradylove/dropper#readme"
14
+
15
+ gem.files = `git ls-files`.split($/)
16
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
+ gem.require_paths = ['lib']
19
+
20
+ gem.add_dependency 'cri', '2.4.0'
21
+ gem.add_dependency 'colored', '1.2'
22
+
23
+ gem.add_development_dependency 'bundler', '~> 1.0'
24
+ gem.add_development_dependency 'rake', '~> 0.8'
25
+ gem.add_development_dependency 'rspec', '~> 2.4'
26
+ gem.add_development_dependency 'rubygems-tasks', '~> 0.2'
27
+ gem.add_development_dependency 'yard', '~> 0.8'
28
+ gem.add_development_dependency 'pry'
29
+ end
@@ -0,0 +1,3 @@
1
+ require 'dropper/logger'
2
+ require 'dropper/project'
3
+ require 'dropper/version'
@@ -0,0 +1,99 @@
1
+ require 'logger'
2
+
3
+ # Dropper::Logger handles all the logging for the application. By default it will
4
+ # just log to STDOUT, but if you set an outpath
5
+ # (Dropper::Logger.outpath = "filename") then this class will log to both STDOUT
6
+ # and the given file.
7
+ class Dropper::Logger
8
+ class << self
9
+ attr_accessor :outpath
10
+
11
+ def loggers
12
+ @loggers ||= build_loggers
13
+ end
14
+
15
+ # Log Info
16
+ # @param msg [String] The message to be logged
17
+ def info(msg)
18
+ log(:info, msg)
19
+ end
20
+
21
+ # Log Debug
22
+ # @param msg [String] The message to be logged
23
+ def debug(msg)
24
+ log(:debug, msg)
25
+ end
26
+
27
+ # Log Fatal
28
+ # @param msg [String] The message to be logged
29
+ def fatal(msg)
30
+ log(:fatal, msg)
31
+ end
32
+
33
+ # Log Warn
34
+ # @param msg [String] The message to be logged
35
+ def warn(msg)
36
+ log(:warn, msg)
37
+ end
38
+
39
+ # Log Error
40
+ # @param msg [String] The message to be logged
41
+ def error(msg)
42
+ log(:error, msg)
43
+ end
44
+
45
+ private
46
+
47
+ def log(type, msg)
48
+ loggers.each do |l|
49
+ l.send(type, msg)
50
+ end
51
+ end
52
+
53
+ def build_loggers
54
+ logs = [Logger.new(STDOUT)]
55
+ logs += [Logger.new(outpath)] if outpath
56
+
57
+
58
+ logs[0].formatter = proc do |severity, datetime, progname, msg|
59
+ span_message(msg, severity, nil)
60
+ end
61
+
62
+ if logs.size > 1
63
+ logs[1].formatter = proc do |severity, datetime, progname, msg|
64
+
65
+ end
66
+ end
67
+
68
+ logs
69
+ end
70
+
71
+ def span_message(msg, tag, tag_color)
72
+ spaces = term_width - msg.length - tag.length - 4
73
+
74
+ output = msg
75
+ output += " " * spaces
76
+ output += "[ #{tag} ]"
77
+
78
+ output
79
+ end
80
+
81
+ def term_width
82
+ detect_terminal_size[0].to_i
83
+ end
84
+
85
+ def detect_terminal_size
86
+ if (ENV['COLUMNS'] =~ /^\d+$/) && (ENV['LINES'] =~ /^\d+$/)
87
+ [ENV['COLUMNS'].to_i, ENV['LINES'].to_i]
88
+ elsif (RUBY_PLATFORM =~ /java/ || (!STDIN.tty? && ENV['TERM'])) && command_exists?('tput')
89
+ [`tput cols`.to_i, `tput lines`.to_i]
90
+ elsif STDIN.tty? && command_exists?('stty')
91
+ `stty size`.scan(/\d+/).map { |s| s.to_i }.reverse
92
+ else
93
+ nil
94
+ end
95
+ rescue
96
+ nil
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,21 @@
1
+ class Dropper::Project
2
+ def initialize(options = {})
3
+
4
+ end
5
+
6
+
7
+ private
8
+
9
+ def _welcome_message
10
+ """
11
+ DDDDDD RRRRRRR OOOOO PPPPPPP PPPPPPP EEEEEEEEE RRRRRRR
12
+ DD DD RR RR OO OO PP PP PP PP EE RR RR
13
+ DD DD RR RR OO OO PP PP PP PP EE RR RR
14
+ DD DD RR RR OO OO PP PP PP PP EE RR RR
15
+ DD DD RRRRRRR OO OO PPPPPPP PPPPPPP EEEEEEE RRRRRRR
16
+ DD DD RR RR OO OO PP PP EE RR RR
17
+ DD DD RR RR OO OO PP PP EE RR RR
18
+ DDDDDD RR RR OOOOO PP PP EEEEEEEEE RR RR
19
+ """
20
+ end
21
+ end
@@ -0,0 +1,3 @@
1
+ module Dropper
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,11 @@
1
+ {
2
+ "project_name": "{{ project_name }}",
3
+ "project_path": "{{ project_path }}",
4
+ "project_language": "{{ project_language }}",
5
+ "project_framework": "{{ project_framework }}",
6
+ "remote_host": "{{ remote_host }}",
7
+ "remote_username": "{{ remote_username }}",
8
+ "remote_host_os": "{{ remote_host_os }}",
9
+ "remote_project_path": "{{ remote_project_path }}",
10
+ "required_packages": {{ required_packages }},
11
+ }
@@ -0,0 +1,50 @@
1
+ require 'spec_helper'
2
+
3
+
4
+ describe Dropper::Logger do
5
+ let(:logger) { Dropper::Logger }
6
+ let(:msg) { "Hello World, This is a msg" }
7
+
8
+ before :each do
9
+ logger.outpath = "dropper.log"
10
+ end
11
+
12
+ it "should have an outpath" do
13
+ expect(logger.outpath).to eq "dropper.logr"
14
+ end
15
+
16
+ it "should log info to both loggers" do
17
+ expect(logger.loggers[0]).to receive(:info).with(msg)
18
+ expect(logger.loggers[1]).to receive(:info).with(msg)
19
+
20
+ logger.info(msg)
21
+ end
22
+
23
+ it "should log debug to both loggers" do
24
+ expect(logger.loggers[0]).to receive(:debug).with(msg)
25
+ expect(logger.loggers[1]).to receive(:debug).with(msg)
26
+
27
+ logger.debug(msg)
28
+ end
29
+
30
+ it "should log fatal to both loggers" do
31
+ expect(logger.loggers[0]).to receive(:fatal).with(msg)
32
+ expect(logger.loggers[1]).to receive(:fatal).with(msg)
33
+
34
+ logger.fatal(msg)
35
+ end
36
+
37
+ it "should log warn to both loggers" do
38
+ expect(logger.loggers[0]).to receive(:warn).with(msg)
39
+ expect(logger.loggers[1]).to receive(:warn).with(msg)
40
+
41
+ logger.warn(msg)
42
+ end
43
+
44
+ it "should log warn to both loggers" do
45
+ expect(logger.loggers[0]).to receive(:error).with(msg)
46
+ expect(logger.loggers[1]).to receive(:error).with(msg)
47
+
48
+ logger.error(msg)
49
+ end
50
+ end
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ describe Dropper::Project do
4
+
5
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe Dropper do
4
+ it "should have a VERSION constant" do
5
+ subject.const_get('VERSION').should_not be_empty
6
+ end
7
+ end
@@ -0,0 +1,2 @@
1
+ require 'rspec'
2
+ require 'dropper'
metadata ADDED
@@ -0,0 +1,177 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dropper
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Brady Love
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-09-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: cri
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 2.4.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 2.4.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: colored
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: '1.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: '1.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '1.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '0.8'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '0.8'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '2.4'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '2.4'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubygems-tasks
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: '0.2'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '0.2'
97
+ - !ruby/object:Gem::Dependency
98
+ name: yard
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: '0.8'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: '0.8'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description: A tool to help automate server setup and project deployment.
126
+ email: love.brady@gmail.com
127
+ executables:
128
+ - dropper
129
+ extensions: []
130
+ extra_rdoc_files: []
131
+ files:
132
+ - .gitignore
133
+ - Gemfile
134
+ - Guardfile
135
+ - LICENSE.txt
136
+ - README.md
137
+ - Rakefile
138
+ - bin/dropper
139
+ - dropper.gemspec
140
+ - lib/dropper.rb
141
+ - lib/dropper/logger.rb
142
+ - lib/dropper/project.rb
143
+ - lib/dropper/version.rb
144
+ - lib/templates/new_project.json.mustache
145
+ - spec/lib/dropper/logger_spec.rb
146
+ - spec/lib/dropper/project_spec.rb
147
+ - spec/lib/dropper_spec.rb
148
+ - spec/spec_helper.rb
149
+ homepage: https://github.com/bradylove/dropper#readme
150
+ licenses:
151
+ - MIT
152
+ metadata: {}
153
+ post_install_message:
154
+ rdoc_options: []
155
+ require_paths:
156
+ - lib
157
+ required_ruby_version: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - '>='
160
+ - !ruby/object:Gem::Version
161
+ version: '0'
162
+ required_rubygems_version: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ requirements: []
168
+ rubyforge_project:
169
+ rubygems_version: 2.0.7
170
+ signing_key:
171
+ specification_version: 4
172
+ summary: A tool to help automate server setup and project deployment.
173
+ test_files:
174
+ - spec/lib/dropper/logger_spec.rb
175
+ - spec/lib/dropper/project_spec.rb
176
+ - spec/lib/dropper_spec.rb
177
+ - spec/spec_helper.rb