assembla_cli 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,10 @@
1
+ {
2
+ "username" : "",
3
+ "password" : "",
4
+ "space" : "",
5
+ "report_id" : ""
6
+ "zebra_colors" : {
7
+ "color1" : "black_background",
8
+ "color2" : "blue_background"
9
+ }
10
+ }
data/README.md CHANGED
@@ -1,38 +1,83 @@
1
- ## use cases
1
+ | | |_)
2
+ _` | __| __| _ \ __ `__ \ __ \ | _` | __| | |
3
+ ( |\__ \\__ \ __/ | | | | | | ( | ( | |
4
+ \__,_|____/____/\___|_| _| _|_.__/ _|\__,_| \___|_|_|
2
5
 
3
- > assembla
6
+ ## Installation
4
7
 
5
- > tickets //returns a table with my tickets
8
+ gem install assembla_cli
6
9
 
7
- #number priority status title
8
- 123 high new just another bug
9
- 321 low test an easy fix
10
+ ## Alternative Installation
10
11
 
11
- > select(123) //sets ticket 123 as the current ticket
12
- > open(123) //opens the ticket 123 in the browser for analysis
12
+ git clone git@github.com:azendal/assembla_cli.git
13
+ cd assembla_cli
14
+ bundle
15
+ gem build assembla_cli.gemspec
16
+ gem i assembla_cli-0.0.1.gem
13
17
 
14
- > status //lists the possible statusses for the ticket
15
- # label
16
- 0 invalid
17
- 1 new
18
- 2 test
19
- 3 fixed
18
+ ## Configuration
20
19
 
21
- > status 2 //sets the current ticket to test
22
- > ticket //shows the current ticket summary
23
- > comment "some comment or reason i already fixed this before ...."
20
+ echo -e "<username>\n<password>" >> ~/.assembla_cli
24
21
 
25
- > exit //well it exits :P
22
+ ## Project configuration
23
+
24
+ cd /path/to/project
25
+ touch .assemblarc
26
26
 
27
- ## Install
27
+ #sample configuration
28
+ {
29
+ "space" : "space",
30
+ "report_id" : "12341",
31
+ "zebra_colors" : {
32
+ "color1" : "black_background",
33
+ "color2" : "blue_background"
34
+ }
35
+ }
28
36
 
29
- bundle
30
- gem build assembla_cli.gemspec
31
- gem i assembla_cli-0.0.1.gem
37
+ ## Use
32
38
 
33
- # Use
39
+ assembla
40
+ assembla> change_space 'Space'
41
+
42
+ assembla(Space)> change_report
43
+ +--------+-------------------------------+
44
+ | id | name |
45
+ +--------+-------------------------------+
46
+ | 12 | By Person - Open |
47
+ | 32 | My Open tickets |
48
+ +--------+-------------------------------+
49
+ select report number> 32
50
+
51
+ assembla(Space)> my_tickets
52
+ +--------+-------------+------------+-------------------+----------------------------------------+
53
+ | NUMBER | PRIORITY | MILESTONE | STATUS | SUMMARY |
54
+ +--------+-------------+------------+-------------------+----------------------------------------+
55
+ | 5 | Highest (1) | Release | Working | Add some feature |
56
+ | 1 | Normal (3) | Release | New | Improve some other feature |
57
+ | 2 | Normal (3) | Release | New | Remove unused method x |
58
+ | 7 | High (2) | Refactor | New | Abstract method x into a factory |
59
+ +--------+-------------+------------+-------------------+----------------------------------------+
60
+
61
+ assembla(Space)> ticket 5
62
+ assembla(Space)> comment "will be fixed soon"
63
+ assembla(Space)> status 'test'
64
+
65
+ assembla(Space)> ticket 1
66
+
67
+ ## Full configured use
34
68
 
35
69
  $ assembla
36
- $ assempla Space?> space-name
37
- $ assembla> milestones
38
- $ assembla> exit
70
+ assembla(Space)> my_tickets
71
+ +--------+-------------+------------+-------------------+----------------------------------------+
72
+ | NUMBER | PRIORITY | MILESTONE | STATUS | SUMMARY |
73
+ +--------+-------------+------------+-------------------+----------------------------------------+
74
+ | 5 | Highest (1) | Release | Working | Add some feature |
75
+ | 1 | Normal (3) | Release | New | Improve some other feature |
76
+ | 2 | Normal (3) | Release | New | Remove unused method x |
77
+ | 7 | High (2) | Refactor | New | Abstract method x into a factory |
78
+ +--------+-------------+------------+-------------------+----------------------------------------+
79
+
80
+ ## Getting help
81
+
82
+ assembla> commands
83
+ assembla> h
@@ -5,8 +5,8 @@ require "assembla_cli/version"
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "assembla_cli"
7
7
  s.version = AssemblaCli::VERSION
8
- s.authors = ["azendal", "ktlacaelel", "edgarjs"]
9
- s.email = ["azendal@gmail.com", "ktlacaelel@gmail.com", "edgar.js@gmail.com"]
8
+ s.authors = ["azendal", "ktlacaelel", "edgarjs", "luisgodinez", "chubas"]
9
+ s.email = ["trasvina@gmail.com", "ktlacaelel@gmail.com", "edgar.js@gmail.com", "luisgodinez@gmail.com", "chubas7@gmail.com"]
10
10
  s.homepage = "https://github.com/azendal/assembla_cli/"
11
11
  s.summary = %q{A CLI to use Assembla for easy usage}
12
12
  s.description = %q{A CLI to use Assembla for easy usage}
@@ -22,4 +22,5 @@ Gem::Specification.new do |s|
22
22
  s.add_runtime_dependency "hashie"
23
23
  s.add_runtime_dependency "httparty"
24
24
  s.add_runtime_dependency "isna"
25
+ s.add_runtime_dependency "highline"
25
26
  end
@@ -1,16 +1,37 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- # $:.unshift File.expand_path('../..', __FILE__)
3
+ $:.unshift File.expand_path("../../lib", __FILE__)
4
4
  require 'assembla_cli'
5
5
 
6
+ extend Hirb::Console
7
+
6
8
  # TODO: Prompt for credentials and create this file if not exists
7
9
  # TODO: Move authentication to another class or module
8
- username, password = File.read("#{ENV['HOME']}/.assembla_cli").split
9
- Assembla.login(username, password)
10
- # Assembla.space('space name')
11
- # Assembla.my_report('personal report id')
10
+ __assembla_rc = "#{ENV['HOME']}/.assembla_cli"
12
11
 
13
- extend Hirb::Console
12
+ unless File.exists?(__assembla_rc)
13
+ puts "No configuration file found. Please input credentials."
14
+ File.open(__assembla_rc, 'w') do |file|
15
+ file.puts Assembla.setup_credentials
16
+ end
17
+ end
18
+
19
+ username, password = File.read(__assembla_rc).split
20
+
21
+ @cfg = {
22
+ 'username' => username,
23
+ 'password' => password,
24
+ "zebra_colors" => {
25
+ "color1" => "black_background",
26
+ "color2" => "blue_background"
27
+ }
28
+ }
29
+
30
+ @cfg = @cfg.merge MultiJson.decode(File.read(Dir.pwd + '/.assemblarc')) if File.exists?(Dir.pwd + '/.assemblarc')
31
+
32
+ Assembla.login(@cfg['username'], @cfg['password']) if @cfg['username'] && @cfg['password']
33
+ Assembla.space(@cfg['space']) if @cfg['space']
34
+ Assembla.my_report_id(@cfg['report_id']) if @cfg['report_id']
14
35
 
15
36
  # Statuses dont change a log, so keep them cached to make ticket
16
37
  # listing faster.
@@ -19,7 +40,7 @@ def status_translations
19
40
  end
20
41
 
21
42
  def milestone_translation
22
- @milestone_translation ||= Assembla.milestones['milestones']
43
+ @milestone_translation ||= Assembla.milestones['milestones'] || []
23
44
  end
24
45
 
25
46
  def clean_cache
@@ -27,9 +48,9 @@ def clean_cache
27
48
  @status_translations
28
49
  end
29
50
 
30
- def priority_string number
31
- ['', 'Highest (1)', 'High (2)', 'Normal (3)', 'Low (4)', 'Lowest (5)'][number]
32
- end
51
+ def priority_string number
52
+ ['', 'Highest (1)', 'High (2)', 'Normal (3)', 'Low (4)', 'Lowest (5)'][number]
53
+ end
33
54
 
34
55
  # Translates a status-id into its status-name equivalent.
35
56
  def status_string number
@@ -51,45 +72,231 @@ def milestone_string number
51
72
  'Unknown'
52
73
  end
53
74
 
54
- def tickets
55
- # Prepare table data.
56
- headers = ['number', 'priority', 'milestone_id', 'status_name', 'summary']
57
- hash = Assembla.my_tickets['tickets']
75
+ def ticket_change_comment_string comment
76
+ c = YAML::load(comment).flatten
77
+ if c.count == 3
78
+ "#{c[0]} changed from: #{c[1]} to: #{c[2]}"
79
+ else
80
+ "Change: #{c.to_s}"
81
+ end
82
+ end
83
+
84
+ def reports
85
+ all_reports = Assembla.custom_reports['custom_reports']
86
+ table all_reports['user_reports'] + all_reports['team_reports'], :fields => ['id', 'name']
87
+ end
58
88
 
59
- # Replace status numbers for status strings
60
- # TODO: we might need to send data so overriding is not cool.
61
- # So maybe we should manage translations differently.
62
- hash.each { |row| row['priority'] = priority_string(row['priority']) }
63
- hash.each { |row| row['milestone_id'] = milestone_string(row['milestone_id']) }
89
+ def change_report
90
+ reports
91
+ print "select report number> "
92
+ id = gets.chomp
93
+ Assembla.my_report_id id
94
+ end
64
95
 
96
+ def my_report
97
+ if Assembla.my_report_id.nil?
98
+ change_report
99
+ end
100
+ hash = Assembla.custom_report(Assembla.my_report_id)['tickets']
101
+ print_tickets hash
102
+ end
103
+
104
+ def my_tickets
105
+ print_tickets Assembla.my_tickets['tickets']
106
+ end
107
+
108
+ def tickets
109
+ hash = Assembla.tickets['tickets']
110
+ print_tickets hash
111
+ end
112
+
113
+ def print_table hash, fields = [], headers = {}
65
114
  # Print data
66
- table = Hirb::Helpers::AutoTable.render(hash, :fields => headers)
67
- c = :green
115
+ table = Hirb::Helpers::AutoTable.render(hash, :fields => fields, :headers => headers, :description => false)
116
+ c = @cfg['zebra_colors']['color1']
117
+ i = 0;
118
+
68
119
  table.each_line do |line|
69
- c = c == :green ? :yellow : :green
70
- puts line.chomp.to_ansi.send(c)
120
+ if i > 2
121
+ c = c == @cfg['zebra_colors']['color1'] ? @cfg['zebra_colors']['color2'] : @cfg['zebra_colors']['color1']
122
+ end
123
+ puts line.chomp.to_ansi.white.send(c)
124
+ i = i + 1
71
125
  end
72
- # TODO: Think on how this can be handled better.
73
- # clean_cache
126
+
74
127
  nil
75
128
  end
76
129
 
130
+ def print_tickets hash
131
+ # Prepare table data.
132
+ headers = {
133
+ 'number' => 'NUMBER',
134
+ 'priority_name' => 'PRIORITY',
135
+ 'milestone_name' => 'MILESTONE',
136
+ 'status_name' => 'STATUS',
137
+ 'assigned_to_name' => 'ASSIGNED TO',
138
+ 'summary' => 'SUMMARY'
139
+ }
140
+
141
+ fields = ['number', 'priority_name', 'milestone_name', 'status_name', 'assigned_to_name', 'summary']
142
+
143
+ hash.each { |row| row['priority_name'] = priority_string(row['priority']) }
144
+ hash.each { |row| row['milestone_name'] = milestone_string(row['milestone_id']) }
145
+ hash.each { |row| row['assigned_to_name'] = row['assigned_to'] ? row['assigned_to']['name'] : '' }
146
+
147
+ print_table hash, fields, headers
148
+ end
149
+
150
+ def print_ticket
151
+ ticket = Assembla.ticket['ticket']
152
+ hash = []
153
+ hash[0] = {:col1 => 'id', :col2 => ticket['number'], :col3 => ''}
154
+ hash[1] = {:col1 => 'summary', :col2 => ticket['summary'], :col3 => ''}
155
+ hash[2] = {:col1 => 'description', :col2 => ticket['description'], :col3 => ''}
156
+ hash[3] = {:col1 => 'milestone', :col2 => milestone_string(ticket['milestone_id']), :col3 => ''}
157
+ hash[4] = {:col1 => 'assigned to', :col2 => ticket['assigned_to']['name'], :col3 => ''}
158
+ hash[5] = {:col1 => 'reported by', :col2 => ticket['reporter']['name'], :col3 => ''}
159
+ hash[6] = {:col1 => 'status', :col2 => ticket['status_name'], :col3 => ''}
160
+
161
+ table = Hirb::Helpers::AutoTable.render(hash, :headers => false)
162
+ c = @cfg['zebra_colors']['color1']
163
+ i = 0;
164
+
165
+ table.each_line do |line|
166
+ c = (i == 1) ? @cfg['zebra_colors']['color2'] : @cfg['zebra_colors']['color1']
167
+ puts line.chomp.to_ansi.white.send(c)
168
+ i = i + 1
169
+ end
170
+ puts '-' * Hirb::View.width
171
+ puts "Ticket changes:"
172
+ puts '-' * Hirb::View.width
173
+ ticket['ticket_comments'].map do |comment|
174
+ if comment['comment'].nil? && !comment['ticket_changes'].nil?
175
+ puts "Ticket change:"
176
+ puts ticket_change_comment_string(comment['ticket_changes'])
177
+ puts "Date:#{comment['updated_at']}:"
178
+ puts '-' * Hirb::View.width
179
+ else !comment['comment'].nil?
180
+ puts "#{comment['user']['name']} comment:"
181
+ puts comment['comment']
182
+ puts "Date:#{comment['updated_at']}:"
183
+ puts '-' * Hirb::View.width
184
+ end
185
+ end
186
+ end
187
+
77
188
  def milestones
78
189
  table Assembla.milestones['milestones'], :fields => ['id', 'title']
79
190
  end
80
191
 
81
- def open (ticket_id)
82
- `open https://www.assembla.com/spaces/breezi/tickets/#{ticket_id}`
192
+ def http (ticket_id)
193
+ `open https://www.assembla.com/spaces/#{Assembla.space['space']['name']}/tickets/#{ticket_id}`
83
194
  nil
