lc-api 0.8.7 → 0.8.8

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.
Files changed (3) hide show
  1. data/lib/lc-api/api.rb +5 -13
  2. data/lib/lc-api/resource.rb +25 -26
  3. metadata +1 -1
data/lib/lc-api/api.rb CHANGED
@@ -11,17 +11,9 @@ module LcApi
11
11
  end
12
12
  end
13
13
 
14
- class ResponseError < StandardError
15
- end
16
-
17
- class NotFound < ResponseError
18
- end
19
-
20
- class Forbidden < ResponseError
21
- end
22
-
23
- class InternalServerError < ResponseError
24
- end
25
-
14
+ class ResponseError < StandardError; end
15
+ class NotFound < ResponseError; end
16
+ class Forbidden < ResponseError; end
17
+ class InternalServerError < ResponseError; end
26
18
  end
27
- end
19
+ end
@@ -6,17 +6,30 @@ module LcApi
6
6
  class << self
7
7
 
8
8
  def find(id, options={})
9
- uri = member_name
9
+ uri = member_name # ie 'message'
10
10
  uri += "/#{id}" if id
11
+ puts "uri is: #{uri}"
11
12
  parse_response(API.get(uri, options))
12
13
  end
13
14
 
14
15
  def all(options={})
15
- uri = member_name
16
+ uri = member_name # get name of resource
16
17
  parse_response(API.get(uri, options), true)
17
18
  end
18
19
 
19
20
  def parse_response(response, multiple=false)
21
+ error_code_check(response)
22
+
23
+ # build a single record and return if there is only one resource (via ".find" method)
24
+ return build_record(response.parsed_response) unless multiple
25
+
26
+ # otherwise, build multiple records for multiple resources (via ".all" method)
27
+ resources = []
28
+ response.parsed_response.each { |rec| resources.push build_record(rec) }
29
+ return resources
30
+ end
31
+
32
+ def error_code_check(response)
20
33
  case response.code.to_i
21
34
  when 404
22
35
  raise LcApi::API::NotFound.new(response), "Resource was not found"
@@ -25,57 +38,43 @@ module LcApi
25
38
  when 500
26
39
  raise LcApi::API::InternalServerError.new(response), "500 Internal Server error"
27
40
  end
28
-
29
- return build_record(response.parsed_response) unless multiple
30
-
31
- resources = []
32
- response.parsed_response.each do |rec|
33
- resources.push build_record(rec)
34
- end
35
- return resources
36
41
  end
37
42
 
38
43
  def build_record(response)
39
44
  attributes = {}
40
- response.each_pair do |key, val|
41
- attributes[key] = val if @attributes.include? key
42
- end
45
+ response.each_pair { |k,v| attributes[k] = v if @attributes.include? k }
43
46
  new(attributes)
44
47
  end
45
48
 
46
49
  def member_name
47
- name.split('::').last.downcase.pluralize
50
+ name.split('::').last.downcase.pluralize # pluralize from active_support/inflector
48
51
  end
49
52
 
50
53
  def define_attribute_methods(attributes)
51
54
  @attributes = attributes
52
-
53
- @attributes.each do |name|
54
- define_method(name) { self[name] }
55
- end
55
+ @attributes.each { |name| define_method(name) { self[name] }}
56
56
  end
57
57
  end
58
58
 
59
59
  attr_accessor :attributes
60
60
 
61
61
  def initialize attributes = {}
62
+ # raise error if user attempts to initialize a Resource by calling new
62
63
  raise Error, "#{self.class} is an abstract class and cannot be instantiated" if instance_of? Resource
63
64
  @attributes = {}
64
- self.attributes = attributes
65
+ self.attributes = attributes # "attributes=" called
65
66
  end
66
67
 
67
- def [](key)
68
- @attributes[key]
68
+ def [](k) # "self[]" called externally, like so: "message.title" -- getter for keys and values (self[])
69
+ @attributes[k]
69
70
  end
70
71
 
71
- def []=(key,value)
72
- @attributes[key] = value if self.respond_to?(key)
72
+ def []=(k,v) # called internally -- setter for keys and values
73
+ @attributes[k] = v if self.respond_to?(k)
73
74
  end
74
75
 
75
76
  def attributes=(attributes = {})
76
- attributes.each_pair do |key, val|
77
- self[key] = val
78
- end
77
+ attributes.each_pair { |k, v| self[k] = v } # []= method call
79
78
  end
80
79
 
81
80
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lc-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.7
4
+ version: 0.8.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: