dropper 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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