slack_trello 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -17
- data/lib/slack_trello.rb +6 -3
- data/lib/slack_trello/create_trello_card.rb +38 -0
- data/lib/slack_trello/text_parser.rb +1 -8
- data/lib/slack_trello/version.rb +1 -1
- data/lib/slack_trello/work_command.rb +20 -35
- data/slack_trello.gemspec +2 -4
- metadata +46 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 71f6b09f2ca0702e6b5da1b5cdc4c57f821693ae
|
4
|
+
data.tar.gz: 0c331cbdd03ed9d05837514c982b00123a920e70
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 389e36e9f3842479d1ce2a5c151924257467906da8de6bc683101b356e0e7292372f304d1b1477baded707206c2366e3820ef7c397ebe401d42e6c35fa89c735
|
7
|
+
data.tar.gz: fd009a0330451f30bbe952a60ab4ac5798f00dce0ca560161aaae49d8191542d3f1c167755817ee92d56408f5d2f8c0cc70cc541e5dcf1f9f7a7f36c1abc5ddb
|
data/README.md
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# SlackTrello
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
TODO: Delete this and the text above, and describe your gem
|
3
|
+
The slack_trello gem makes it easy to parse POST requests sent to a Ruby application by the Slack API. The gem is geared towards making Trello cards based on Slack POST requests, but the core modules and classes are generic and can be repourposed for other tasks as well.
|
6
4
|
|
7
5
|
## Installation
|
8
6
|
|
@@ -22,18 +20,5 @@ Or install it yourself as:
|
|
22
20
|
|
23
21
|
## Usage
|
24
22
|
|
25
|
-
|
26
|
-
|
27
|
-
## Development
|
28
|
-
|
29
|
-
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
|
30
|
-
|
31
|
-
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
32
|
-
|
33
|
-
## Contributing
|
23
|
+
The [slack-responder](https://github.com/medivo/slack-responder) Rails application includes the slack_trello gem and demonstrates how a Rails application that responds to Slack POST requests can be set up. Cloning the slack-responder application is the easiest way to get up-and-running with the slack_trello gem.
|
34
24
|
|
35
|
-
1. Fork it ( https://github.com/[my-github-username]/slack_trello/fork )
|
36
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
37
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
38
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
39
|
-
5. Create a new Pull Request
|
data/lib/slack_trello.rb
CHANGED
@@ -1,11 +1,14 @@
|
|
1
|
+
require "active_support/core_ext/string"
|
1
2
|
require "slack-notifier"
|
2
3
|
|
3
4
|
require "slack_trello/version"
|
4
|
-
require "slack_trello/response_parser"
|
5
5
|
require "slack_trello/text_parser"
|
6
|
-
require "slack_trello/
|
6
|
+
require "slack_trello/response_parser"
|
7
|
+
|
8
|
+
require "slack_trello/create_trello_card"
|
7
9
|
require "slack_trello/speaker"
|
8
10
|
|
11
|
+
require "slack_trello/work_command"
|
12
|
+
|
9
13
|
module SlackTrello
|
10
|
-
# Your code goes here...
|
11
14
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module SlackTrello; class CreateTrelloCard
|
2
|
+
|
3
|
+
attr_reader :board_name, :list_name, :card_name
|
4
|
+
|
5
|
+
def initialize(args)
|
6
|
+
@board_name = args.fetch(:board_name)
|
7
|
+
@list_name = args.fetch(:list_name)
|
8
|
+
@card_name = args.fetch(:card_name)
|
9
|
+
end
|
10
|
+
|
11
|
+
def card
|
12
|
+
return @card if @card
|
13
|
+
@card = Trello::Card.new
|
14
|
+
@card.name = card_name
|
15
|
+
@card.list_id = trello_list.id
|
16
|
+
@card.save
|
17
|
+
end
|
18
|
+
|
19
|
+
def trello_board
|
20
|
+
@trello_board ||= Trello::Board.all.find do |b|
|
21
|
+
spaceify(b.name) == spaceify(board_name)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def trello_list
|
26
|
+
@trello_list ||= trello_board.lists.find do |l|
|
27
|
+
spaceify(l.name) == spaceify(list_name)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def spaceify(str)
|
34
|
+
str.gsub(/-|_/, " ").downcase
|
35
|
+
end
|
36
|
+
|
37
|
+
end; end
|
38
|
+
|
@@ -1,11 +1,4 @@
|
|
1
|
-
module SlackTrello;
|
2
|
-
|
3
|
-
attr_reader :text
|
4
|
-
|
5
|
-
def initialize(text, options = {})
|
6
|
-
@text = text
|
7
|
-
@required_arguments = options.fetch(:required_arguments, nil)
|
8
|
-
end
|
1
|
+
module SlackTrello; module TextParser
|
9
2
|
|
10
3
|
def args
|
11
4
|
matched_text[1].strip.split(" ")
|
data/lib/slack_trello/version.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
module SlackTrello; class WorkCommand
|
2
2
|
|
3
|
-
attr_accessor :trello_card
|
4
|
-
|
5
3
|
attr_reader :parser, :webhook_url
|
6
4
|
|
7
5
|
def initialize(args, webhook_url)
|
@@ -10,10 +8,10 @@ module SlackTrello; class WorkCommand
|
|
10
8
|
end
|
11
9
|
|
12
10
|
def run
|
13
|
-
return board_not_found_message unless trello_board
|
14
|
-
return list_not_found_message unless trello_list
|
11
|
+
return board_not_found_message unless trello_card_creator.trello_board
|
12
|
+
return list_not_found_message unless trello_card_creator.trello_list
|
15
13
|
|
16
|
-
|
14
|
+
trello_card
|
17
15
|
speaker.speak success_message
|
18
16
|
"You should see a notification with a link. If not, the card might not have been created."
|
19
17
|
end
|
@@ -21,25 +19,25 @@ module SlackTrello; class WorkCommand
|
|
21
19
|
private
|
22
20
|
|
23
21
|
def speaker
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
)
|
22
|
+
args = {
|
23
|
+
webhook_url: webhook_url,
|
24
|
+
channel: parser.channel_name,
|
25
|
+
username: parser.user_name
|
26
|
+
}
|
27
|
+
Speaker.new(args)
|
31
28
|
end
|
32
29
|
|
33
|
-
def
|
34
|
-
|
35
|
-
|
36
|
-
|
30
|
+
def trello_card_creator
|
31
|
+
args = {
|
32
|
+
board_name: trello_board_name,
|
33
|
+
list_name: "From Chat",
|
34
|
+
card_name: card_title
|
35
|
+
}
|
36
|
+
@trello_card_creator ||= CreateTrelloCard.new(args)
|
37
37
|
end
|
38
38
|
|
39
|
-
def
|
40
|
-
|
41
|
-
l.name == "From Chat"
|
42
|
-
end
|
39
|
+
def trello_card
|
40
|
+
trello_card_creator.card
|
43
41
|
end
|
44
42
|
|
45
43
|
def trello_board_name
|
@@ -59,21 +57,8 @@ module SlackTrello; class WorkCommand
|
|
59
57
|
end
|
60
58
|
|
61
59
|
def card_title
|
62
|
-
|
63
|
-
title = parser.text.strip
|
64
|
-
tag = "{tag???}"
|
65
|
-
[size, title, tag].join(" ")
|
66
|
-
end
|
67
|
-
|
68
|
-
def create_trello_card
|
69
|
-
card = Trello::Card.new
|
70
|
-
card.name = card_title
|
71
|
-
card.list_id = trello_list.id
|
72
|
-
card.save
|
73
|
-
card.due = Time.now + 30.days
|
74
|
-
card.pos = "bottom"
|
75
|
-
card.save
|
76
|
-
self.trello_card = card
|
60
|
+
"(UNSIZED) #{parser.text.strip} {tag???}"
|
77
61
|
end
|
78
62
|
|
79
63
|
end; end
|
64
|
+
|
data/slack_trello.gemspec
CHANGED
@@ -19,12 +19,10 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
if spec.respond_to?(:metadata)
|
23
|
-
spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com' to prevent pushes to rubygems.org, or delete to allow pushes to any server."
|
24
|
-
end
|
25
|
-
|
26
22
|
spec.add_development_dependency "bundler", "~> 1.8"
|
27
23
|
spec.add_development_dependency "rake", "~> 10.0"
|
24
|
+
spec.add_development_dependency "pry"
|
25
|
+
spec.add_development_dependency "rspec"
|
28
26
|
spec.add_dependency "ruby-trello"
|
29
27
|
spec.add_dependency "slack-notifier"
|
30
28
|
end
|
metadata
CHANGED
@@ -1,69 +1,97 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slack_trello
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Powers
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
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.8'
|
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.8'
|
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.0'
|
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.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: pry
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
41
69
|
- !ruby/object:Gem::Dependency
|
42
70
|
name: ruby-trello
|
43
71
|
requirement: !ruby/object:Gem::Requirement
|
44
72
|
requirements:
|
45
|
-
- -
|
73
|
+
- - ">="
|
46
74
|
- !ruby/object:Gem::Version
|
47
75
|
version: '0'
|
48
76
|
type: :runtime
|
49
77
|
prerelease: false
|
50
78
|
version_requirements: !ruby/object:Gem::Requirement
|
51
79
|
requirements:
|
52
|
-
- -
|
80
|
+
- - ">="
|
53
81
|
- !ruby/object:Gem::Version
|
54
82
|
version: '0'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: slack-notifier
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
58
86
|
requirements:
|
59
|
-
- -
|
87
|
+
- - ">="
|
60
88
|
- !ruby/object:Gem::Version
|
61
89
|
version: '0'
|
62
90
|
type: :runtime
|
63
91
|
prerelease: false
|
64
92
|
version_requirements: !ruby/object:Gem::Requirement
|
65
93
|
requirements:
|
66
|
-
- -
|
94
|
+
- - ">="
|
67
95
|
- !ruby/object:Gem::Version
|
68
96
|
version: '0'
|
69
97
|
description: Helper methods to effectively use Slack & Trello with your team's Scrum
|
@@ -74,9 +102,9 @@ executables: []
|
|
74
102
|
extensions: []
|
75
103
|
extra_rdoc_files: []
|
76
104
|
files:
|
77
|
-
- .gitignore
|
78
|
-
- .rspec
|
79
|
-
- .travis.yml
|
105
|
+
- ".gitignore"
|
106
|
+
- ".rspec"
|
107
|
+
- ".travis.yml"
|
80
108
|
- Gemfile
|
81
109
|
- LICENSE.txt
|
82
110
|
- README.md
|
@@ -84,6 +112,7 @@ files:
|
|
84
112
|
- bin/console
|
85
113
|
- bin/setup
|
86
114
|
- lib/slack_trello.rb
|
115
|
+
- lib/slack_trello/create_trello_card.rb
|
87
116
|
- lib/slack_trello/response_parser.rb
|
88
117
|
- lib/slack_trello/speaker.rb
|
89
118
|
- lib/slack_trello/text_parser.rb
|
@@ -93,26 +122,24 @@ files:
|
|
93
122
|
homepage: https://github.com/MrPowers/slack_trello
|
94
123
|
licenses:
|
95
124
|
- MIT
|
96
|
-
metadata:
|
97
|
-
allowed_push_host: 'TODO: Set to ''http://mygemserver.com'' to prevent pushes to
|
98
|
-
rubygems.org, or delete to allow pushes to any server.'
|
125
|
+
metadata: {}
|
99
126
|
post_install_message:
|
100
127
|
rdoc_options: []
|
101
128
|
require_paths:
|
102
129
|
- lib
|
103
130
|
required_ruby_version: !ruby/object:Gem::Requirement
|
104
131
|
requirements:
|
105
|
-
- -
|
132
|
+
- - ">="
|
106
133
|
- !ruby/object:Gem::Version
|
107
134
|
version: '0'
|
108
135
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
136
|
requirements:
|
110
|
-
- -
|
137
|
+
- - ">="
|
111
138
|
- !ruby/object:Gem::Version
|
112
139
|
version: '0'
|
113
140
|
requirements: []
|
114
141
|
rubyforge_project:
|
115
|
-
rubygems_version: 2.
|
142
|
+
rubygems_version: 2.2.2
|
116
143
|
signing_key:
|
117
144
|
specification_version: 4
|
118
145
|
summary: Using Slack slash commands to make cards on Trello boards.
|