event_girl_client 1.1.1 → 1.2.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 +4 -4
- data/CHANGELOG.md +5 -0
- data/bin/event_girl +2 -2
- data/lib/event_girl_client.rb +12 -4
- data/spec/client_spec.rb +34 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45d48f71187bb05f54d7234c221a05162e2867c3
|
4
|
+
data.tar.gz: 0e40be2d59046a776e3a9949b5bedef83b21bbe4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 986ef878eb244739f99301f321ae95684feae7f9e7a02898c96bdbff271776f5c08d42630e6e50c408b29ca6743831475214e758e8a1545cb6d819df2084163b
|
7
|
+
data.tar.gz: 22bfed4e7ecd0d16f5cc9d404a3be5eb1154963c3c68e7e042542cbd8a1601a9ff3044b458fe9b737c7de9b12e803de6c8ab5c4a44ebd5d6dd2fd11fd689a0c2
|
data/CHANGELOG.md
CHANGED
data/bin/event_girl
CHANGED
@@ -15,7 +15,7 @@ Version = EventGirl::Client::VERSION.dup
|
|
15
15
|
|
16
16
|
options = {}
|
17
17
|
option_parser = OptionParser.new do |opts|
|
18
|
-
opts.banner = "Usage: event_girl [options] EVENTNAME"
|
18
|
+
opts.banner = "Usage: event_girl [options] EVENTNAME OPTIONAL_DATA"
|
19
19
|
|
20
20
|
opts.separator ""
|
21
21
|
opts.separator "Options:"
|
@@ -57,7 +57,7 @@ end
|
|
57
57
|
|
58
58
|
begin
|
59
59
|
client = EventGirl::Client.new(options[:url], options[:api_token])
|
60
|
-
client.
|
60
|
+
client.send!(ARGV[0], ARGV[1])
|
61
61
|
rescue => e
|
62
62
|
puts "E: #{e.message}"
|
63
63
|
puts e.backtrace if options[:debug]
|
data/lib/event_girl_client.rb
CHANGED
@@ -6,7 +6,7 @@ require 'rubygems'
|
|
6
6
|
module EventGirl
|
7
7
|
class Client
|
8
8
|
|
9
|
-
VERSION = '1.
|
9
|
+
VERSION = '1.2.0'
|
10
10
|
|
11
11
|
# Class-wide configuration
|
12
12
|
@@api_token = nil
|
@@ -20,19 +20,27 @@ module EventGirl
|
|
20
20
|
raise ArgumentError.new('No url provided.') unless @url
|
21
21
|
end
|
22
22
|
|
23
|
+
# @deprecated Use {#send!} instead.
|
24
|
+
def send_event(*args)
|
25
|
+
send!(*args)
|
26
|
+
end
|
27
|
+
|
23
28
|
# POSTs a string to the event_girl server.
|
24
|
-
def
|
29
|
+
def send!(title, content = nil)
|
25
30
|
uri = URI.parse(url)
|
26
31
|
|
32
|
+
# Auto-correct missing trailing slash
|
33
|
+
path = uri.path == '' ? '/' : uri.path
|
34
|
+
|
27
35
|
# This is all the post request stuff.
|
28
|
-
req = Net::HTTP::Post.new(
|
36
|
+
req = Net::HTTP::Post.new(path)
|
29
37
|
|
30
38
|
# The request format and content type is json
|
31
39
|
req['Accept'] = "application/json"
|
32
40
|
req['Content-Type'] = "application/json"
|
33
41
|
|
34
42
|
# This takes the entered api token and title. This is what is sent. It is a HASH!
|
35
|
-
req.body = '{"api_token":"' + api_token + '","incoming_event":{"title":"' + title.to_s + '"}}'
|
43
|
+
req.body = '{"api_token":"' + api_token + '","incoming_event":{"title":"' + title.to_s + '","content":"' + content.to_s + '"}}'
|
36
44
|
|
37
45
|
# The request is sent via HTTP to the host and port. You also get a response
|
38
46
|
# ex: 201 (it worked)
|
data/spec/client_spec.rb
CHANGED
@@ -43,16 +43,45 @@ describe EventGirl::Client do
|
|
43
43
|
end
|
44
44
|
|
45
45
|
describe '#send_event' do
|
46
|
-
it '
|
47
|
-
expect(subject
|
46
|
+
it 'still responds to send_event' do
|
47
|
+
expect(subject).to respond_to :send_event
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'delegates to #send!' do
|
51
|
+
subject.should_receive(:send!).with('foo', 'bar')
|
52
|
+
subject.send_event('foo', 'bar')
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe '#send!' do
|
57
|
+
it 'requires the event title and supports content optionally' do
|
58
|
+
expect(subject.method(:send!).arity).to eql(-2)
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'adds a missing trailing slash' do
|
62
|
+
url = 'http://eg.example.com'
|
63
|
+
stub_request(:post, "#{url}/")
|
64
|
+
subject = described_class.new url
|
65
|
+
expect do
|
66
|
+
subject.send! ''
|
67
|
+
end.not_to raise_error
|
48
68
|
end
|
49
69
|
|
50
70
|
it 'sends json data' do
|
51
71
|
title = 'event girl test'
|
52
|
-
json = '{"api_token":"' + subject.api_token + '","incoming_event":{"title":"' + title + '"}}'
|
72
|
+
json = '{"api_token":"' + subject.api_token + '","incoming_event":{"title":"' + title + '","content":""}}'
|
73
|
+
stub_request(:post, subject.url).
|
74
|
+
with(body: json)
|
75
|
+
subject.send! title
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'allows sending of optional content' do
|
79
|
+
title = 'event girl test'
|
80
|
+
content = 'this is additional payload data'
|
81
|
+
json = '{"api_token":"' + subject.api_token + '","incoming_event":{"title":"' + title + '","content":"' + content + '"}}'
|
53
82
|
stub_request(:post, subject.url).
|
54
83
|
with(body: json)
|
55
|
-
subject.
|
84
|
+
subject.send! title, content
|
56
85
|
end
|
57
86
|
|
58
87
|
it 'sends json headers' do
|
@@ -63,7 +92,7 @@ describe EventGirl::Client do
|
|
63
92
|
'Content-Type' => 'application/json'
|
64
93
|
}
|
65
94
|
)
|
66
|
-
subject.
|
95
|
+
subject.send! 'event girl test'
|
67
96
|
end
|
68
97
|
end
|
69
98
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: event_girl_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Susanne Dewein
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-10-
|
13
|
+
date: 2013-10-08 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|