84
195
  end
85
196
 
86
- # TODO: Fix this
87
- print "assembla Space?> "
88
- cmd = gets.chomp
89
- Assembla.space(cmd)
90
- while cmd != 'exit' do
91
- print "assembla> "
92
- cmd = gets.chomp
93
- send(cmd)
197
+ def ticket (id = nil)
198
+ if id
199
+ Assembla.ticket id
200
+ print_ticket
201
+ elsif Assembla.ticket
202
+ print_ticket
203
+ else
204
+ puts 'Please select a ticket to display'
205
+ end
206
+ end
207
+
208
+ def comment (comment, id = nil)
209
+ if id.nil? && Assembla.ticket.nil?
210
+ puts 'Please select a ticket to comment'
211
+ elsif id
212
+ Assembla.ticket id
213
+ Assembla.add_comment(comment)
214
+ ticket(id)
215
+ else
216
+ Assembla.add_comment(comment)
217
+ ticket(Assembla.ticket['ticket']['number'])
218
+ end
219
+ end
220
+
221
+ def update_status (status, id = nil)
222
+ if id.nil? && Assembla.ticket.nil?
223
+ puts 'Please select a ticket to comment'
224
+ elsif id
225
+ Assembla.ticket id
226
+ Assembla.change_status(status)
227
+ ticket(id)
228
+ else
229
+ Assembla.change_status(status)
230
+ ticket(Assembla.ticket['ticket']['number'])
231
+ end
232
+ end
233
+
234
+ def fixed (id = nil)
235
+ update_status('Fixed', id)
236
+ end
237
+
238
+ def test (id = nil)
239
+ update_status('Test', id)
240
+ end
241
+
242
+ def invalid (id = nil)
243
+ update_status('Invalid', id)
244
+ end
245
+
246
+ def statuses
247
+ table Assembla.statuses['ticket_statuses'], :fields => ['name']
248
+ end
249
+
250
+ def change_space(space_name = nil)
251
+ unless space_name
252
+ spaces
253
+ print "enter space name> "
254
+ space_name = gets.chomp
255
+ end
256
+ Assembla.reset!
257
+ Assembla.space space_name
258
+ prompt = "assembla(#{space_name})> "
259
+ conf.prompt_i = conf.prompt_n = conf.prompt_s = conf.prompt_c = prompt
260
+ end
261
+
262
+ def spaces
263
+ hash = Assembla.spaces['spaces']
264
+ fields = ['name', 'wiki_name']
265
+ headers = { 'name' => 'NAME', 'wiki_name' => 'SLUG' }
266
+ print_table hash, fields, headers
94
267
  end
