ezlinkedin 0.0.1 → 0.1.1

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: fd3bc787edf277267d4ecdf564c7afddabb8398a
4
- data.tar.gz: f9e5b890bfdd7ec4aa283c67e47e2b2371e36bca
3
+ metadata.gz: 9279206e6ac5b5b444a29ee41b4c8e398807b6db
4
+ data.tar.gz: 687d9e2396ee7cd29b9c19e2dbd8aa75995c8dfc
5
5
  SHA512:
6
- metadata.gz: 595165aee0f3d837399c8aef7ec38f1982f31d8620fb2cae076c1bcd434b83ae863dd87e5aa2cc09e5fc740c3849b11314a181b50773dfc65ad76895340c614a
7
- data.tar.gz: 7cccd7d271e2f0b7601b9f42c60fa48cebf097358103031e2d378a96d87b750331daa498c77a424cde888c0e1ee07c5fb43a5026453b301ab3be00bfaae8c1a1
6
+ metadata.gz: 2f653c3d37e99e835e6e32bb9a5c94926dfc76e59960c9a2acfefc529af5d95162ee048db5402e18bce0d513b068794e0896604ebfee88a29c9a89ff467b6fec
7
+ data.tar.gz: 18dc467e7e54300d7e1ac240bd3c886b3082ee7d16bb7f98609fa8de8b0deef27b3c596513b24938ab22321c31f2096d0b4f29b11e33dfab68f8e41865d3714a
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  A simple way to make calls on Linkedin's API. NOTE: It is not yet completed and does not encompass all of the api at this time. It serves the purpose I made it for but I will continue to develop it.
4
4
 
5
- This is heavily inspired and influenced by pengwynn's 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:
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
8
  * contribute a bit more robust ruby wrapper for Linkedin's API
@@ -25,15 +25,26 @@ Or install it yourself as:
25
25
 
26
26
  ## Usage
27
27
 
28
- This is meant to be used alongside omniauth. Obtain access tokens from omniauth authentication and then use them to make api calls.
28
+ This is meant to be used alongside omniauth. Obtain access tokens from omniauth authentication and then use them to make api calls.
29
29
 
30
- require 'ezlinkedin'
30
+ ```ruby
31
+ require 'ezlinkedin'
31
32
 
32
- # Create a client
33
- linkedin = EzLinkedin::Client.new("API KEY", "SECRET KEY", options) # options are the typical OAuth consumer options
34
- linkedin.authorize("access_token", "access_token_secret") # tokens obtained from omniauth
35
-
36
- Currently, one can post shares, retrieve updates, user profile, and connections.
33
+ # Create a client
34
+ linkedin = EzLinkedin::Client.new("API KEY", "SECRET KEY", options) # options are the typical OAuth consumer options
35
+ linkedin.authorize("access_token", "access_token_secret") # tokens obtained from omniauth
36
+
37
+ linkedin.profile(id: 1234, fields: ['name', 'email']
38
+ linkedin.connections(count: 30)
39
+ linkedin.network_updates(types: [:shar, :prfx, :conn], count: 50)
40
+ linkedin.post_share({:comment => "I'm a comment",
41
+ :content => { :title => "A title!",
42
+ :description => "A description",
43
+ :submitted_url => "http...",
44
+ :submitted_image_url => "http..." },
45
+ :visibility => { :code => "anyone"} })
46
+ ```
47
+ Currently, one can post shares, retrieve updates, user profile, and connections.
37
48
 
38
49
  ## Contributing
39
50
 
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 'libnotify'
30
+ spec.add_development_dependency 'rb-inotify'
31
31
  spec.add_development_dependency "webmock", '~> 1.11.0'
32
32
  end
@@ -2,13 +2,13 @@ module EzLinkedin
2
2
  module Api
3
3
 
4
4
  module QueryMethods
5
-
6
- #
5
+
6
+ #
7
7
  # Retrieve a certain profile depending on the options passed in.
8
8
  # @param options={} [Hash] can be an array of fields as strings and an id,
9
- # and a url to a public profile. This can also contain request
9
+ # and a url to a public profile. This can also contain request
10
10
  # headers
11
- #
11
+ #
12
12
  # @return [Mash] a Mash hash representing the found profile
13
13
  def profile(options={})
14
14
  path = person_path(options)
@@ -16,30 +16,45 @@ module EzLinkedin
16
16
  end
17
17
 
18
18
 
19
- #
19
+ #
20
20
  # Retrieve the authenticated user's connections
21
21
  # @param options={} [Hash] pass in fields and/or a count
22
- #
22
+ #
23
23
  # @return [Mash] Mash hash of connections
24
24
  def connections(options={})
25
25
  path = "#{person_path(options)}/connections"
26
26
  make_query(path, options, true)
27
27
  end
28
28
 
29
- #
29
+ #
30
30
  # Retrieve the user's social feed
31
31
  # @param options={} [Hash] visit Linkedin's api to
32
- # see possible options. it will default to an
33
- # aggregated feed unless :scope => 'self'.
34
- # :types => [:shar, :recu, :apps]
35
- # :count => 5
36
- #
37
- # @return [Mash] Mash hash of updates
32
+ # see possible options. it will default to an
33
+ # aggregated feed unless :scope => 'self'.
34
+ # :types => [:shar, :recu, :apps]
35
+ # :count => 5
36
+ #
37
+ # @return [Mash] Mash hash of updates
38
38
  def network_updates(options={})
