github-trello-cl 0.0.3 → 0.1.0

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.
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