cb-api 1.1.8 → 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.
- data/lib/cb/clients/api_request.rb +13 -0
- data/lib/cb/clients/job_api.rb +0 -1
- data/lib/cb/criteria/job_details_criteria.rb +1 -2
- data/lib/cb/models/implementations/branding/media.rb +2 -1
- data/lib/cb/utils/response_array_extractor.rb +0 -10
- data/lib/cb/version.rb +1 -1
- data/lib/memory.rb +86 -0
- metadata +5 -4
data/lib/cb/clients/job_api.rb
CHANGED
@@ -2,8 +2,7 @@ module Cb
|
|
2
2
|
class JobDetailsCriteria
|
3
3
|
extend Cb::Utils::FluidAttributes
|
4
4
|
|
5
|
-
fluid_attr_accessor :did, :show_job_skin, :site_id, :lhs, :cobrand, :show_apply_requirements
|
6
|
-
:show_custom_values
|
5
|
+
fluid_attr_accessor :did, :show_job_skin, :site_id, :lhs, :cobrand, :show_apply_requirements
|
7
6
|
|
8
7
|
def find
|
9
8
|
Cb.job.find_by_criteria(self)
|
@@ -3,7 +3,7 @@ module Cb
|
|
3
3
|
|
4
4
|
class Media
|
5
5
|
|
6
|
-
attr_accessor :header, :header_type, :tablet_banner, :mobile_logo, :footer, :is_multi_video
|
6
|
+
attr_accessor :header, :header_type, :tablet_banner, :mobile_logo, :footer, :video, :is_multi_video
|
7
7
|
|
8
8
|
def initialize args = {}
|
9
9
|
@header = args['Header'] || ''
|
@@ -11,6 +11,7 @@ module Cb
|
|
11
11
|
@tablet_banner = args['TabletBanner'] || ''
|
12
12
|
@mobile_logo = args['MobileLogo'] || ''
|
13
13
|
@footer = args['Footer'] || ''
|
14
|
+
@video = args['Video'] || ''
|
14
15
|
@is_multi_video = args['IsMultiVideo'] == 'true'
|
15
16
|
end
|
16
17
|
|
@@ -15,8 +15,6 @@ module Cb
|
|
15
15
|
def extract
|
16
16
|
if response_has_collection?
|
17
17
|
extract_array_from_collection
|
18
|
-
elsif response_has_array?
|
19
|
-
build_array_from_delimited_values
|
20
18
|
else
|
21
19
|
[]
|
22
20
|
end
|
@@ -24,18 +22,10 @@ module Cb
|
|
24
22
|
|
25
23
|
private
|
26
24
|
|
27
|
-
def response_has_array?
|
28
|
-
!@response_hash[@key].nil? && @response_hash[@key].class != Hash
|
29
|
-
end
|
30
|
-
|
31
25
|
def response_has_collection?
|
32
26
|
!@response_hash[@key].nil? && !@response_hash[@key][@singular_key].nil?
|
33
27
|
end
|
34
28
|
|
35
|
-
def build_array_from_delimited_values
|
36
|
-
@response_hash[@key].split(',')
|
37
|
-
end
|
38
|
-
|
39
29
|
def extract_array_from_collection
|
40
30
|
if @response_hash[@key][@singular_key].is_a?(Array)
|
41
31
|
@response_hash[@key][@singular_key]
|
data/lib/cb/version.rb
CHANGED
data/lib/memory.rb
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
module Memory
|
2
|
+
# sizes are guessed, I was too lazy to look
|
3
|
+
# them up and then they are also platform
|
4
|
+
# dependent
|
5
|
+
REF_SIZE = 4 # ?
|
6
|
+
OBJ_OVERHEAD = 4 # ?
|
7
|
+
FIXNUM_SIZE = 4 # ?
|
8
|
+
|
9
|
+
# informational output from analysis
|
10
|
+
MemoryInfo = Struct.new :roots, :objects, :bytes, :loops
|
11
|
+
|
12
|
+
def self.analyze(*roots)
|
13
|
+
an = Analyzer.new
|
14
|
+
an.roots = roots
|
15
|
+
an.analyze
|
16
|
+
end
|
17
|
+
|
18
|
+
class Analyzer
|
19
|
+
attr_accessor :roots
|
20
|
+
attr_reader :result
|
21
|
+
|
22
|
+
def analyze
|
23
|
+
@result = MemoryInfo.new roots, 0, 0, 0
|
24
|
+
@objs = {}
|
25
|
+
|
26
|
+
queue = roots.dup
|
27
|
+
|
28
|
+
until queue.empty?
|
29
|
+
obj = queue.shift
|
30
|
+
|
31
|
+
case obj
|
32
|
+
# special treatment for some types
|
33
|
+
# some are certainly missing from this
|
34
|
+
when IO
|
35
|
+
visit(obj)
|
36
|
+
when String
|
37
|
+
visit(obj) { @result.bytes += obj.size }
|
38
|
+
when Fixnum
|
39
|
+
@result.bytes += FIXNUM_SIZE
|
40
|
+
when Array
|
41
|
+
visit(obj) do
|
42
|
+
@result.bytes += obj.size * REF_SIZE
|
43
|
+
queue.concat(obj)
|
44
|
+
end
|
45
|
+
when Hash
|
46
|
+
visit(obj) do
|
47
|
+
@result.bytes += obj.size * REF_SIZE * 2
|
48
|
+
obj.each {|k,v| queue.push(k).push(v)}
|
49
|
+
end
|
50
|
+
when Enumerable
|
51
|
+
visit(obj) do
|
52
|
+
obj.each do |o|
|
53
|
+
@result.bytes += REF_SIZE
|
54
|
+
queue.push(o)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
else
|
58
|
+
visit(obj) do
|
59
|
+
obj.instance_variables.each do |var|
|
60
|
+
@result.bytes += REF_SIZE
|
61
|
+
queue.push(obj.instance_variable_get(var))
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
@result
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
def visit(obj)
|
72
|
+
id = obj.object_id
|
73
|
+
|
74
|
+
if @objs.has_key? id
|
75
|
+
@result.loops += 1
|
76
|
+
false
|
77
|
+
else
|
78
|
+
@objs[id] = true
|
79
|
+
@result.bytes += OBJ_OVERHEAD
|
80
|
+
@result.objects += 1
|
81
|
+
yield obj if block_given?
|
82
|
+
true
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cb-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -19,7 +19,7 @@ authors:
|
|
19
19
|
autorequire:
|
20
20
|
bindir: bin
|
21
21
|
cert_chain: []
|
22
|
-
date:
|
22
|
+
date: 2014-01-08 00:00:00.000000000 Z
|
23
23
|
dependencies:
|
24
24
|
- !ruby/object:Gem::Dependency
|
25
25
|
name: httparty
|
@@ -167,6 +167,7 @@ extensions: []
|
|
167
167
|
extra_rdoc_files: []
|
168
168
|
files:
|
169
169
|
- lib/cb/clients/anon_saved_search_api.rb
|
170
|
+
- lib/cb/clients/api_request.rb
|
170
171
|
- lib/cb/clients/application_api.rb
|
171
172
|
- lib/cb/clients/application_external_api.rb
|
172
173
|
- lib/cb/clients/category_api.rb
|
@@ -226,6 +227,7 @@ files:
|
|
226
227
|
- lib/cb/utils/validator.rb
|
227
228
|
- lib/cb/version.rb
|
228
229
|
- lib/cb.rb
|
230
|
+
- lib/memory.rb
|
229
231
|
- README.md
|
230
232
|
homepage: http://api.careerbuilder.com
|
231
233
|
licenses:
|
@@ -248,9 +250,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
248
250
|
version: '0'
|
249
251
|
requirements: []
|
250
252
|
rubyforge_project:
|
251
|
-
rubygems_version: 1.8.
|
253
|
+
rubygems_version: 1.8.28
|
252
254
|
signing_key:
|
253
255
|
specification_version: 3
|
254
256
|
summary: Ruby wrapper around Careerbuilder Public API.
|
255
257
|
test_files: []
|
256
|
-
has_rdoc:
|