flowdock 0.1.4 → 0.1.5
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/.document +5 -0
- data/.travis.yml +4 -0
- data/Gemfile +11 -3
- data/Rakefile +40 -2
- data/VERSION +1 -0
- data/flowdock.gemspec +59 -17
- data/lib/flowdock.rb +1 -1
- data/lib/flowdock/capistrano.rb +3 -3
- data/spec/flowdock_spec.rb +20 -13
- data/spec/spec_helper.rb +8 -3
- metadata +80 -33
- data/.gitignore +0 -4
- data/lib/flowdock/version.rb +0 -3
data/.document
ADDED
data/.travis.yml
ADDED
data/Gemfile
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
|
+
# Add dependencies required to use your gem here.
|
2
3
|
|
3
|
-
|
4
|
-
gemspec
|
4
|
+
gem "httparty", "~>0.7.8"
|
5
5
|
|
6
|
-
gem
|
6
|
+
# Add dependencies to develop your gem here.
|
7
|
+
# Include everything needed to run rake, tests, features, etc.
|
8
|
+
group :development do
|
9
|
+
gem "rdoc", ">= 2.4.2"
|
10
|
+
gem "rspec", "~> 2.6.0"
|
11
|
+
gem "webmock"
|
12
|
+
gem "bundler", "~> 1.0.0"
|
13
|
+
gem "jeweler", "~> 1.6.4"
|
14
|
+
end
|
data/Rakefile
CHANGED
@@ -1,5 +1,43 @@
|
|
1
|
-
|
1
|
+
# encoding: utf-8
|
2
2
|
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler'
|
5
|
+
begin
|
6
|
+
Bundler.setup(:default, :development)
|
7
|
+
rescue Bundler::BundlerError => e
|
8
|
+
$stderr.puts e.message
|
9
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
+
exit e.status_code
|
11
|
+
end
|
12
|
+
require 'rake'
|
13
|
+
|
14
|
+
require 'jeweler'
|
15
|
+
Jeweler::Tasks.new do |gem|
|
16
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
+
gem.name = "flowdock"
|
18
|
+
gem.homepage = "http://github.com/flowdock/flowdock-api"
|
19
|
+
gem.license = "MIT"
|
20
|
+
gem.summary = %Q{Ruby Gem for using Flowdock's API}
|
21
|
+
gem.email = "team@flowdock.com"
|
22
|
+
gem.authors = ["Antti Pitkänen"]
|
23
|
+
# dependencies defined in Gemfile
|
24
|
+
end
|
25
|
+
Jeweler::RubygemsDotOrgTasks.new
|
26
|
+
|
27
|
+
require 'rspec/core'
|
3
28
|
require 'rspec/core/rake_task'
|
29
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
30
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
31
|
+
end
|
32
|
+
|
33
|
+
task :default => :spec
|
34
|
+
|
35
|
+
require 'rdoc/task'
|
36
|
+
RDoc::Task.new do |rdoc|
|
37
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
4
38
|
|
5
|
-
|
39
|
+
rdoc.rdoc_dir = 'rdoc'
|
40
|
+
rdoc.title = "flowdock #{version}"
|
41
|
+
rdoc.rdoc_files.include('README*')
|
42
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
43
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.5
|
data/flowdock.gemspec
CHANGED
@@ -1,23 +1,65 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
1
4
|
# -*- encoding: utf-8 -*-
|
2
|
-
$:.push File.expand_path("../lib", __FILE__)
|
3
|
-
require "flowdock/version"
|
4
5
|
|
5
6
|
Gem::Specification.new do |s|
|
6
|
-
s.name
|
7
|
-
s.
|
8
|
-
s.version = Flowdock::GEM_VERSION
|
9
|
-
s.email = ["team@flowdock.com"]
|
10
|
-
s.homepage = "https://www.flowdock.com/api"
|
11
|
-
s.summary = %q{Ruby Gem for using Flowdock's API.}
|
7
|
+
s.name = "flowdock"
|
8
|
+
s.version = "0.1.5"
|
12
9
|
|
13
|
-
s.
|
14
|
-
|
15
|
-
s.
|
16
|
-
s.
|
17
|
-
s.
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Antti Pitk\303\244nen"]
|
12
|
+
s.date = "2011-11-08"
|
13
|
+
s.email = "team@flowdock.com"
|
14
|
+
s.extra_rdoc_files = [
|
15
|
+
"README"
|
16
|
+
]
|
17
|
+
s.files = [
|
18
|
+
".document",
|
19
|
+
".rspec",
|
20
|
+
".travis.yml",
|
21
|
+
"Gemfile",
|
22
|
+
"MIT-LICENSE",
|
23
|
+
"README",
|
24
|
+
"Rakefile",
|
25
|
+
"VERSION",
|
26
|
+
"flowdock.gemspec",
|
27
|
+
"lib/flowdock.rb",
|
28
|
+
"lib/flowdock/capistrano.rb",
|
29
|
+
"spec/flowdock_spec.rb",
|
30
|
+
"spec/spec_helper.rb"
|
31
|
+
]
|
32
|
+
s.homepage = "http://github.com/flowdock/flowdock-api"
|
33
|
+
s.licenses = ["MIT"]
|
18
34
|
s.require_paths = ["lib"]
|
19
|
-
|
20
|
-
s.
|
21
|
-
|
22
|
-
s.
|
35
|
+
s.rubygems_version = "1.8.10"
|
36
|
+
s.summary = "Ruby Gem for using Flowdock's API"
|
37
|
+
|
38
|
+
if s.respond_to? :specification_version then
|
39
|
+
s.specification_version = 3
|
40
|
+
|
41
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
42
|
+
s.add_runtime_dependency(%q<httparty>, ["~> 0.7.8"])
|
43
|
+
s.add_development_dependency(%q<rdoc>, [">= 2.4.2"])
|
44
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.6.0"])
|
45
|
+
s.add_development_dependency(%q<webmock>, [">= 0"])
|
46
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
47
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
48
|
+
else
|
49
|
+
s.add_dependency(%q<httparty>, ["~> 0.7.8"])
|
50
|
+
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
51
|
+
s.add_dependency(%q<rspec>, ["~> 2.6.0"])
|
52
|
+
s.add_dependency(%q<webmock>, [">= 0"])
|
53
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
54
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
55
|
+
end
|
56
|
+
else
|
57
|
+
s.add_dependency(%q<httparty>, ["~> 0.7.8"])
|
58
|
+
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
59
|
+
s.add_dependency(%q<rspec>, ["~> 2.6.0"])
|
60
|
+
s.add_dependency(%q<webmock>, [">= 0"])
|
61
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
62
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
63
|
+
end
|
23
64
|
end
|
65
|
+
|
data/lib/flowdock.rb
CHANGED
@@ -27,7 +27,7 @@ module Flowdock
|
|
27
27
|
raise InvalidParameterError, "Message must have both :subject and :content" if params[:subject].blank? || params[:content].blank?
|
28
28
|
|
29
29
|
from = (params[:from].kind_of?(Hash)) ? params[:from] : @from
|
30
|
-
raise InvalidParameterError, "Flow's :from attribute must have
|
30
|
+
raise InvalidParameterError, "Flow's :from attribute must have :address attribute" if from[:address].blank?
|
31
31
|
|
32
32
|
tags = (params[:tags].kind_of?(Array)) ? params[:tags] : []
|
33
33
|
tags.reject! { |tag| !tag.kind_of?(String) || tag.blank? }
|
data/lib/flowdock/capistrano.rb
CHANGED
@@ -10,13 +10,13 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
10
10
|
current_branch = capture("cat #{current_path}/BRANCH").chomp rescue "master"
|
11
11
|
set :current_branch, current_branch
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
task :save_deployed_branch do
|
15
15
|
run "echo '#{source.head}' > #{current_path}/BRANCH"
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
task :set_flowdock_api do
|
19
|
-
set :rails_env, (
|
19
|
+
set :rails_env, variables.include?(:stage) ? stage : ENV['RAILS_ENV']
|
20
20
|
set :repo, Grit::Repo.new(".")
|
21
21
|
config = Grit::Config.new(repo)
|
22
22
|
set :flowdock_api, Flowdock::Flow.new(:api_token => flowdock_api_token,
|
data/spec/flowdock_spec.rb
CHANGED
@@ -7,46 +7,53 @@ describe Flowdock do
|
|
7
7
|
@flow = Flowdock::Flow.new(:api_token => "test", :source => "myapp")
|
8
8
|
}.should_not raise_error
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
it "should succeed with correct token, source and sender information" do
|
12
12
|
lambda {
|
13
13
|
@flow = Flowdock::Flow.new(:api_token => "test", :source => "myapp",
|
14
14
|
:from => {:name => "test", :address => "invalid@nodeta.fi"})
|
15
15
|
}.should_not raise_error
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
it "should succeed with correct token, sender information, source and project" do
|
19
19
|
lambda {
|
20
20
|
@flow = Flowdock::Flow.new(:api_token => "test", :source => "myapp", :project => "myproject",
|
21
21
|
:from => {:name => "test", :address => "invalid@nodeta.fi"})
|
22
22
|
}.should_not raise_error
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
|
+
it "should succeed without the optional from-name parameter" do
|
26
|
+
lambda {
|
27
|
+
@flow = Flowdock::Flow.new(:api_token => "test", :source => "myapp",
|
28
|
+
:from => {:address => "invalid@nodeta.fi"})
|
29
|
+
}.should_not raise_error
|
30
|
+
end
|
31
|
+
|
25
32
|
it "should fail without token" do
|
26
33
|
lambda {
|
27
34
|
@flow = Flowdock::Flow.new(:api_token => "", :source => "myapp")
|
28
35
|
}.should raise_error(Flowdock::Flow::InvalidParameterError)
|
29
36
|
end
|
30
|
-
|
37
|
+
|
31
38
|
it "should fail without source" do
|
32
39
|
lambda {
|
33
40
|
@flow = Flowdock::Flow.new(:api_token => "test", :source => "")
|
34
41
|
}.should raise_error(Flowdock::Flow::InvalidParameterError)
|
35
42
|
end
|
36
|
-
|
43
|
+
|
37
44
|
it "should fail when source is not alphanumeric" do
|
38
45
|
lambda {
|
39
46
|
@flow = Flowdock::Flow.new(:api_token => "test", :source => "$foobar")
|
40
47
|
}.should raise_error(Flowdock::Flow::InvalidParameterError)
|
41
48
|
end
|
42
|
-
|
49
|
+
|
43
50
|
it "should fail when project is not alphanumeric" do
|
44
51
|
lambda {
|
45
52
|
@flow = Flowdock::Flow.new(:api_token => "test", :source => "myapp", :project => "$foobar")
|
46
53
|
}.should raise_error(Flowdock::Flow::InvalidParameterError)
|
47
54
|
end
|
48
55
|
end
|
49
|
-
|
56
|
+
|
50
57
|
describe "with sending messages" do
|
51
58
|
before(:each) do
|
52
59
|
@token = "test"
|
@@ -54,26 +61,26 @@ describe Flowdock do
|
|
54
61
|
:from => {:name => "Eric Example", :address => "eric@example.com"})
|
55
62
|
@example_content = "<h1>Hello</h1>\n<p>Let's rock and roll!</p>"
|
56
63
|
end
|
57
|
-
|
64
|
+
|
58
65
|
it "should not send without subject" do
|
59
66
|
lambda {
|
60
67
|
@flow.send_message(:subject => "", :content => "Test")
|
61
68
|
}.should raise_error(Flowdock::Flow::InvalidParameterError)
|
62
69
|
end
|
63
|
-
|
70
|
+
|
64
71
|
it "should not send without content" do
|
65
72
|
lambda {
|
66
73
|
@flow.send_message(:subject => "Test", :content => "")
|
67
74
|
}.should raise_error(Flowdock::Flow::InvalidParameterError)
|
68
75
|
end
|
69
|
-
|
76
|
+
|
70
77
|
it "should not send without sender information" do
|
71
78
|
@flow = Flowdock::Flow.new(:api_token => @token, :source => "myapp")
|
72
79
|
lambda {
|
73
80
|
@flow.send_message(:subject => "Test", :content => @example_content)
|
74
81
|
}.should raise_error(Flowdock::Flow::InvalidParameterError)
|
75
82
|
end
|
76
|
-
|
83
|
+
|
77
84
|
it "should send with valid parameters and return true" do
|
78
85
|
lambda {
|
79
86
|
stub_request(:post, "#{Flowdock::FLOWDOCK_API_URL}/#{@token}").
|
@@ -94,7 +101,7 @@ describe Flowdock do
|
|
94
101
|
:tags => ["cool", "stuff"], :link => "http://www.flowdock.com/").should be_true
|
95
102
|
}.should_not raise_error
|
96
103
|
end
|
97
|
-
|
104
|
+
|
98
105
|
it "should allow overriding sender information per message" do
|
99
106
|
lambda {
|
100
107
|
stub_request(:post, "#{Flowdock::FLOWDOCK_API_URL}/#{@token}").
|
@@ -114,7 +121,7 @@ describe Flowdock do
|
|
114
121
|
:from => {:name => "Test", :address => "invalid@nodeta.fi"}).should be_true
|
115
122
|
}.should_not raise_error
|
116
123
|
end
|
117
|
-
|
124
|
+
|
118
125
|
it "should raise error if backend returns anything but 200 OK" do
|
119
126
|
lambda {
|
120
127
|
stub_request(:post, "#{Flowdock::FLOWDOCK_API_URL}/#{@token}").
|
data/spec/spec_helper.rb
CHANGED
@@ -1,9 +1,14 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
|
+
require 'rspec'
|
3
4
|
require 'webmock/rspec'
|
4
5
|
|
5
6
|
require 'flowdock'
|
6
7
|
|
8
|
+
# Requires supporting files with custom matchers and macros, etc,
|
9
|
+
# in ./support/ and its subdirectories.
|
10
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
11
|
+
|
7
12
|
RSpec.configure do |config|
|
8
|
-
|
13
|
+
|
9
14
|
end
|
metadata
CHANGED
@@ -1,25 +1,24 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flowdock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 5
|
10
|
+
version: 0.1.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
|
-
-
|
13
|
+
- "Antti Pitk\xC3\xA4nen"
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-11-08 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
22
|
-
prerelease: false
|
21
|
+
type: :runtime
|
23
22
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
23
|
none: false
|
25
24
|
requirements:
|
@@ -31,12 +30,44 @@ dependencies:
|
|
31
30
|
- 7
|
32
31
|
- 8
|
33
32
|
version: 0.7.8
|
34
|
-
|
33
|
+
prerelease: false
|
34
|
+
name: httparty
|
35
35
|
version_requirements: *id001
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
|
-
|
38
|
-
prerelease: false
|
37
|
+
type: :development
|
39
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 27
|
44
|
+
segments:
|
45
|
+
- 2
|
46
|
+
- 4
|
47
|
+
- 2
|
48
|
+
version: 2.4.2
|
49
|
+
prerelease: false
|
50
|
+
name: rdoc
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
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
|
+
prerelease: false
|
66
|
+
name: rspec
|
67
|
+
version_requirements: *id003
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
type: :development
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
40
71
|
none: false
|
41
72
|
requirements:
|
42
73
|
- - ">="
|
@@ -45,49 +76,66 @@ dependencies:
|
|
45
76
|
segments:
|
46
77
|
- 0
|
47
78
|
version: "0"
|
48
|
-
type: :development
|
49
|
-
version_requirements: *id002
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: webmock
|
52
79
|
prerelease: false
|
53
|
-
|
80
|
+
name: webmock
|
81
|
+
version_requirements: *id004
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
type: :development
|
84
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
54
85
|
none: false
|
55
86
|
requirements:
|
56
87
|
- - ~>
|
57
88
|
- !ruby/object:Gem::Version
|
58
|
-
hash:
|
89
|
+
hash: 23
|
59
90
|
segments:
|
60
91
|
- 1
|
61
|
-
- 6
|
62
92
|
- 0
|
63
|
-
|
93
|
+
- 0
|
94
|
+
version: 1.0.0
|
95
|
+
prerelease: false
|
96
|
+
name: bundler
|
97
|
+
version_requirements: *id005
|
98
|
+
- !ruby/object:Gem::Dependency
|
64
99
|
type: :development
|
65
|
-
|
100
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
101
|
+
none: false
|
102
|
+
requirements:
|
103
|
+
- - ~>
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
hash: 7
|
106
|
+
segments:
|
107
|
+
- 1
|
108
|
+
- 6
|
109
|
+
- 4
|
110
|
+
version: 1.6.4
|
111
|
+
prerelease: false
|
112
|
+
name: jeweler
|
113
|
+
version_requirements: *id006
|
66
114
|
description:
|
67
|
-
email:
|
68
|
-
- team@flowdock.com
|
115
|
+
email: team@flowdock.com
|
69
116
|
executables: []
|
70
117
|
|
71
118
|
extensions: []
|
72
119
|
|
73
|
-
extra_rdoc_files:
|
74
|
-
|
120
|
+
extra_rdoc_files:
|
121
|
+
- README
|
75
122
|
files:
|
76
|
-
- .
|
123
|
+
- .document
|
77
124
|
- .rspec
|
125
|
+
- .travis.yml
|
78
126
|
- Gemfile
|
79
127
|
- MIT-LICENSE
|
80
128
|
- README
|
81
129
|
- Rakefile
|
130
|
+
- VERSION
|
82
131
|
- flowdock.gemspec
|
83
132
|
- lib/flowdock.rb
|
84
133
|
- lib/flowdock/capistrano.rb
|
85
|
-
- lib/flowdock/version.rb
|
86
134
|
- spec/flowdock_spec.rb
|
87
135
|
- spec/spec_helper.rb
|
88
|
-
homepage:
|
89
|
-
licenses:
|
90
|
-
|
136
|
+
homepage: http://github.com/flowdock/flowdock-api
|
137
|
+
licenses:
|
138
|
+
- MIT
|
91
139
|
post_install_message:
|
92
140
|
rdoc_options: []
|
93
141
|
|
@@ -113,11 +161,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
113
161
|
version: "0"
|
114
162
|
requirements: []
|
115
163
|
|
116
|
-
rubyforge_project:
|
164
|
+
rubyforge_project:
|
117
165
|
rubygems_version: 1.8.10
|
118
166
|
signing_key:
|
119
167
|
specification_version: 3
|
120
|
-
summary: Ruby Gem for using Flowdock's API
|
121
|
-
test_files:
|
122
|
-
|
123
|
-
- spec/spec_helper.rb
|
168
|
+
summary: Ruby Gem for using Flowdock's API
|
169
|
+
test_files: []
|
170
|
+
|
data/.gitignore
DELETED
data/lib/flowdock/version.rb
DELETED