hey 1.0.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 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