flowdock 0.1.5 → 0.1.6
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.
- data/Gemfile +4 -3
- data/README.md +47 -0
- data/VERSION +1 -1
- data/flowdock.gemspec +18 -15
- data/lib/flowdock.rb +13 -9
- metadata +84 -115
- data/README +0 -49
data/Gemfile
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
# Add dependencies required to use your gem here.
|
3
3
|
|
4
|
-
gem "httparty", "~>0.7
|
4
|
+
gem "httparty", "~> 0.7"
|
5
5
|
|
6
6
|
# Add dependencies to develop your gem here.
|
7
7
|
# Include everything needed to run rake, tests, features, etc.
|
8
8
|
group :development do
|
9
9
|
gem "rdoc", ">= 2.4.2"
|
10
|
-
gem "rspec", "~> 2.6
|
10
|
+
gem "rspec", "~> 2.6"
|
11
11
|
gem "webmock"
|
12
|
-
gem "bundler", "~> 1.0
|
12
|
+
gem "bundler", "~> 1.0"
|
13
13
|
gem "jeweler", "~> 1.6.4"
|
14
|
+
gem "jruby-openssl", :platforms => :jruby
|
14
15
|
end
|
data/README.md
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# Flowdock
|
2
|
+
|
3
|
+
Ruby Gem for using the Flowdock API.
|
4
|
+
|
5
|
+
http://www.flowdock.com/api
|
6
|
+
|
7
|
+
## Build Status
|
8
|
+
|
9
|
+
[](http://travis-ci.org/flowdock/flowdock-api)
|
10
|
+
|
11
|
+
flowdock gem is tested on Ruby 1.8.7, 1.9.3 and JRuby.
|
12
|
+
|
13
|
+
## Requirements
|
14
|
+
|
15
|
+
* HTTParty
|
16
|
+
|
17
|
+
## Installing
|
18
|
+
|
19
|
+
gem install flowdock
|
20
|
+
|
21
|
+
If you're using JRuby, you'll also need to install jruby-openssl gem.
|
22
|
+
|
23
|
+
## Example
|
24
|
+
|
25
|
+
require 'rubygems'
|
26
|
+
require 'flowdock'
|
27
|
+
|
28
|
+
# create a new Flow object with target flow's api token and sender information
|
29
|
+
flow = Flowdock::Flow.new(:api_token => "56188e2003e370c6efa9711988f7bf02",
|
30
|
+
:source => "myapp",
|
31
|
+
:from => {:name => "John Doe", :address => "john.doe@example.com"})
|
32
|
+
|
33
|
+
# send message to the flow
|
34
|
+
flow.send_message(:subject => "Greetings from Flowdock API Gem!",
|
35
|
+
:content => "<h2>It works!</h2><p>Now you can start developing your awesome application for Flowdock.</p>",
|
36
|
+
:tags => ["cool", "stuff"], :link => "http://www.flowdock.com/")
|
37
|
+
|
38
|
+
## API methods
|
39
|
+
|
40
|
+
* Flow methods
|
41
|
+
|
42
|
+
*send_message(params)* - Send message to flow. See [API documentation](http://www.flowdock.com/help/api_documentation) for details.
|
43
|
+
|
44
|
+
|
45
|
+
## Copyright
|
46
|
+
|
47
|
+
Copyright (c) 2011 Flowdock Ltd. See MIT-LICENSE for further details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.6
|
data/flowdock.gemspec
CHANGED
@@ -5,14 +5,14 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "flowdock"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Antti Pitk\
|
12
|
-
s.date = "2011-
|
11
|
+
s.authors = ["Antti Pitk\u{e4}nen"]
|
12
|
+
s.date = "2011-12-15"
|
13
13
|
s.email = "team@flowdock.com"
|
14
14
|
s.extra_rdoc_files = [
|
15
|
-
"README"
|
15
|
+
"README.md"
|
16
16
|
]
|
17
17
|
s.files = [
|
18
18
|
".document",
|
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
".travis.yml",
|
21
21
|
"Gemfile",
|
22
22
|
"MIT-LICENSE",
|
23
|
-
"README",
|
23
|
+
"README.md",
|
24
24
|
"Rakefile",
|
25
25
|
"VERSION",
|
26
26
|
"flowdock.gemspec",
|
@@ -32,34 +32,37 @@ Gem::Specification.new do |s|
|
|
32
32
|
s.homepage = "http://github.com/flowdock/flowdock-api"
|
33
33
|
s.licenses = ["MIT"]
|
34
34
|
s.require_paths = ["lib"]
|
35
|
-
s.rubygems_version = "1.8.
|
35
|
+
s.rubygems_version = "1.8.11"
|
36
36
|
s.summary = "Ruby Gem for using Flowdock's API"
|
37
37
|
|
38
38
|
if s.respond_to? :specification_version then
|
39
39
|
s.specification_version = 3
|
40
40
|
|
41
41
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
42
|
-
s.add_runtime_dependency(%q<httparty>, ["~> 0.7
|
42
|
+
s.add_runtime_dependency(%q<httparty>, ["~> 0.7"])
|
43
43
|
s.add_development_dependency(%q<rdoc>, [">= 2.4.2"])
|
44
|
-
s.add_development_dependency(%q<rspec>, ["~> 2.6
|
44
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.6"])
|
45
45
|
s.add_development_dependency(%q<webmock>, [">= 0"])
|
46
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.0
|
46
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0"])
|
47
47
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
48
|
+
s.add_development_dependency(%q<jruby-openssl>, [">= 0"])
|
48
49
|
else
|
49
|
-
s.add_dependency(%q<httparty>, ["~> 0.7
|
50
|
+
s.add_dependency(%q<httparty>, ["~> 0.7"])
|
50
51
|
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
51
|
-
s.add_dependency(%q<rspec>, ["~> 2.6
|
52
|
+
s.add_dependency(%q<rspec>, ["~> 2.6"])
|
52
53
|
s.add_dependency(%q<webmock>, [">= 0"])
|
53
|
-
s.add_dependency(%q<bundler>, ["~> 1.0
|
54
|
+
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
54
55
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
56
|
+
s.add_dependency(%q<jruby-openssl>, [">= 0"])
|
55
57
|
end
|
56
58
|
else
|
57
|
-
s.add_dependency(%q<httparty>, ["~> 0.7
|
59
|
+
s.add_dependency(%q<httparty>, ["~> 0.7"])
|
58
60
|
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
59
|
-
s.add_dependency(%q<rspec>, ["~> 2.6
|
61
|
+
s.add_dependency(%q<rspec>, ["~> 2.6"])
|
60
62
|
s.add_dependency(%q<webmock>, [">= 0"])
|
61
|
-
s.add_dependency(%q<bundler>, ["~> 1.0
|
63
|
+
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
62
64
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
65
|
+
s.add_dependency(%q<jruby-openssl>, [">= 0"])
|
63
66
|
end
|
64
67
|
end
|
65
68
|
|
data/lib/flowdock.rb
CHANGED
@@ -12,27 +12,27 @@ module Flowdock
|
|
12
12
|
# Required options keys: :api_token, :source, :from => { :name, :address }
|
13
13
|
def initialize(options = {})
|
14
14
|
@api_token = options[:api_token]
|
15
|
-
raise InvalidParameterError, "Flow must have :api_token attribute" if @api_token
|
15
|
+
raise InvalidParameterError, "Flow must have :api_token attribute" if blank?(@api_token)
|
16
16
|
|
17
17
|
@source = options[:source]
|
18
|
-
raise InvalidParameterError, "Flow must have valid :source attribute, only alphanumeric characters and underscores can be used" if @source
|
18
|
+
raise InvalidParameterError, "Flow must have valid :source attribute, only alphanumeric characters and underscores can be used" if blank?(@source) || !@source.match(/^[a-z0-9\-_ ]+$/i)
|
19
19
|
|
20
20
|
@project = options[:project]
|
21
|
-
raise InvalidParameterError, "Optional attribute :project can only contain alphanumeric characters and underscores" if
|
21
|
+
raise InvalidParameterError, "Optional attribute :project can only contain alphanumeric characters and underscores" if !blank?(@project) && !@project.match(/^[a-z0-9\-_ ]+$/i)
|
22
22
|
|
23
23
|
@from = options[:from] || {}
|
24
24
|
end
|
25
25
|
|
26
26
|
def send_message(params)
|
27
|
-
raise InvalidParameterError, "Message must have both :subject and :content" if params[:subject]
|
27
|
+
raise InvalidParameterError, "Message must have both :subject and :content" if blank?(params[:subject]) || blank?(params[:content])
|
28
28
|
|
29
29
|
from = (params[:from].kind_of?(Hash)) ? params[:from] : @from
|
30
|
-
raise InvalidParameterError, "Flow's :from attribute must have :address attribute" if from[:address]
|
30
|
+
raise InvalidParameterError, "Flow's :from attribute must have :address attribute" if blank?(from[:address])
|
31
31
|
|
32
32
|
tags = (params[:tags].kind_of?(Array)) ? params[:tags] : []
|
33
|
-
tags.reject! { |tag| !tag.kind_of?(String) ||
|
33
|
+
tags.reject! { |tag| !tag.kind_of?(String) || blank?(tag) }
|
34
34
|
|
35
|
-
link = (!params[:link]
|
35
|
+
link = (!blank?(params[:link])) ? params[:link] : nil
|
36
36
|
|
37
37
|
params = {
|
38
38
|
:source => @source,
|
@@ -43,8 +43,8 @@ module Flowdock
|
|
43
43
|
:content => params[:content],
|
44
44
|
}
|
45
45
|
params[:tags] = tags.join(",") if tags.size > 0
|
46
|
-
params[:project] = @project unless @project
|
47
|
-
params[:link] = link unless
|
46
|
+
params[:project] = @project unless blank?(@project)
|
47
|
+
params[:link] = link unless blank?(link)
|
48
48
|
|
49
49
|
# Send the request
|
50
50
|
resp = self.class.post(get_flowdock_api_url, :body => params)
|
@@ -53,6 +53,10 @@ module Flowdock
|
|
53
53
|
end
|
54
54
|
|
55
55
|
private
|
56
|
+
|
57
|
+
def blank?(var)
|
58
|
+
var.nil? || var.respond_to?(:length) && var.length == 0
|
59
|
+
end
|
56
60
|
|
57
61
|
def get_flowdock_api_url
|
58
62
|
"#{FLOWDOCK_API_URL}/#{@api_token}"
|
metadata
CHANGED
@@ -1,131 +1,106 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: flowdock
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.6
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 5
|
10
|
-
version: 0.1.5
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
13
|
-
-
|
7
|
+
authors:
|
8
|
+
- Antti Pitkänen
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
12
|
+
date: 2011-12-15 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: httparty
|
16
|
+
requirement: &70113891234820 !ruby/object:Gem::Requirement
|
23
17
|
none: false
|
24
|
-
requirements:
|
18
|
+
requirements:
|
25
19
|
- - ~>
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
|
28
|
-
|
29
|
-
- 0
|
30
|
-
- 7
|
31
|
-
- 8
|
32
|
-
version: 0.7.8
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0.7'
|
22
|
+
type: :runtime
|
33
23
|
prerelease: false
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
24
|
+
version_requirements: *70113891234820
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rdoc
|
27
|
+
requirement: &70113891234340 !ruby/object:Gem::Requirement
|
39
28
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
hash: 27
|
44
|
-
segments:
|
45
|
-
- 2
|
46
|
-
- 4
|
47
|
-
- 2
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
48
32
|
version: 2.4.2
|
49
|
-
prerelease: false
|
50
|
-
name: rdoc
|
51
|
-
version_requirements: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
33
|
type: :development
|
54
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
-
none: false
|
56
|
-
requirements:
|
57
|
-
- - ~>
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
hash: 23
|
60
|
-
segments:
|
61
|
-
- 2
|
62
|
-
- 6
|
63
|
-
- 0
|
64
|
-
version: 2.6.0
|
65
34
|
prerelease: false
|
35
|
+
version_requirements: *70113891234340
|
36
|
+
- !ruby/object:Gem::Dependency
|
66
37
|
name: rspec
|
67
|
-
|
68
|
-
- !ruby/object:Gem::Dependency
|
69
|
-
type: :development
|
70
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
38
|
+
requirement: &70113891256300 !ruby/object:Gem::Requirement
|
71
39
|
none: false
|
72
|
-
requirements:
|
73
|
-
- -
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
|
76
|
-
|
77
|
-
- 0
|
78
|
-
version: "0"
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '2.6'
|
44
|
+
type: :development
|
79
45
|
prerelease: false
|
46
|
+
version_requirements: *70113891256300
|
47
|
+
- !ruby/object:Gem::Dependency
|
80
48
|
name: webmock
|
81
|
-
|
82
|
-
- !ruby/object:Gem::Dependency
|
83
|
-
type: :development
|
84
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
49
|
+
requirement: &70113891255820 !ruby/object:Gem::Requirement
|
85
50
|
none: false
|
86
|
-
requirements:
|
87
|
-
- -
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
|
90
|
-
|
91
|
-
- 1
|
92
|
-
- 0
|
93
|
-
- 0
|
94
|
-
version: 1.0.0
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
95
56
|
prerelease: false
|
57
|
+
version_requirements: *70113891255820
|
58
|
+
- !ruby/object:Gem::Dependency
|
96
59
|
name: bundler
|
97
|
-
|
98
|
-
|
60
|
+
requirement: &70113891255320 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ~>
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '1.0'
|
99
66
|
type: :development
|
100
|
-
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *70113891255320
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: jeweler
|
71
|
+
requirement: &70113891254840 !ruby/object:Gem::Requirement
|
101
72
|
none: false
|
102
|
-
requirements:
|
73
|
+
requirements:
|
103
74
|
- - ~>
|
104
|
-
- !ruby/object:Gem::Version
|
105
|
-
hash: 7
|
106
|
-
segments:
|
107
|
-
- 1
|
108
|
-
- 6
|
109
|
-
- 4
|
75
|
+
- !ruby/object:Gem::Version
|
110
76
|
version: 1.6.4
|
77
|
+
type: :development
|
111
78
|
prerelease: false
|
112
|
-
|
113
|
-
|
79
|
+
version_requirements: *70113891254840
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: jruby-openssl
|
82
|
+
requirement: &70113891254300 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *70113891254300
|
114
91
|
description:
|
115
92
|
email: team@flowdock.com
|
116
93
|
executables: []
|
117
|
-
|
118
94
|
extensions: []
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
files:
|
95
|
+
extra_rdoc_files:
|
96
|
+
- README.md
|
97
|
+
files:
|
123
98
|
- .document
|
124
99
|
- .rspec
|
125
100
|
- .travis.yml
|
126
101
|
- Gemfile
|
127
102
|
- MIT-LICENSE
|
128
|
-
- README
|
103
|
+
- README.md
|
129
104
|
- Rakefile
|
130
105
|
- VERSION
|
131
106
|
- flowdock.gemspec
|
@@ -134,37 +109,31 @@ files:
|
|
134
109
|
- spec/flowdock_spec.rb
|
135
110
|
- spec/spec_helper.rb
|
136
111
|
homepage: http://github.com/flowdock/flowdock-api
|
137
|
-
licenses:
|
112
|
+
licenses:
|
138
113
|
- MIT
|
139
114
|
post_install_message:
|
140
115
|
rdoc_options: []
|
141
|
-
|
142
|
-
require_paths:
|
116
|
+
require_paths:
|
143
117
|
- lib
|
144
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
118
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
145
119
|
none: false
|
146
|
-
requirements:
|
147
|
-
- -
|
148
|
-
- !ruby/object:Gem::Version
|
149
|
-
|
150
|
-
segments:
|
120
|
+
requirements:
|
121
|
+
- - ! '>='
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
segments:
|
151
125
|
- 0
|
152
|
-
|
153
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
126
|
+
hash: -3297680785137403890
|
127
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
128
|
none: false
|
155
|
-
requirements:
|
156
|
-
- -
|
157
|
-
- !ruby/object:Gem::Version
|
158
|
-
|
159
|
-
segments:
|
160
|
-
- 0
|
161
|
-
version: "0"
|
129
|
+
requirements:
|
130
|
+
- - ! '>='
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
162
133
|
requirements: []
|
163
|
-
|
164
134
|
rubyforge_project:
|
165
|
-
rubygems_version: 1.8.
|
135
|
+
rubygems_version: 1.8.11
|
166
136
|
signing_key:
|
167
137
|
specification_version: 3
|
168
138
|
summary: Ruby Gem for using Flowdock's API
|
169
139
|
test_files: []
|
170
|
-
|
data/README
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
flowdock
|
2
|
-
========
|
3
|
-
|
4
|
-
Ruby Gem for using the Flowdock API.
|
5
|
-
|
6
|
-
* http://www.flowdock.com/api
|
7
|
-
|
8
|
-
Compatibility
|
9
|
-
-------------
|
10
|
-
|
11
|
-
flowdock gem has been tested under Ruby 1.8.7.
|
12
|
-
|
13
|
-
Requirements
|
14
|
-
------------
|
15
|
-
|
16
|
-
* HTTParty
|
17
|
-
|
18
|
-
Install
|
19
|
-
-------
|
20
|
-
|
21
|
-
* gem install flowdock
|
22
|
-
|
23
|
-
Example
|
24
|
-
-------
|
25
|
-
|
26
|
-
require 'flowdock'
|
27
|
-
|
28
|
-
# create a new Flow object with target flow's api token and sender information
|
29
|
-
flow = Flowdock::Flow.new(:api_token => "56188e2003e370c6efa9711988f7bf02",
|
30
|
-
:source => "myapp",
|
31
|
-
:from => {:name => "John Doe", :address => "john.doe@yourdomain.com"})
|
32
|
-
|
33
|
-
# send message to the flow
|
34
|
-
flow.send_message(:subject => "Greetings from Flowdock API Gem!",
|
35
|
-
:content => "<h2>It works!</h2><p>Now you can start developing your awesome application for Flowdock.</p>",
|
36
|
-
:tags => ["cool", "stuff"], :link => "http://www.flowdock.com/")
|
37
|
-
|
38
|
-
API methods
|
39
|
-
-----------
|
40
|
-
|
41
|
-
* Flow methods
|
42
|
-
|
43
|
-
send_message(params) - Send message to flow. See documentation for details: http://www.flowdock.com/help/api_documentation
|
44
|
-
|
45
|
-
|
46
|
-
Copyright
|
47
|
-
---------
|
48
|
-
|
49
|
-
Copyright (c) 2011 Flowdock Ltd. See MIT-LICENSE for further details.
|