hey 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MTk5ZDJkMzY3ZjljZGZlOTc2OTExZjg1MDA3ZDFkM2JhY2IzZDI4NA==
5
+ data.tar.gz: !binary |-
6
+ ZjdkOWI1M2E2ODllOWNjOWM5YjZhNTQ4NDkzOTA5Zjg0ZmUzMWJmMQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ NWYzYmUwMDZjYTk5ZDJmNDlmMDA2MmUzMGRjNzg2MTk5ZmNjNjQxYmUzZWYx
10
+ NjJmZjJhOTVlZDdmNWU0YmY0NGI3MThjNDNlMTZmYjU3ZDhjY2FlMjJhYjJk
11
+ YWI2M2MxZDhkM2YxY2EyZDY3MGIyMGQ5YzAwY2U3ZWM1MjUxOTg=
12
+ data.tar.gz: !binary |-
13
+ NzEwMGE3NzJiYWVjNjYyNzA4MWYxNzA1ODdkZDc1ZjBlYzY1MTA3MWRmZmU2
14
+ MTg0ZmQyYjUxNGQ2MGUyOTM5NmU5ZDgzZjcwNzc0YTA0OTlmMGMxZTY0ZjNl
15
+ NDBhMzAwZjQ3MjBhODQ3ODdmOTJmMGY0NWJiY2Q0OTE0Nzg2NzE=
data/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # Hey
2
+
3
+ A Ruby library for sending yo's from [Yo](http://justyo.co).
4
+
5
+ [github.com/jackjennings/hey](http://github.com/jackjennings/hey)
6
+
7
+ # Installation
8
+
9
+ ```
10
+ gem install hey
11
+ ```
12
+
13
+ # Usage
14
+
15
+ ```ruby
16
+ Hey.api_token = '3858f62230ac3c915f300c664312c63f'
17
+ Hey::Yo.all
18
+
19
+ # or set api_token on a Yo instance
20
+
21
+ Hey::Yo.new(api_token: '3858f62230ac3c915f300c664312c63f').all
22
+ ```
23
+
24
+ That's it!
data/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new(:test) do |t|
5
+ t.libs = ["test", "lib"]
6
+ t.pattern = 'test/**/*_test.rb'
7
+ end
8
+
9
+ task default: :test
data/lib/hey.rb ADDED
@@ -0,0 +1,16 @@
1
+ require 'net/http'
2
+ require 'hey/yo'
3
+
4
+ module Hey
5
+
6
+ class MissingAPITokenError < StandardError; end
7
+
8
+ def self.api_token= value
9
+ @api_token = value
10
+ end
11
+
12
+ def self.api_token
13
+ @api_token
14
+ end
15
+
16
+ end
@@ -0,0 +1,3 @@
1
+ module Hey
2
+ VERSION = "1.0.0"
3
+ end
data/lib/hey/yo.rb ADDED
@@ -0,0 +1,21 @@
1
+ module Hey
2
+ class Yo
3
+
4
+ attr_accessor :api_token
5
+
6
+ def initialize options = {}
7
+ @api_token = options[:api_token] || Hey.api_token
8
+ end
9
+
10
+ def all
11
+ raise MissingAPITokenError unless @api_token
12
+ uri = URI('http://api.justyo.co/yoall')
13
+ Net::HTTP.post_form uri, api_token: api_token
14
+ end
15
+
16
+ def self.all
17
+ new.all
18
+ end
19
+
20
+ end
21
+ end
data/test/hey_test.rb ADDED
@@ -0,0 +1,17 @@
1
+ require 'test_helper'
2
+ require 'hey'
3
+
4
+ class HeyTest < Minitest::Test
5
+
6
+ def test_gets_api_token
7
+ Hey.instance_variable_set(:@api_token, 'bar')
8
+ assert Hey.respond_to?(:api_token)
9
+ assert_equal Hey.api_token, 'bar'
10
+ end
11
+
12
+ def test_sets_api_token
13
+ Hey.api_token = 'foo'
14
+ assert_equal Hey.api_token, 'foo'
15
+ end
16
+
17
+ end
@@ -0,0 +1,4 @@
1
+ require 'minitest'
2
+ require 'minitest/autorun'
3
+ require 'minitest/mock'
4
+ require 'minitest/stub_const'
data/test/yo_test.rb ADDED
@@ -0,0 +1,46 @@
1
+ require 'test_helper'
2
+ require 'hey/yo'
3
+
4
+ class YoTest < Minitest::Test
5
+
6
+ def teardown
7
+ Hey.api_token = nil
8
+ end
9
+
10
+ def test_sets_api_token_on_instance
11
+ yo = Hey::Yo.new(api_token: 'foo')
12
+ assert_equal 'foo', yo.api_token
13
+ end
14
+
15
+ def test_defaults_to_hey_api_token
16
+ Hey.api_token = 'bar'
17
+ yo = Hey::Yo.new
18
+ assert_equal 'bar', yo.api_token
19
+ end
20
+
21
+ def test_all_sends_api_request
22
+ yo = Hey::Yo.new(api_token: 'foo')
23
+ assert_sends_yo {yo.all}
24
+ end
25
+
26
+ def test_class_method_all_sends_api_request
27
+ Hey.api_token = 'foo'
28
+ assert_sends_yo {Hey::Yo.all}
29
+ end
30
+
31
+ def test_raises_no_api_token_error
32
+ Hey.api_token = nil
33
+ yo = Hey::Yo.new
34
+ assert_raises(Hey::NoAPITokenError) do
35
+ yo.all
36
+ end
37
+ end
38
+
39
+ def assert_sends_yo(&block)
40
+ mock = MiniTest::Mock.new
41
+ mock.expect(:post_form, nil, [URI, Hash])
42
+ Net.stub_const(:HTTP, mock, &block)
43
+ assert mock.verify
44
+ end
45
+
46
+ end
metadata ADDED
@@ -0,0 +1,96 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hey
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Jack Jennings
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-06-23 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '10.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '10.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '5.3'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '5.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest-stub-const
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '0.2'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '0.2'
55
+ description: Sends a yo to your yo followers
56
+ email: j@ckjennin.gs
57
+ executables: []
58
+ extensions: []
59
+ extra_rdoc_files: []
60
+ files:
61
+ - README.md
62
+ - Rakefile
63
+ - lib/hey.rb
64
+ - lib/hey/version.rb
65
+ - lib/hey/yo.rb
66
+ - test/hey_test.rb
67
+ - test/test_helper.rb
68
+ - test/yo_test.rb
69
+ homepage: https://github.com/jackjennings/hey
70
+ licenses:
71
+ - MIT
72
+ metadata: {}
73
+ post_install_message:
74
+ rdoc_options: []
75
+ require_paths:
76
+ - lib
77
+ required_ruby_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ! '>='
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ required_rubygems_version: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ requirements: []
88
+ rubyforge_project:
89
+ rubygems_version: 2.3.0
90
+ signing_key:
91
+ specification_version: 4
92
+ summary: Sends a yo
93
+ test_files:
94
+ - test/hey_test.rb
95
+ - test/test_helper.rb
96
+ - test/yo_test.rb