github-trello-cl 0.0.3 → 0.1.0

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: 8ae309b5667e125bcc1e13bfff8b932109547616
4
- data.tar.gz: f0a476e318e67b9da2db3f3fbd2d20e19fb2ce69
3
+ metadata.gz: 8a56f67ba2029ffa78fa25827e72ddb6d3e85052
4
+ data.tar.gz: 6e5987510f3bd05ca64e1f2517c605e3d8a8fcc3
5
5
  SHA512:
6
- metadata.gz: b9d93f3582be6b1067dda282f2396eeb94c9c8995801247b30758b308e19db2b5a86cb2a8d1e8d96b69fd25dce5d1e6a5644c23a9ec2d865ee2605b7bedd66ac
7
- data.tar.gz: e43af0607cd3ae4a1ac167691f479300c377779af3c9486582cd77e6f26d6cd022a751f076aaa6c15d913a066419a006019f89c57a8ec90d1a92b64c1faaf4df
6
+ metadata.gz: 79a3faa5ecdc6f4e91f8ec906e29d99f719928e2743496b87e546868bdb4c2ffa82f8e659d470bb43853fd6bf425e680a3d30ffa13d41ed1b5fc7e774eb44f4e
7
+ data.tar.gz: 50d7f7ada173a8f88583cad47e67396e9ce4cc18e563f44ebb87bb315795faf02e605bae4756be7c28922970576c3469c49d3ae2cbf330ee151d9e656ed81203
data/Gemfile.lock CHANGED
@@ -1,12 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- trello (0.0.2)
5
- commander
6
- configuration
7
- httparty
8
- launchy
9
- recursive-open-struct
4
+ github-trello-cl (0.0.3)
5
+ commander (~> 4.3.0)
6
+ httparty (~> 0.13.3)
7
+ launchy (~> 2.4.3)
8
+ recursive-open-struct (>= 0.5.0)
10
9
 
11
10
  GEM
12
11
  remote: https://rubygems.org/
@@ -14,7 +13,6 @@ GEM
14
13
  addressable (2.3.7)
15
14
  commander (4.3.0)
16
15
  highline (~> 1.6.11)
17
- configuration (1.3.4)
18
16
  highline (1.6.21)
19
17
  httparty (0.13.3)
20
18
  json (~> 1.8)
@@ -31,5 +29,5 @@ PLATFORMS
31
29
 
32
30
  DEPENDENCIES
33
31
  bundler (~> 1.6)
32
+ github-trello-cl!
34
33
  rake (~> 10.3.1)
35
- trello!
data/lib/trello.rb CHANGED
@@ -4,10 +4,15 @@ require 'launchy'
4
4
  require 'recursive-open-struct'
5
5
  require 'trello/constants'
6
6
  require 'trello/helpers'
7
+ require 'trello/trello_config'
8
+ require 'trello/api/all'
9
+ require 'trello/core_ext/string'
7
10
 
8
11
  module Trello
9
12
  class Main
10
13
  include Commander::Methods
14
+ include Helpers
15
+ include TrelloConfig
11
16
 
12
17
  def run
13
18
  program :name, "Trello"
@@ -17,8 +22,13 @@ module Trello
17
22
  command :init do |c|
18
23
  c.syntax = 'trello init'
19
24
  c.description = 'Generates a default config file for the Trello CLI so it can be used in this directory.'
25
+ c.option '--force', 'Overwrites an existing config file.'
20
26
  c.action do |args, options|
21
- FileUtils.cp(File.join(Helpers::root, '.trelloconfig.default'), './.trelloconfig')
27
+ if File.exist? CONFIG_FILE_NAME && !options.force
28
+ abort "Config file already exists. Run 'trello init -f' to overwrite it."
29
+ end
30
+
31
+ FileUtils.cp(File.join(root, '.trelloconfig.default'), "./#{CONFIG_FILE_NAME}")
22
32
  say "Created .trelloconfig in this directory."
23
33
  end
24
34
  end
@@ -30,27 +40,26 @@ module Trello
30
40
  trello_config = {base_url: "https://api.trello.com/1/"}
31
41
  trello_config[:api_key] = ask("API key?")
