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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1d962aaf2bd0300d2f3c236b25c2cbf83386e4df
4
- data.tar.gz: 2531b68b68cca106199fe8a67a109592be872676
3
+ metadata.gz: 71f6b09f2ca0702e6b5da1b5cdc4c57f821693ae
4
+ data.tar.gz: 0c331cbdd03ed9d05837514c982b00123a920e70
5
5
  SHA512:
6
- metadata.gz: 5db03831b1fcb8a6a52a6311fe01bcd1c7936f0cbbca35a1d206d5eb3881227170ea358941c1acc69e924b4c46bfae090cad08ec3c1299be66b06a76e263c93d
7
- data.tar.gz: 975295024b3e3c8dbdf391c417ce84727335b4485956311a77287c35c3f177e78d86f33dd9f4e0e81417b927a2de280dcb968dd2084538a682210151e461fd9a
6
+ metadata.gz: 389e36e9f3842479d1ce2a5c151924257467906da8de6bc683101b356e0e7292372f304d1b1477baded707206c2366e3820ef7c397ebe401d42e6c35fa89c735
7
+ data.tar.gz: fd009a0330451f30bbe952a60ab4ac5798f00dce0ca560161aaae49d8191542d3f1c167755817ee92d56408f5d2f8c0cc70cc541e5dcf1f9f7a7f36c1abc5ddb
data/README.md CHANGED
@@ -1,8 +1,6 @@
1
1
  # SlackTrello
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/slack_trello`. To experiment with that code, run `bin/console` for an interactive prompt.
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
- TODO: Write usage instructions here
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/work_command"
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; class TextParser
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(" ")
@@ -1,3 +1,3 @@
1
1
  module SlackTrello
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -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
- create_trello_card
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
- Speaker.new(
25
- {
26
- webhook_url: webhook_url,
27
- channel: parser.channel_name,
28
- username: parser.user_name
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 trello_board
34
- @trello_board ||= Trello::Board.all.find do |b|
35
- b.name.downcase == trello_board_name.downcase
36
- end
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 trello_list
40
- @trello_list ||= trello_board.lists.find do |l|
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
- size = "(UNSIZED)"
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.6
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-05-25 00:00:00.000000000 Z
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.0.0
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.