95
268
 
269
+ def commands
270
+ # TODO: Complete help
271
+ puts <<-eos
272
+
273
+ Assembla CLI, version #{AssemblaCli::VERSION}
274
+
275
+ change_space # Changes current space
276
+ change_report # Changes current default report
277
+ tickets # Lists tickets for current space
278
+ my_tickets # Lists active tickets assigned to 'me'
279
+ my_report # Lists custom report's tickets
280
+ statuses # Lists available statuses
281
+ comment('message') # Add a comment to current ticket
282
+ comment('message',id) # Add a comment to the specified ticket id
283
+ update_status('New') # Change the status to current ticket
284
+ update_status('New', id) # Update the status to the specified ticket
285
+ fixed # Close current ticket as fixed
286
+ fixed(id) # Close specified ticket as fixed
287
+ invalid # Close current ticket as invalid
288
+ invalid(id) # Close specified ticket as invalid
289
+ test # Set current ticket status to test
290
+ test(id) # Set specified ticket status to test
291
+ commands, h # Show this message
292
+
293
+ eos
294
+ end
295
+
296
+ def h
297
+ commands
298
+ end
299
+
300
+ ENV['IRBRC'] = File.expand_path('../../lib/assembla_cli/irbrc', __FILE__)
301
+ IRB.start
302
+
@@ -1,17 +1,30 @@
1
1
  require 'rubygems'
