pagoda 0.7.3 → 0.7.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: 9dc917c7bcad25175b5e0871c22d3616ae011ab1
4
- data.tar.gz: 397b7e72ac1d2c13929391eff8896e58d2b0c95e
3
+ metadata.gz: f68dbfdee4fc21612c902e14ea8b90c792e37e6e
4
+ data.tar.gz: 4eb03823c3d5729c177afda1356eb684e475bb3a
5
5
  SHA512:
6
- metadata.gz: 9b5ff0a8450d0430ec2f0659431f166c3795e7803c735130f8702fd95138f2725571b6d3b6be5e9e573ed91f644f6461af16b86c987cb953913b160fecee6038
7
- data.tar.gz: 0101bfa5cb91c95885cc766da5946fb95ae73730c82c3cfda6796ef193a3cb294e80ad11cc79e868a9aebbac2f4824712de0252f73cef84f406e816cddf60028
6
+ metadata.gz: 4bce58317eae1fddcd86e2959d13c803230df8b374d03e4df5d0d4f739fee01d030e20bcd775d058bfd44271b5d147586242a07645294a7ced9b0a400f5c13b0
7
+ data.tar.gz: b9d42f6fdb5de37b0e3d8ee2f48fe6babd41dd842f4e909086e3a1129d61bfc98df68c6d73a2ecc037da2ccf09f1710d563c9a00ae8e79cecf878bb7e8f66249
@@ -17,193 +17,4 @@ unless String.method_defined?(:shellescape)
17
17
  empty? ? "''" : gsub(/([^A-Za-z0-9_\-.,:\/@\n])/n, '\\\\\\1').gsub(/\n/, "'\n'")
18
18
  end
19
19
  end
20
- end
21
-
22
- class String
23
-
24
- #
25
- # Colors Hash
26
- #
27
- COLORS = {
28
- :black => 0,
29
- :red => 1,
30
- :green => 2,
31
- :yellow => 3,
32
- :blue => 4,
33
- :magenta => 5,
34
- :cyan => 6,
35
- :white => 7,
36
- :default => 9,
37
-
38
- :light_black => 10,
39
- :light_red => 11,
40
- :light_green => 12,
41
- :light_yellow => 13,
42
- :light_blue => 14,
43
- :light_magenta => 15,
44
- :light_cyan => 16,
45
- :light_white => 17
46
- }
47
-
48
- #
49
- # Modes Hash
50
- #
51
- MODES = {
52
- :default => 0, # Turn off all attributes
53
- #:bright => 1, # Set bright mode
54
- :underline => 4, # Set underline mode
55
- :blink => 5, # Set blink mode
56
- :swap => 7, # Exchange foreground and background colors
57
- :hide => 8 # Hide text (foreground color would be the same as background)
58
- }
59
-
60
- protected
61
-
62
- #
63
- # Set color values in new string intance
64
- #
65
- def set_color_parameters( params )
66
- if (params.instance_of?(Hash))
67
- @color = params[:color]
68
- @background = params[:background]
69
- @mode = params[:mode]
70
- @uncolorized = params[:uncolorized]
71
- self
72
- else
73
- nil
74
- end
75
- end
76
-
77
- public
78
-
79
- #
80
- # Change color of string
81
- #
82
- # Examples:
83
- #
84
- # puts "This is blue".colorize( :blue )
85
- # puts "This is light blue".colorize( :light_blue )
86
- # puts "This is also blue".colorize( :color => :blue )
87
- # puts "This is light blue with red background".colorize( :color => :light_blue, :background => :red )
88
- # puts "This is light blue with red background".colorize( :light_blue ).colorize( :background => :red )
89
- # puts "This is blue text on red".blue.on_red
90
- # puts "This is red on blue".colorize( :red ).on_blue
91
- # puts "This is red on blue and underline".colorize( :red ).on_blue.underline
92
- # puts "This is blue text on red".blue.on_red.blink
93
- # puts "This is uncolorized".blue.on_red.uncolorize
94
- #
95
- def colorize( params )
96
- return self unless STDOUT.isatty
97
-
98
- begin
99
- require 'Win32/Console/ANSI' if RUBY_PLATFORM =~ /win32/
100
- rescue LoadError
101
- raise 'You must gem install win32console to use colorize on Windows'
102
- end
103
-
104
- color_parameters = {}
105
-
106
- if (params.instance_of?(Hash))
107
- color_parameters[:color] = COLORS[params[:color]]
108
- color_parameters[:background] = COLORS[params[:background]]
109
- color_parameters[:mode] = MODES[params[:mode]]
110
- elsif (params.instance_of?(Symbol))
111
- color_parameters[:color] = COLORS[params]
112
- end
113
-
114
- color_parameters[:color] ||= @color ||= COLORS[:default]
115
- color_parameters[:background] ||= @background ||= COLORS[:default]
116
- color_parameters[:mode] ||= @mode ||= MODES[:default]
117
-
118
- color_parameters[:uncolorized] ||= @uncolorized ||= self.dup
119
-
120
- # calculate bright mode
121
- color_parameters[:color] += 50 if color_parameters[:color] > 10
122
-
123
- color_parameters[:background] += 50 if color_parameters[:background] > 10
124
-
125
- "\033[#{color_parameters[:mode]};#{color_parameters[:color]+30};#{color_parameters[:background]+40}m#{color_parameters[:uncolorized]}\033[0m".set_color_parameters( color_parameters )
126
- end
127
-
128
- #
129
- # Return uncolorized string
130
- #
131
- def uncolorize
132
- @uncolorized || self
133
- end
134
-
135
- #
136
- # Return true if sting is colorized
137
- #
138
- def colorized?
139
- !defined?(@uncolorized).nil?
140
- end
141
-
142
- #
143
- # Make some color and on_color methods
144
- #
145
- COLORS.each_key do | key |
146
- next if key == :default
147
-
148
- define_method key do
149
- self.colorize( :color => key )
150
- end
151
-
152
- define_method "on_#{key}" do
153
- self.colorize( :background => key )
154
- end
155
- end
156
-
157
- #
158
- # Methods for modes
159
- #
160
- MODES.each_key do | key |
161
- next if key == :default
162
-
163
- define_method key do
164
- self.colorize( :mode => key )
165
- end
166
- end
167
-
168
- class << self
169
-
170
- #
171
- # Return array of available modes used by colorize method
172
- #
173
- def modes
174
- keys = []
175
- MODES.each_key do | key |
176
- keys << key
177
- end
178
- keys
179
- end
180
-
181
- #
182
- # Return array of available colors used by colorize method
183
- #
184
- def colors
185
- keys = []
186
- COLORS.each_key do | key |
187
- keys << key
188
- end
189
- keys
190
- end
191
-
192
- #
193
- # Display color matrix with color names.
194
- #
195
- def color_matrix( txt = "[X]" )
196
- size = String.colors.length
197
- String.colors.each do | color |
198
- String.colors.each do | back |
199
- print txt.colorize( :color => color, :background => back )
200
- end
201
- puts " < #{color}"
202
- end
203
- String.colors.reverse.each_with_index do | back, index |
204
- puts "#{"|".rjust(txt.length)*(size-index)} < #{back}"
205
- end
206
- ""
207
- end
208
- end
209
- end
20
+ end
@@ -127,7 +127,7 @@ module Pagoda
127
127
  display "+> #{dname} has been successfully destroyed. RIP #{dname}."