39
39
  path = "#{person_path(options)}/network/updates"
40
40
  make_query(path, options, false)
41
41
  end
42
42
 
43
+
44
+ #
45
+ # Do a company search based on id, email, or universal-name
46
+ # @param options={} [Hash] parameters to search by, includes:
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
49
+ # the linkedin api for available fields
50
+ #
51
+ # @return [type] [description]
52
+ def company(options={})
53
+ path = company_path(options)
54
+ fields = options.include?(:fields)
55
+ make_query(path, options, fields)
56
+ end
57
+
43
58
  private
44
59
 
45
60
  def person_path(options)
@@ -53,7 +68,23 @@ module EzLinkedin
53
68
  end
54
69
  end
55
70
 
56
- #
71
+ def company_path(options)
72
+ path = "/companies"
73
+ id = options.delete(:id)
74
+ name = options.delete(:name)
75
+ domain = options.delete(:domain)
76
+ if id && name
77
+ path += "::(#{id},universal-name=#{CGI.escape(name)})"
78
+ elsif id
79
+ path += "/#{id}"
80
+ elsif name
81
+ path += "/universal-name=#{name}"
82
+ elsif domain
83
+ path += "?email-domain=#{domain}"
84
+ end
85
+ end
86
+
87
+ #
57
88
  # create a valid path to make a restful request
58
89
  # @param path [String] current path
59
90
  # @param options [Hash] set of options
@@ -12,7 +12,7 @@ module EzLinkedin
12
12
  # :description => "A description",
13
13
  # :submitted_url => "http...",
14
14
  # :submitted_image_url => "http..."
15
- # }
15
+ # },
16
16
  # :visibility => { :code => "anyone"}
17
17
  # })
18
18
  #
@@ -1,3 +1,3 @@
1
1
  module Ezlinkedin
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.1"
3
3
  end
data/spec/api_spec.rb CHANGED
@@ -99,36 +99,36 @@ describe EzLinkedin::Api do
99
99
  # response.code.should == "201"
100
100
  # end
101
101
  #
102
- # context "Company API" do
103
- # # use_vcr_cassette
104
- #
105
- # it "should be able to view a company profile" do
106
- # stub_request(:get, "https://api.linkedin.com/v1/companies/id=1586").to_return(:body => "{}")
107
- # client.company(:id => 1586).should be_an_instance_of(EzLinkedin::Mash)
108
- # end
109
- #
110
- # it "should be able to view a company by universal name" do
111
- # stub_request(:get, "https://api.linkedin.com/v1/companies/universal-name=acme").to_return(:body => "{}")
112
- # client.company(:name => 'acme').should be_an_instance_of(EzLinkedin::Mash)
113
- # end
114
- #
115
- # it "should be able to view a company by e-mail domain" do
116
- # stub_request(:get, "https://api.linkedin.com/v1/companies/email-domain=acme.com").to_return(:body => "{}")
117
- # client.company(:domain => 'acme.com').should be_an_instance_of(EzLinkedin::Mash)
118
- # end
119
- #
120
- # it "should load correct company data" do
121
- # client.company(:id => 1586).name.should == "Amazon"
122
- #
123
- # data = client.company(:id => 1586, :fields => %w{ id name industry locations:(address:(city state country-code) is-headquarters) employee-count-range })
124
- # data.id.should == 1586
125
- # data.name.should == "Amazon"
126
- # data.employee_count_range.name.should == "10001+"
127
- # data.industry.should == "Internet"
128
- # data.locations.all[0].address.city.should == "Seattle"
129
- # data.locations.all[0].is_headquarters.should == true
130
- # end
131
- # end
102
+ context "Company API" do
103
+ # use_vcr_cassette
104
+
105
+ it "should be able to view a company profile" do
106
+ stub_request(:get, "https://api.linkedin.com/v1/companies/1586").to_return(:body => "{}")
107
+ client.company(:id => 1586).should be_an_instance_of(EzLinkedin::Mash)
108
+ end
109
+
110
+ it "should be able to view a company by universal name" do
111
+ stub_request(:get, "https://api.linkedin.com/v1/companies/universal-name=acme").to_return(:body => "{}")
112
+ client.company(:name => 'acme').should be_an_instance_of(EzLinkedin::Mash)
113
+ end
114
+
115
+ it "should be able to view a company by e-mail domain" do
116
+ stub_request(:get, "https://api.linkedin.com/v1/companies?email-domain=acme.com").to_return(:body => "{}")
117
+ client.company(:domain => 'acme.com').should be_an_instance_of(EzLinkedin::Mash)
118
+ end
119
+
120
+ # it "should load correct company data" do
121
+ # client.company(:id => 1586).name.should == "Amazon"
122
+
123
+ # data = client.company(:id => 1586, :fields => %w{ id name industry locations:(address:(city state country-code) is-headquarters) employee-count-range })
124
+ # data.id.should == 1586
125
+ # data.name.should == "Amazon"
126
+ # data.employee_count_range.name.should == "10001+"
127
+ # data.industry.should == "Internet"
128
+ # data.locations.all[0].address.city.should == "Seattle"
129
+ # data.locations.all[0].is_headquarters.should == true
130
+ # end
131
+ end
132
132
 
133
133
  # context "Group API" do
134
134
  #
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.0.1
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - akonwi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-05-20 00:00:00.000000000 Z
11
+ date: 2013-05-27 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: libnotify
140
+ name: rb-inotify
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - '>='