2
+ require 'irb'
2
3
  require 'hirb'
3
4
  require 'hashie'
4
5
  require 'httparty'
5
6
  require 'isna'
7
+ require 'yaml'
8
+ require 'highline/import'
6
9
  require "assembla_cli/version"
7
10
 
8
11
  module Assembla
9
12
  include HTTParty
10
13
  format :xml
11
- base_uri 'assembla.com'
14
+ base_uri 'www.assembla.com'
15
+
16
+ def self.reset!
17
+ @current_space = @milestones = @my_report_id = @statuses, @users = nil
18
+ end
12
19
 
13
20
  def self.xml_headers
14
- {:headers => {'Accept' => 'application/xml'}}
21
+ {:headers => {'Accept' => 'application/xml', 'Content-Type' => 'application/xml'}}
22
+ end
23
+
24
+ def self.setup_credentials
25
+ login_name = ask('Username:')
26
+ password = ask('Password:') { |prompt| prompt.echo = false }
27
+ [ login_name, password ]
15
28
  end
16
29
 
17
30
  def self.login (login_name, password)
@@ -22,42 +35,67 @@ module Assembla
22
35
  end
23
36
 
24
37
  def self.spaces
25
- self.get('/spaces/my_spaces', xml_headers)
38
+ get('/spaces/my_spaces', xml_headers)
26
39
  end
27
40
 
28
- def self.space (space_name)
29
- @current_space = self.get("/spaces/#{space_name}", xml_headers)['space']
41
+ def self.space (space_name = nil)
42
+ if space_name
43
+ @current_space = get("/spaces/#{space_name.gsub(/ /, '-').downcase}", xml_headers)
44
+ end
45
+ @current_space
30
46
  end
31
47
 
32
- def self.my_report (report_id)
33
- @my_report_id = report_id
48
+ def self.my_report_id (report_id = nil)
49
+ if report_id
50
+ @my_report_id = report_id
51
+ end
52
+ @my_report_id
34
53
  end
35
54
 
36
55
  def self.statuses
37
- self.get("/spaces/#{@current_space['id']}/tickets/custom_statuses", xml_headers)
56
+ @statuses ||= get("/spaces/#{space['space']['id']}/tickets/custom_statuses", xml_headers)
38
57
  end
39
58
 
40
59
  def self.users
41
- self.get("/spaces/#{@current_space['id']}/users", xml_headers)
60
+ @users ||= get("/spaces/#{space['space']['id']}/users", xml_headers)
42
61
  end
43
62
 
44
63
  def self.milestones
45
- @statusses ||= get("/spaces/#{@current_space['id']}/milestones/", xml_headers)
64
+ @milestones ||= get("/spaces/#{space['space']['id']}/milestones/", xml_headers)
65
+ end
66
+
67
+ def self.ticket (ticket_id = nil)
68
+ if ticket_id
69
+ @current_ticket = get("/spaces/#{space['space']['id']}/tickets/#{ticket_id}", xml_headers)
70
+ end
71
+ @current_ticket
46
72
  end
47
73
 