32
42
 
33
- url = "https://trello.com/1/authorize?key=#{trello_config[:api_key]}&name=Your+Application&expiration=never&response_type=token&scope=read,write"
34
43
  puts "Requesting access to this application..."
35
44
  sleep(0.5)
36
- Launchy.open(url)
45
+ Launchy.open("https://trello.com/1/authorize?key=#{trello_config[:api_key]}&name=Your+Application&expiration=never&response_type=token&scope=read,write")
37
46
  sleep(0.5)
38
47
  trello_config[:token] = ask("What was the token?")
39
48
 
40
- trello_config[:board_id] = Helpers::prompt_for("Which board should the API reference? (ID)") do
41
- result = Helpers::make_trello_api_call(:get, "members/me", key: trello_config[:api_key], token: trello_config[:token], boards: 'open')['boards']
49
+ trello_config[:board_id] = prompt_from_options("Which board should the API reference? (ID)") do
50
+ result = Api::Trello.make_call(:get, "members/me", key: trello_config[:api_key], token: trello_config[:token], boards: 'open')['boards']
42
51
 
43
52
  result.map do |board|
44
53
  {id: board['id'], name: board['name']}
45
54
  end
46
55
  end
47
56
 
48
- lists_resp = Helpers::make_trello_api_call(:get, "boards/#{trello_config[:board_id]}", key: trello_config[:api_key], token: trello_config[:token], lists: 'open')
57
+ lists_resp = Api::Trello.make_call(:get, "boards/#{trello_config[:board_id]}", {key: trello_config[:api_key], token: trello_config[:token], lists: 'open'})
49
58
  lists = lists_resp['lists'].map do |list|
50
59
  {id: list['id'], name: list['name']}
51
60
  end
52
61
 
53
- trello_config[:pending_columns] = Helpers::prompt_for_array("Which lists hold pending tasks? (ID,ID)") { lists }
62
+ trello_config[:pending_columns] = prompt_for_list_from_options("Which lists hold pending tasks? (ID,ID)") { lists }
54
63
 
55
64
  {
56
65
  in_development_column: "Which column represents tasks in development? (ID)",
@@ -58,7 +67,7 @@ module Trello
58
67
  approved_merged_column: "Which column represents tasks approved/merged to staging? (ID)",
59
68
  deployed_column: "Which column represents tasks deployed to production? (ID)"
60
69
  }.each do |field, message|
61
- trello_config[field] = Helpers::prompt_for(message) { lists }
70
+ trello_config[field] = prompt_from_options(message) { lists }
62
71
  end
63
72
 
