one-eye-eater 0.1.11 → 0.1.12

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1bd63393c74c6d9ec51fe0a27d8773ea028e9a9c
4
- data.tar.gz: 4efd474e011166f6295f35189b1dc8e63abd354d
3
+ metadata.gz: f18b160b1b24ac9dcac51807f86a4a0fe270bfd5
4
+ data.tar.gz: 49e5baeb5849b218f71cc3508a7374c63fbf3a07
5
5
  SHA512:
6
- metadata.gz: 503a66b8233ca434b6fbf25cb369c62b7c8c486a0db1f13a940c6549c88b03271b08371a91b3b2980ebda19fe80209db570dae93b3669ebe757cac8f7a307e89
7
- data.tar.gz: 4ecf97a4392e9fe9d33cd6fa868b51df263178ce7bfcb9563abf5cb8e2be9fe631ef99b4e2b2c7b249469f34e504bc7e7a15137e3be0f1ebc992e93a7db1fd6e
6
+ metadata.gz: e035a5573ee9acccf20607a54127960853d3c48cb77a4bac7fba5bb18f326849a575faa1ad4fcad642aead7d8fd8e175cf5555e6098378a7dab6938c32fefa41
7
+ data.tar.gz: d172c932586219937e943c74026eddc0a31456e2fcc2fd689b83c92addb793cc6316258b6c7e4310e5b1277b49c59ae9ef19f4f032a9c8df95310610b1003345
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.11
1
+ 0.1.12
data/lib/api.rb CHANGED
@@ -18,10 +18,23 @@ module OneEye
18
18
  OneEye::API.debug_output $stderr if options[:stop]
19
19
  end
20
20
 
21
+ def handle_errors(&block)
22
+ @response = block.call
23
+ @code_level = @response.code.to_s[0]
24
+
25
+ if @code_level == "4" || @code_level == "5"
26
+ def @response.to_hash
27
+ {:status_code => @response.code, :error => @response.message}
28
+ end
29
+ end
30
+
31
+ @response
32
+ end
33
+
21
34
  http_methods.each do |method_name|
22
35
  define_method method_name do |name, options|
23
36
  name, options = standardize_request(method_name, name, options)
24
- self.class.send method_name, name, options
37
+ handle_errors { self.class.send method_name, name, options }
25
38
  end
26
39
  end
27
40
 
data/lib/models/base.rb CHANGED
@@ -14,12 +14,15 @@ module OneEye
14
14
  self.attributes = attributes
15
15
  end
16
16
 
17
- def attributes=(attrs)
18
- begin
19
- attrs = YAML.load(attrs)
20
- rescue
17
+ def make_array_convertable(attrs)
18
+ def attrs.to_hash
19
+ Hash[self.each_slice(2).to_a]
21
20
  end
22
- attrs.each { |k, v| send "#{k}=", v }
21
+ end
22
+
23
+ def attributes=(attrs)
24
+ make_array_convertable attrs if attrs.is_a? Array
25
+ attrs.to_hash.each { |k, v| send "#{k}=", v }
23
26
  end
24
27
 
25
28
  def attributes
@@ -31,7 +34,7 @@ module OneEye
31
34
  end
32
35
 
33
36
  def self.find(attributes={})
34
- new(api.get(resources_url, attributes).parsed_response)
37
+ new(api.get(resources_url, attributes))
35
38
  end
36
39
 
37
40
  def self.where(attributes={})
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: one-eye-eater 0.1.11 ruby lib
5
+ # stub: one-eye-eater 0.1.12 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "one-eye-eater"
9
- s.version = "0.1.11"
9
+ s.version = "0.1.12"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Brett Shollenberger"]
14
- s.date = "2014-06-30"
14
+ s.date = "2014-07-01"
15
15
  s.description = "Create, read, update, and destroy Edmodo data via the One Eye API."
16
16
  s.email = "brett.shollenberger@gmail.com"
17
17
  s.extra_rdoc_files = [
@@ -1,7 +1,7 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe OneEye::Base do
4
- it "finds by id" do
4
+ it "finds by id", :find do
5
5
  expect(OneEye::District.find(21417).id).to eq(21417)
6
6
  expect(OneEye::School.find(334517).id).to eq(334517)
7
7
  expect(OneEye::User.find(34954995).id).to eq(34954995)
@@ -52,4 +52,27 @@ describe OneEye::Base do
52
52
  @user = OneEye::User.new(:id => 34954995)
53
53
  expect(@user.update(:verified_institution_member => true).verified_institution_member).to eq(true)
54
54
  end
55
+
56
+ it "handles error codes", :error_codes do
57
+ module OneEye
58
+ class Base
59
+ def self.api
60
+ OneEye::API.new "badAPIToken"
61
+ end
62
+ end
63
+ end
64
+
65
+ @user = OneEye::User.find(1)
66
+ @user.update :fun => true
67
+ expect(@user.status_code).to eq "404"
68
+
69
+ module OneEye
70
+ class Base
71
+ def self.api
72
+ OneEye::API.new
73
+ end
74
+ end
75
+ end
76
+ end
77
+
55
78
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: one-eye-eater
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.11
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Shollenberger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-30 00:00:00.000000000 Z
11
+ date: 2014-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty