ezlinkedin 0.4.2 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 026514954030db6836bac2efd36665279e3f3c3e
4
- data.tar.gz: ad1c5b6f9db60dcbcffc3858657e799abc6f9717
3
+ metadata.gz: 2fad8964262cf88a3f1256749ca8a883f88495e5
4
+ data.tar.gz: 055e3da775bdd9af13d2037e3789a92d3512779b
5
5
  SHA512:
6
- metadata.gz: fc0bf270a371ce6d82bba6a1c983dcb233cb024844768280aad2b9595cdfb7940a0d7dd957428270c70b7165daaec6a9d9d340b1b6cca588d0391f935cad1dac
7
- data.tar.gz: 87ec5eb125cc43d65dc446394598143770a30ac507f7a00000bb321822ca6bcd2f18ff60fb32b1bb6596dc1523db8ce14b5684bdd9b313fb5407c35948989a2d
6
+ metadata.gz: 38198a60608cb378749ec6042f6f12aec0fdab1e717137b90d2d75a26b45a01caaebbd6177b8a087e4ae3c42d274b6fc91bc42ef9a2fdf9e8a8cee7871252e09
7
+ data.tar.gz: 1bf2f9f87b46a5502bd4e0daac4c45279ce93ba2824c3d1f70334100c6dca3b022bfb5a4f888396d98c5c408881b5b3696d02ade72ffd021dd08ed5e21357242
data/.gitignore CHANGED
@@ -1,5 +1,6 @@
1
1
  *~
2
2
  *.*~
3
+ *.swp
3
4
  *.gem
4
5
  *.rbc
5
6
  .bundle
data/README.md CHANGED
@@ -5,7 +5,7 @@ A simple way to make calls on Linkedin's API. NOTE: It is not yet completed and
5
5
  This is heavily inspired and influenced by the [pengwynn/linkedin](https://github.com/pengwynn/linkedin) gem. I was having issues with his gem though and there is very little documentation for using it so I decided to redo it myself in order to:
6
6
  * Make it work for what I needed
7
7
  * Add precise and useful documentation
8
- * contribute a bit more robust ruby wrapper for Linkedin's API
8
+ * learn the api
9
9
 
10
10
  Most of the tests are from pengwynn's gem
11
11
 
@@ -33,7 +33,7 @@ require 'ezlinkedin'
33
33
  # Create a client
34
34
  linkedin = EzLinkedin::Client.new("API KEY", "SECRET KEY", options) # options are the typical OAuth consumer options
35
35
  linkedin.authorize("access_token", "access_token_secret") # tokens obtained from omniauth
36
-
36
+
37
37
  linkedin.profile(id: 1234, fields: ['name', 'email']
38
38
  linkedin.connections(count: 30)
39
39
  linkedin.network_updates(types: [:shar, :prfx, :conn], count: 50)
@@ -44,8 +44,18 @@ linkedin.post_share({:comment => "I'm a comment",
44
44
  :submitted_image_url => "http..." },
45
45
  :visibility => { :code => "anyone"} })
46
46
  ```
47
- Currently, one can post shares, retrieve updates, user profile, and connections.
48
-
47
+ Currently, one can:
48
+ * post shares
49
+ * retrieve network updates, user profile, and connections
50
+ * search for companies
51
+ * use the company and people search api
52
+
53
+ ## TODO
54
+
55
+ I'd really like to include the facets capabilities in the search because it would really boost search efficiency.
56
+
57
+ This gem fits the purposes I had for it and I'm satisfied. Besides implementing Faceted search, I don't plan on implementing other features at this point. But feel free to contribute
58
+
49
59
  ## Contributing
50
60
 
51
61
  1. Fork it
data/ezlinkedin.gemspec CHANGED
@@ -27,6 +27,6 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency "rspec", '~> 2.6'
28
28
  spec.add_development_dependency 'guard'
29
29
  spec.add_development_dependency 'guard-rspec'
30
- spec.add_development_dependency 'rb-inotify'
30
+ spec.add_development_dependency 'terminal-notifier-guard'
31
31
  spec.add_development_dependency "webmock", '~> 1.11.0'
32
32
  end
@@ -45,7 +45,7 @@ module EzLinkedin
45
45
  # Do a company search based on id, email, or universal-name
46
46
  # @param options={} [Hash] parameters to search by, includes:
47
47
  # id, universal-name(pass it in as :name), email-domain(:domain).
48
- # options can also include a string array of fields to return. See
48
+ # The 'fields' option only works if you search with an id. See
49
49
  # the linkedin api for available fields
50
50
  #
51
51
  # @return [Mash] Mash hash of results
@@ -164,4 +164,4 @@ module EzLinkedin
164
164
  end
165
165
 
166
166
  end
167
- end
167
+ end
@@ -6,16 +6,21 @@ module EzLinkedin
6
6
  # @param options [Hash or String] Hash of search criteria or
7
7
  # a string of keyword(s).
8
8
  # In order to specify fields for a resource(companies or people):
9
- # pass in the fields as a hash of arrays.
10
- # client.search(:people => ['id', 'first-name'], fields: ['num-results'])
11
- # client.search(:companies => ['id', 'name'])
9
+ # pass in the fields as a hash of arrays with the type of search as the key.
10
+ # In this context, regular 'fields' key is for field pertaining to the search
11
+ # and not the resource being searched on.
12
+ # client.search(:people => ['id', 'first-name'], fields: ['num-results'], first_name: 'bob')
13
+ # client.search(:company => ['id', 'name'], keywords: 'stuff')
12
14
  # @param type="people" [String or symbol] :people or :company search?
13
15
  #
14
16
  # @return [Mash] hash of results
15
17
  def search(options, type="people")
16
- path = "/#{type.to_s}-search"
17
-
18
+ path = "/#{type.to_s}-search"
18
19
  if options.is_a?(Hash)
20
+ if options.has_key? :company
21
+ type = 'company'
22
+ end
23
+ path = "/#{type.to_s}-search"
19
24
  if type_fields = options.delete(type.to_sym)
20
25
  if type != 'people'
21
26
  path += ":(companies:(#{type_fields.join(',')})#{search_fields(options)})"
@@ -55,4 +60,4 @@ module EzLinkedin
55
60
  key.gsub("_", "-")
56
61
  end
57
62
  end
58
- end
63
+ end
@@ -1,3 +1,3 @@
1
1
  module Ezlinkedin
2
- VERSION = "0.4.2"
2
+ VERSION = "0.5.2"
3
3
  end
data/spec/api_spec.rb CHANGED
@@ -35,16 +35,6 @@ describe EzLinkedin::Api do
35
35
  client.network_updates(types: [:shar], count: 5, scope: 'self').should be_an_instance_of(EzLinkedin::Mash)
36
36
  end
37
37
 
38
- # it "should be able to view network_update's comments" do
39
- # stub_request(:get, "https://api.linkedin.com/v1/people/~/network/updates/key=network_update_key/update-comments").to_return(:body => "{}")
40
- # client.share_comments("network_update_key").should be_an_instance_of(EzLinkedin::Mash)
41
- # end
42
-
43
- # it "should be able to view network_update's likes" do
44
- # stub_request(:get, "https://api.linkedin.com/v1/people/~/network/updates/key=network_update_key/likes").to_return(:body => "{}")
45
- # client.share_likes("network_update_key").should be_an_instance_of(EzLinkedin::Mash)
46
- # end
47
- #
48
38
  it "should be able to search with a keyword if given a String" do
49
39
  stub_request(:get, "https://api.linkedin.com/v1/people-search?keywords=business").to_return(:body => "{}")
50
40
  client.search("business").should be_an_instance_of(EzLinkedin::Mash)
@@ -64,7 +54,7 @@ describe EzLinkedin::Api do
64
54
  it "should be able to search companies" do
65
55
  stub_request(:get, "https://api.linkedin.com/v1/company-search:(companies:(id,name),num-results)?keywords=apple").to_return(
66
56
  :body => "{}")
67
- client.search({:keywords => "apple", :company => ["id", "name"], :fields => ['num-results']}, "company").should be_an_instance_of(EzLinkedin::Mash)
57
+ client.search({:keywords => "apple", :company => ["id", "name"], :fields => ['num-results']}).should be_an_instance_of(EzLinkedin::Mash)
68
58
  end
69
59
 
70
60
  it "should be able to post a share" do
@@ -74,39 +64,7 @@ it "should be able to search companies" do
74
64
  response.code.should == "201"
75
65
  end
76
66
 
77
- # it "should be able to comment on network update" do
78
- # stub_request(:post, "https://api.linkedin.com/v1/people/~/network/updates/key=SOMEKEY/update-comments").to_return(
79
- # :body => "", :status => 201)
80
- # response = client.update_comment('SOMEKEY', "Testing, 1, 2, 3")
81
- # response.body.should == nil
82
- # response.code.should == "201"
83
- # end
84
- #
85
- # it "should be able to send a message" do
86
- # stub_request(:post, "https://api.linkedin.com/v1/people/~/mailbox").to_return(:body => "", :status => 201)
87
- # response = client.send_message("subject", "body", ["recip1", "recip2"])
88
- # response.body.should == nil
89
- # response.code.should == "201"
90
- # end
91
- #
92
- # it "should be able to like a network update" do
93
- # stub_request(:put, "https://api.linkedin.com/v1/people/~/network/updates/key=SOMEKEY/is-liked").
94
- # with(:body => "true").to_return(:body => "", :status => 201)
95
- # response = client.like_share('SOMEKEY')
96
- # response.body.should == nil
97
- # response.code.should == "201"
98
- # end
99
- #
100
- # it "should be able to unlike a network update" do
101
- # stub_request(:put, "https://api.linkedin.com/v1/people/~/network/updates/key=SOMEKEY/is-liked").
102
- # with(:body => "false").to_return(:body => "", :status => 201)
103
- # response = client.unlike_share('SOMEKEY')
104
- # response.body.should == nil
105
- # response.code.should == "201"
106
- # end
107
- #
108
67
  context "Company API" do
109
- # use_vcr_cassette
110
68
 
111
69
  it "should be able to view a company profile" do
112
70
  stub_request(:get, "https://api.linkedin.com/v1/companies/1586").to_return(:body => "{}")
@@ -123,17 +81,6 @@ it "should be able to search companies" do
123
81
  client.company(:domain => 'acme.com').should be_an_instance_of(EzLinkedin::Mash)
124
82
  end
125
83
 
126
- # it "should load correct company data" do
127
- # client.company(:id => 1586).name.should == "Amazon"
128
-
129
- # data = client.company(:id => 1586, :fields => %w{ id name industry locations:(address:(city state country-code) is-headquarters) employee-count-range })
130
- # data.id.should == 1586
131
- # data.name.should == "Amazon"
132
- # data.employee_count_range.name.should == "10001+"
133
- # data.industry.should == "Internet"
134
- # data.locations.all[0].address.city.should == "Seattle"
135
- # data.locations.all[0].is_headquarters.should == true
136
- # end
137
84
  end
138
85
 
139
86
  context "Group API" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ezlinkedin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - akonwi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-11 00:00:00.000000000 Z
11
+ date: 2013-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oauth
@@ -137,7 +137,7 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: rb-inotify
140
+ name: terminal-notifier-guard
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - '>='