64
73
  config_file = {
@@ -67,7 +76,7 @@ module Trello
67
76
 
68
77
  puts "Saving to config.json..."
69
78
 
70
- Helpers::write_json_to_file(config_file, './config.json')
79
+ write_json_to_file(config_file, './config.json')
71
80
  end
72
81
  end
73
82
 
@@ -75,31 +84,51 @@ module Trello
75
84
  c.syntax = 'trello config --<field> value'
76
85
  c.description = 'Configure options for the integration'
77
86
  c.option '--user USERNAME', 'Configures the user\'s Trello username (required)'
78
- c.option '--prefix initials', 'Initials to prepend to new branch names, e.g. \'[initials]-branch-name\''
87
+ c.option '--key APIKEY', 'Configures the user\'s API key for access to the API backend'
88
+ c.option '--url PATH', 'Configures the path to this trello CL\'s API backend'
79
89
  c.action do |args, options|
80
- if options.user
81
- response = Helpers::make_trello_api_call(:get, "members/#{options.user}", {fields: :none},
82
- not_found: "Couldn't find user #{options.user}.")
83
- Helpers::config.user = response['id']
84
- end
90
+ unless [options.user, options.url, options.key].all?(&:nil?)
91
+ if options.user
92
+ response = Api::Trello.make_call(:get, "members/#{options.user}", {fields: :none})
93
+ config.user = response['id']
94
+ end
95
+
96
+ if options.url
97
+ config.url = format_api_url(options.url)
98
+ end
85
99
 
86
- Helpers::config.prefix = options.prefix if options.prefix
100
+ if options.key
101
+ config.api_key = options.key
102
+ end
87
103
 
88
- Helpers::save_config
104
+ puts "Config updated."
105
+ save_config
106
+ else
107
+ puts config.to_hash.to_yaml
108
+ end
89
109
  end
90
110
  end
91
111
 
92
112
  command :tasks do |c|
93
113
  c.syntax = 'trello tasks [status]'
94
- c.description = 'Shows tasks assigned to the configured user. If status is provided, shows tasks with the given status'
114
+ c.description = 'Shows tasks assigned to the configured user. If status is provided, shows tasks with the given status. Available statuses are pending, in_development, in_review, and approved.'
95
115
  c.option '--all', 'Shows all tasks with the provided status, regardless of assignee'
96
116
  c.action do |args, options|
97
- user = options.all ? nil : Helpers::config['user']
98
-
99
117
  status = args[0] || 'pending'
100
118
 
101
- response = Helpers::make_integration_api_call(:get, "cards/#{status}", {},
102
- bad_request: "Could not find lists for status #{status}.")
119
+ unless options.all
120
+ user_check
121
+ end
122
+
123
+ user = options.all ? nil : config['user']
124
+
125
+ response = Api::Integration.make_call(:get, "cards/#{status}", {})
126
+
127
+ all_cards = response.map{|list| list['cards']}.flatten
128
+
129
+ if (all_cards.length == 0) || (user && all_cards.select{|card| card['idMembers'].include?(user)}.length == 0)
130
+ abort "Found no cards."
131
+ end
103
132
 
104
133
  enable_paging
105
134
  response.each do |list|
@@ -126,21 +155,19 @@ module Trello
126
155
  c.description = "Marks the specified card as 'in development' on Trello and associates the specified branch with the card."
127
156
  c.option '--no-branch', 'Starts the card without creating a new branch.'
128
157
  c.action do |args, options|
129
- user = Helpers::config['user']
130
- unless user
131
- abort "You don't have a username configured - set one up so you can be assigned to cards"
132
- end
158
+ card_number, branch = args
159
+
160
+ user_check
133
161
 
134
- unless args[1] || options['no-branch']
162
+ user = config['user']
163
+
164
+ unless branch || options['no-branch']
135
165
  abort 'You need a branch name. To start this card without a branch, set the --no-branch flag (-n).'
136
166
  end
137
167
 
138
- branch = Helpers::config['prefix'] ? "#{Helpers::config['prefix']}-#{args[1]}" : args[1]
139
-
140
- response = Helpers::make_integration_api_call(:post, "cards/#{args[0]}/start", {user: user, branch: branch},
141
- not_found: "Could not find card #{args[0]}.")
168
+ response = Api::Integration.make_call(:post, "cards/#{card_number}/start", {user: user, branch: branch})
142
169
 
143
- say "Started card '#{response.parsed_response['name']}' with branch #{branch}."
170
+ say response.parsed_response
144
171
  end
145
172
  end
146
173
 
@@ -0,0 +1,3 @@
1
+ require 'trello/api/base'
2
+ require 'trello/api/integration'
3
+ require 'trello/api/trello'
@@ -0,0 +1,19 @@
1
+ require 'httparty'
2
+
3
+ module Trello
4
+ module Api
5
+ class Base
6
+ class << self
7
+ def make_call(method, url, body, headers)
8
+ result = HTTParty.public_send(method, url, body: body, headers: headers)
9
+
10
+ unless result.success?
11
+ abort "#{result.code} error: #{result.body}"
12
+ end
13
+
14
+ result
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,17 @@
1
+ module Trello
2
+ module Api
3
+ class Integration < Base
4
+ class << self
5
+ include TrelloConfig
6
+ def default_headers
7
+ {'Authorization' => "token #{config.api_key}"}
8
+ end
9
+
10
+ def make_call(method, endpoint, body = {}, headers = {})
11
+ param_check 'url', "You need to specify where your API backend is hosted with 'trello config --url <API URL>'."
12
+ super(method, "#{config['url']}#{endpoint}", body, headers.merge(default_headers))
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,10 @@
1
+ module Trello
2
+ module Api
3
+ class Trello < Base
4
+ include TrelloConfig
5
+ def self.make_call(method, endpoint, body = {}, headers = {})
6
+ super(method, "https://api.trello.com/1/#{endpoint}", body, headers)
7
+ end
8
+ end
9
+ end
10
+ end
@@ -1,9 +1 @@
1
- CONFIG_FILE_NAME = '.trelloconfig'
2
- # API_BASE_PATH = "https://trello.bookbub.com/api/"
3
- API_BASE_PATH = "http://trellobub.herokuapp.com/"
4
- DEFAULT_ERROR_MESSAGES = {
5
- bad_request: "Invalid request.",
6
- auth: "Failed to authenticate.",
7
- not_found: "Couldn't find the site.",
8
- server_error: "Something broke in the server."
9
- }
1
+ CONFIG_FILE_NAME = '.trelloconfig'
@@ -0,0 +1,9 @@
1
+ class String
2
+ def to_i
3
+ begin
4
+ Integer(self || '')
5
+ rescue ArgumentError
6
+ nil
7
+ end
8
+ end
9
+ end
@@ -1,119 +1,64 @@
1
1
  module Trello
2
2
  module Helpers
3
- class << self
4
- def root
5
- File.dirname __dir__
6
- end
7
-
8
- def make_api_call(method, url, body, errors = {})
9
- api_errors = DEFAULT_ERROR_MESSAGES.merge(errors)
10
- result = HTTParty.public_send(method, url, body: body)
11
-
12
- unless result.success?
13
- bad_response_msg = case result.code
14
- when 400
15
- api_errors[:bad_request]
16
- when 401
17
- api_errors[:auth]
18
- when 404
19
- api_errors[:not_found]
20
- when 500
21
- api_errors[:server_error]
22
- else
23
- "No message for error #{result.code}, message returned was #{result.inspect}"
24
- end
25
-
26
- abort bad_response_msg
27
- end
28
-
29
- result
30
- end
31
-
32
- def make_trello_api_call(method, endpoint, body, errors = {})
33
- trello_errors = {
34
- bad_request: "Authentication failed with token #{body[:token]}",
35
- not_found: "Could not find Trello server - are you online?",
36
- server_error: "Something blew up."
37
- }.merge(errors)
38
-
39
- make_api_call(method, "https://api.trello.com/1/#{endpoint}", body, trello_errors)
40
- end
3
+ def root
4
+ File.dirname __dir__
5
+ end
41
6
 
42
- def make_integration_api_call(method, endpoint, body, errors = {})
43
- make_api_call(method, "#{API_BASE_PATH}#{endpoint}", body, errors)
7
+ def format_api_url(url)
8
+ url = 'http://' + url unless url.start_with?('http://')
9
+ url += '/' unless url.end_with?('/')
10
+ begin
11
+ # ensure it's a valid url before returning
12
+ URI.parse(url).to_s
13
+ rescue
14
+ abort "#{url} is not a valid URL."
44
15
  end
16
+ end
45
17
 
46
- def to_i(str)
47
- begin
48
- Integer(str || '')
49
- rescue ArgumentError
50
- nil
51
- end
52
- end
18
+ def user_check
19
+ param_check('user', "No user defined! Specify a user with trello config --user <username>.")
20
+ end
53
21
 
54
- def config
55
- begin
56
- @config ||= RecursiveOpenStruct.new(YAML.load_file(CONFIG_FILE_NAME))
57
- rescue
58
- abort "Could not load config - run 'trello init' to generate a config file."
59
- end
22
+ def prompt_for_list_from_options(prompt_message)
23
+ var = nil
24
+ options = yield
25
+ options.each_with_index do |opt, i|
26
+ puts "#{i}: #{opt[:name]}"
60
27
  end
61
-
62
- def user_check
63
- unless config['user']
64
- abort "No user defined! Specify a user with trello config --user <username>."
28
+ until var
29
+ response = ask(prompt_message).split(',').map(&:to_i)
30
+ if response.all?{|id| id && options[id] }
31
+ var = options.values_at(*response).map{|option| option[:id]}
32
+ else
33
+ bad_options = response.select{|id| !(id && options[id])}
34
+ puts "Invalid options #{bad_options.join(', ')}. Please give numbers between 0 and #{options.length} separated by commas."
65
35
  end
66
36
  end
67
37
 
68
- def save_config
69
- File.open(CONFIG_FILE_NAME, 'w') {|f| f.write config.to_hash.to_yaml }
70
- end
38
+ var
39
+ end
71
40
 
72
- def generate_branch(name, type)
73
- prefix = config.name_prefix ? "#{config.name_prefix}-" : ''
74
- try_external_command "git flow #{type} start #{prefix}#{name}"
41
+ def prompt_from_options(prompt_message)
42
+ var = nil
43
+ options = yield
44
+ options.each_with_index do |opt, i|
45
+ puts "#{i}: #{opt[:name]}"
75
46
  end
76
-
77
- def prompt_for_array(prompt_message)
78
- var = nil
79
- options = yield
80
- options.each_with_index do |opt, i|
81
- puts "#{i}: #{opt[:name]}"
82
- end
83
- until var
84
- response = ask(prompt_message).split(',').map{|resp| to_i(resp)}
85
- if response.all?{|id| id && options[id] }
86
- var = options.values_at(*response).map{|option| option[:id]}
87
- else
88
- puts "Invalid array indices"
89
- end
47
+ until var
48
+ response = to_i(ask(prompt_message))
49
+ if response && options[response]
50
+ var = options[response][:id]
51
+ else
52
+ say "Invalid option - please give a number between 0 and #{options.length}."
90
53
  end
91
-
92
- var
93
54
  end
94
55
 
95
- def prompt_for(prompt_message)
96
- var = nil
97
- options = yield
98
- options.each_with_index do |opt, i|
99
- puts "#{i}: #{opt[:name]}"
100
- end
101
- until var
102
- response = to_i(ask(prompt_message))
103
- if response && options[response]
104
- var = options[response][:id]
105
- else
106
- say "Invalid array index"
107
- end
108
- end
109
-
110
- var
111
- end
56
+ var
57
+ end
112
58
 
113
- def write_json_to_file(hash, filename)
114
- puts hash
115
- File.open(filename, 'w') {|f| f.write JSON.pretty_generate(hash)}
116
- end
59
+ def write_json_to_file(hash, filename)
60
+ puts hash
61
+ File.open(filename, 'w') {|f| f.write JSON.pretty_generate(hash)}
117
62
  end
118
63
  end
119
64
  end
@@ -0,0 +1,41 @@
1
+ module Trello
2
+ module TrelloConfig
3
+ def config
4
+ @config ||= load_config
5
+ end
6
+
7
+ def save_config
8
+ # need to fetch the config first to make sure its directory is properly defined
9
+ current_config = config
10
+ File.open("#{@config_dir}/#{CONFIG_FILE_NAME}" || CONFIG_FILE_NAME, 'w') {|f| f.write current_config.to_hash.to_yaml }
11
+ end
12
+
13
+ def param_check(field, message)
14
+ unless config[field]
15
+ abort message
16
+ end
17
+ end
18
+
19
+ def __config_dir__
20
+ @config_dir
21
+ end
22
+
23
+ protected
24
+
25
+ def load_config
26
+ begin
27
+ config = RecursiveOpenStruct.new(YAML.load_file("./#{CONFIG_FILE_NAME}"))
28
+ @config_dir = Dir.pwd
29
+ return config
30
+ rescue
31
+ if Dir.pwd == '/'
32
+ abort "No #{CONFIG_FILE_NAME} file found in this directory tree. Run 'trello init' to generate one."
33
+ else
34
+ Dir.chdir('..') do
35
+ return load_config
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
data/trello.gemspec CHANGED
@@ -2,7 +2,7 @@ $LOAD_PATH << File.expand_path('../lib', __FILE__)
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'github-trello-cl'
5
- s.version = '0.0.3'
5
+ s.version = '0.1.0'
6
6
  s.date = '2015-02-23'
7
7
  s.summary = "Interface with trello"
8
8
  s.description = "A tool to allow people using Trello as a workflow to interface with it via command line access to an API"
@@ -11,14 +11,13 @@ Gem::Specification.new do |s|
11
11
  s.files = `git ls-files -z`.split("\x0")
12
12
  s.require_paths = ["lib"]
13
13
  s.executables = ["trello"]
14
- s.homepage = 'http://rubygems.org/gems/trello'
14
+ s.homepage = 'http://rubygems.org/gems/github-trello-cl'
15
15
 
16
16
  s.add_development_dependency 'bundler', '~> 1.6'
17
17
  s.add_development_dependency 'rake', '~> 10.3.1'
18
18
 
19
- s.add_runtime_dependency 'commander'
20
- s.add_runtime_dependency 'httparty'
21
- s.add_runtime_dependency 'configuration'
22
- s.add_runtime_dependency 'launchy'
23
- s.add_runtime_dependency 'recursive-open-struct'
19
+ s.add_runtime_dependency 'commander', '~> 4.3.0'
20
+ s.add_runtime_dependency 'httparty', '~> 0.13.3'
21
+ s.add_runtime_dependency 'launchy', '~> 2.4.3'
22
+ s.add_runtime_dependency 'recursive-open-struct', '>= 0.5.0'
24
23
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github-trello-cl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Pletcher
@@ -14,100 +14,86 @@ dependencies:
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.6'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: 10.3.1
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 10.3.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: commander
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 4.3.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 4.3.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: httparty
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: 0.13.3
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: configuration
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - '>='
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - '>='
81
- - !ruby/object:Gem::Version
82
- version: '0'
68
+ version: 0.13.3
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: launchy
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
- - - '>='
73
+ - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: '0'
75
+ version: 2.4.3
90
76
  type: :runtime
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
- - - '>='
80
+ - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: '0'
82
+ version: 2.4.3
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: recursive-open-struct
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
- - - '>='
87
+ - - ">="
102
88
  - !ruby/object:Gem::Version
103
- version: '0'
89
+ version: 0.5.0
104
90
  type: :runtime
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
- - - '>='
94
+ - - ">="
109
95
  - !ruby/object:Gem::Version
110
- version: '0'
96
+ version: 0.5.0
111
97
  description: A tool to allow people using Trello as a workflow to interface with it
112
98
  via command line access to an API
113
99
  email: steve@steve-pletcher.com
@@ -116,7 +102,7 @@ executables:
116
102
  extensions: []
117
103
  extra_rdoc_files: []
118
104
  files:
119
- - .gitignore
105
+ - ".gitignore"
120
106
  - Gemfile
121
107
  - Gemfile.lock
122
108
  - README.md
@@ -124,10 +110,16 @@ files:
124
110
  - bin/trello
125
111
  - lib/.trelloconfig.default
126
112
  - lib/trello.rb
113
+ - lib/trello/api/all.rb
114
+ - lib/trello/api/base.rb
115
+ - lib/trello/api/integration.rb
116
+ - lib/trello/api/trello.rb
127
117
  - lib/trello/constants.rb
118
+ - lib/trello/core_ext/string.rb
128
119
  - lib/trello/helpers.rb
120
+ - lib/trello/trello_config.rb
129
121
  - trello.gemspec
130
- homepage: http://rubygems.org/gems/trello
122
+ homepage: http://rubygems.org/gems/github-trello-cl
131
123
  licenses: []
132
124
  metadata: {}
133
125
  post_install_message:
@@ -136,17 +128,17 @@ require_paths:
136
128
  - lib
137
129
  required_ruby_version: !ruby/object:Gem::Requirement
138
130
  requirements:
139
- - - '>='
131
+ - - ">="
140
132
  - !ruby/object:Gem::Version
141
133
  version: '0'
142
134
  required_rubygems_version: !ruby/object:Gem::Requirement
143
135
  requirements:
144
- - - '>='
136
+ - - ">="
145
137
  - !ruby/object:Gem::Version
146
138
  version: '0'
147
139
  requirements: []
148
140
  rubyforge_project:
149
- rubygems_version: 2.0.14
141
+ rubygems_version: 2.2.2
150
142
  signing_key:
151
143
  specification_version: 4
152
144
  summary: Interface with trello