128
128
  remove_app(my_app)
129
129
  else
130
- if confirm ["Are you totally completely sure you want to delete #{dname} forever and ever?", "THIS CANNOT BE UNDONE! (y/n)"]
130
+ if confirm ["Are you totally completely sure you want to delete #{dname} forever and ever?", "THIS CANNOT BE UNDONE! "]
131
131
  display
132
132
  display "+> Destroying #{dname}"
133
133
  client.app_destroy(my_app)
@@ -1,4 +1,5 @@
1
1
  require 'pagoda-client'
2
+ require 'highline/import'
2
3
 
3
4
  module Pagoda
4
5
  module Command
@@ -9,48 +10,12 @@ module Pagoda
9
10
  class << self
10
11
  include Pagoda::Helpers
11
12
  def ask_for_credentials
12
- username = ask "Username: "
13
- display "Password: ", false
14
- password = running_on_windows? ? ask_for_password_on_windows : ask_for_password
13
+ username = ask("<%= color('Username: ', :blue) %>")
14
+ password = ask("<%= color('Password: ', :blue) %>") { |q| q.echo = '*' }
15
15
  # api_key = Pagoda::Client.new(user, password).api_key
16
- [username, password] # return
16
+ [username.to_s, password.to_s] # return
17
17
  end
18
18
 
19
- def ask_for_password
20
- echo_off
21
- password = ask
22
- puts
23
- echo_on
24
- return password
25
- end
26
-
27
- def ask_for_password_on_windows
28
- require "Win32API"
29
- char = nil
30
- password = ''
31
-
32
- while char = Win32API.new("crtdll", "_getch", [ ], "L").Call do
33
- break if char == 10 || char == 13 # received carriage return or newline
34
- if char == 127 || char == 8 # backspace and delete
35
- password.slice!(-1, 1)
36
- else
37
- # windows might throw a -1 at us so make sure to handle RangeError
38
- (password << char.chr) rescue RangeError
39
- end
40
- end
41
- return password
42
- end
43
-
44
- def echo_off
45
- silently(system("stty -echo"))
46
- rescue
47
- end
48
-
49
- def echo_on
50
- silently(system("stty echo"))
51
- rescue
52
- end
53
-
54
19
  end
55
20
 
56
21
  attr_reader :client
@@ -96,7 +61,7 @@ module Pagoda
96
61
  else
97
62
  if soft_fail
98
63
  display "I was unable to find your application name."
99
- ask "what is the name of your application? "
64
+ ask "<%= color('what is the name of your application? ', :blue) %>"
100
65
  else
101
66
  error "Unable to find the app. please specify using -a or --app="
102
67
  end
@@ -15,13 +15,7 @@ module Pagoda
15
15
  end
16
16
 
17
17
  def display(msg="", newline=true, level=1)
18
- indent = build_indent(level)
19
- if newline
20
- (running_on_windows?) ? puts("#{indent}#{msg}") : puts("#{indent}#{msg}".green)
21
- else
22
- (running_on_windows?) ? print("#{indent}#{msg}") : print("#{indent}#{msg}".green)
23
- STDOUT.flush
24
- end
18
+ say("<%= color('#{msg}', :green)%>")
25
19
  end
26
20
 
27
21
  def format_date(date)
@@ -29,43 +23,29 @@ module Pagoda
29
23
  date.strftime("%Y-%m-%d %H:%M %Z")
30
24
  end
31
25
 
32
- def ask(message=nil, level=1)
33
- (running_on_windows?) ? print("#{build_indent(level)}#{message}") : print("#{build_indent(level)}#{message}".blue)
34
- STDOUT.flush
35
- STDIN.gets.strip
36
- end
26
+ # def ask(message=nil, level=1)
27
+ # (running_on_windows?) ? print("#{build_indent(level)}#{message}") : print("#{build_indent(level)}#{message}".blue)
28
+ # STDOUT.flush
29
+ # STDIN.gets.strip
30
+ # end
37
31
 
38
- def confirm(message="Are you sure you wish to continue? (y/n)?", level=1)
32
+ def confirm(message="Are you sure you wish to continue? ", level=1)
39
33
  return true if ARGV.include? "-f"
40
34
  case message
41
35
  when Array
42
- count = message.length
43
- iteration = 0
44
- message.each do |m|
45
- if iteration == count - 1
46
- (running_on_windows?) ? display("#{m} ", false, level) : display("#{m} ".blue, false, level)
47
- else
48
- (running_on_windows?) ? display("#{m} ", false, level) : display("#{m} ".blue, true, level)
49
- end
50
- iteration += 1
51
- end
36
+ agree("<%= color('#{message.join("\n")}', :blue)%>")
52
37
  when String
53
- (running_on_windows?) ? display("#{message} ", false, level) : display("#{message} ".blue, false, level)
38
+ agree("<%= color('#{message}', :blue)%>")
54
39
  end
55
- ask.downcase == 'y'
56
40
  end
57
41
 
58
42
  def error(msg, exit=true, level=1)
59
- indent = build_indent(level)
60
43
  STDERR.puts
61
44
  case msg
62
45
  when Array
63
- (running_on_windows?) ? STDERR.puts("#{indent}** Error:") : STDERR.puts("#{indent}** Error:".red)
64
- msg.each do |m|
65
- (running_on_windows?) ? STDERR.puts("#{indent}** #{m}") : STDERR.puts("#{indent}** #{m}".red)
66
- end
46
+ say("<%= color('#{msg.join("\n")}', :red)%>")
67
47
  when String
68
- (running_on_windows?) ? STDERR.puts("#{indent}** Error: #{msg}") : STDERR.puts("#{indent}** Error: #{msg}".red)
48
+ say("<%= color(msg, :red)%>")
69
49
  end
70
50
  STDERR.puts
71
51
  exit 1 if exit
@@ -90,10 +70,10 @@ module Pagoda
90
70
  error "you do not have git installed on your computer" unless has_git?
91
71
  if git('remote').split("\n").include?(remote)
92
72
  display "Given remote (#{remote}) is already in use on this repo"
93
- remote = ask "what would you like to call the new remote? "
73
+ remote = ask("<%= color('what would you like to call the new remote? ', :blue) %>")
94
74
  end
95
75
  unless File.directory?(".git")
96
- if confirm "git has not been initialized yet, would you like us to do this for you? (y/n)?"
76
+ if confirm "git has not been initialized yet, would you like us to do this for you? "
97
77
  display "git repo is being created in '#{Dir.pwd}'"
98
78
  git "init"
99
79
  else
@@ -1,5 +1,5 @@
1
1
  module Pagoda
2
2
  module CLI
3
- VERSION = "0.7.3"
3
+ VERSION = "0.7.4"
4
4
  end
5
5
  end
data/pagoda.gemspec CHANGED
@@ -23,6 +23,6 @@ Gem::Specification.new do |gem|
23
23
  gem.add_dependency "rest-client"
24
24
  gem.add_dependency "gli", '~> 2.0.0'
25
25
  gem.add_dependency "websocket-client-simple"
26
- # gem.add_dependency 'msgpack'
26
+ gem.add_dependency 'highline'
27
27
  # gem.add_dependency 'eventmachine'
28
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pagoda
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.3
4
+ version: 0.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lyon Hill
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-05 00:00:00.000000000 Z
11
+ date: 2013-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: highline
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  description: Pagoda Box User facing interface to improve workflow with Pagoda Box
112
126
  email:
113
127
  - lyon@pagodabox.com