48
74
  def self.tickets
49
- self.get("/spaces/#{@current_space['id']}/tickets/report/9", xml_headers)
75
+ get("/spaces/#{space['space']['id']}/tickets/report/3", xml_headers)
50
76
  end
51
77
 
52
78
  def self.my_tickets
53
- get("/spaces/#{@current_space['id']}/tickets/custom_report/#{@my_report_id}", xml_headers)
79
+ get("/spaces/#{space['space']['id']}/tickets/report/8", xml_headers)
54
80
  end
55
81
 
56
82
  def self.custom_reports
57
- get("/spaces/#{@current_space['id']}/custom_reports", xml_headers)
83
+ get("/spaces/#{space['space']['id']}/custom_reports", xml_headers)
58
84
  end
59
85
 
60
86
  def self.custom_report (report_id)
61
- get("/spaces/#{@current_space['id']}/tickets/custom_report/#{report_id}", xml_headers)
87
+ get("/spaces/#{space['space']['id']}/tickets/custom_report/#{report_id}", xml_headers)
88
+ end
89
+
90
+ def self.add_comment (comment)
91
+ update_ticket("<ticket><user-comment>#{comment}</user-comment></ticket>")
92
+ end
93
+
94
+ def self.change_status (status_name)
95
+ update_ticket("<ticket><status>#{status_name}</status></ticket>")
96
+ end
97
+
98
+ def self.update_ticket (body)
99
+ put("/spaces/#{space['space']['id']}/tickets/#{ticket['ticket']['number']}", xml_headers.merge!(:body => "#{body}"))
62
100
  end
63
101
  end
@@ -0,0 +1,16 @@
1
+ require 'irb/completion'
2
+
3
+ prompt = "assembla> "
4
+
5
+ IRB.conf[:PROMPT][:ASSEMBLA] = {
6
+ :AUTO_INDENT => false,
7
+ :PROMPT_I => prompt,
8
+ :PROMPT_N => prompt,
9
+ :PROMPT_S => prompt,
10
+ :PROMPT_C => prompt,
11
+ :RETURN => ""
12
+ }
13
+ IRB.conf[:PROMPT_MODE] = :ASSEMBLA
14
+ IRB.conf[:SINGLE_IRB] = true
15
+ IRB.conf[:IRB_NAME] = "assembla cli"
16
+
@@ -1,3 +1,3 @@
1
1
  module AssemblaCli
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,23 +1,25 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: assembla_cli
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - azendal
14
14
  - ktlacaelel
15
15
  - edgarjs
16
+ - luisgodinez
17
+ - chubas
16
18
  autorequire:
17
19
  bindir: bin
18
20
  cert_chain: []
19
21
 
20
- date: 2012-01-06 00:00:00 Z
22
+ date: 2012-01-20 00:00:00 Z
21
23
  dependencies:
22
24
  - !ruby/object:Gem::Dependency
23
25
  name: ruby-debug
@@ -89,11 +91,27 @@ dependencies:
89
91
  version: "0"
90
92
  type: :runtime
91
93
  version_requirements: *id005
94
+ - !ruby/object:Gem::Dependency
95
+ name: highline
96
+ prerelease: false
97
+ requirement: &id006 !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ hash: 3
103
+ segments:
104
+ - 0
105
+ version: "0"
106
+ type: :runtime
107
+ version_requirements: *id006
92
108
  description: A CLI to use Assembla for easy usage
93
109
  email:
94
- - azendal@gmail.com
110
+ - trasvina@gmail.com
95
111
  - ktlacaelel@gmail.com
96
112
  - edgar.js@gmail.com
113
+ - luisgodinez@gmail.com
114
+ - chubas7@gmail.com
97
115
  executables:
98
116
  - assembla
99
117
  extensions: []
@@ -101,7 +119,7 @@ extensions: []
101
119
  extra_rdoc_files: []
102
120
 
103
121
  files:
104
- - .assemblarc
122
+ - .assemblarc.sample
105
123
  - .gitignore
106
124
  - Gemfile
107
125
  - README.md
@@ -109,6 +127,7 @@ files:
109
127
  - assembla_cli.gemspec
110
128
  - bin/assembla
111
129
  - lib/assembla_cli.rb
130
+ - lib/assembla_cli/irbrc
112
131
  - lib/assembla_cli/version.rb
113
132
  homepage: https://github.com/azendal/assembla_cli/
114
133
  licenses: []
File without changes