1

I'm a complete newbie.

I have a gem I want to install and use, let's say it's this one:

https://rubygems.org/gems/linkedindata/versions/0.0.22

I'm using cmd:

gem install linkedindata
#1 gem installed

After that I add it to my gemfile:

gemrat 'linkedindata'
#gem 'linkedindata', '0.0.22' added to your Gemfile.

Now to use linkedindata I have to create a new object and specify my search. So I do:

**test.rb**
l = LinkedinData.new(1, "c:/users/proxylist.txt", true, true)
searchTerms = ['First', 'Second', 'Third']
l.getByKeywords(searchTerms)

Now I run the test.rb from command prompt:

test.rb:1:in `<main>': undefined local variable or meth
od `linkedindata' for main:Object (NameError)

So, I obviously need to require the 'linkedindata' gem here. I added:

**test.rb**
require 'LinkedinData'
l = LinkedinData.new(1, "c:/users/proxylist.txt", true, true)
searchTerms = ['First', 'Second', 'Third']
l.getByKeywords(searchTerms)

I get the following error:

C:/Ruby22/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `re
quire': cannot load such file -- linkedin-scraper (LoadError)
        from C:/Ruby22/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require
.rb:54:in `require'
        from C:/Ruby22/lib/ruby/gems/2.2.0/gems/linkedindata-0.0.22/lib/linkedin
data.rb:1:in `<top (required)>'
        from C:/Ruby22/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require
.rb:128:in `require'
        from C:/Ruby22/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require
.rb:128:in `rescue in require'
        from C:/Ruby22/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require
.rb:39:in `require'
        from C:/Users/test.rb:1:in `<main>'

Am I doing something fundamentally wrong here? Or is there a problem with this gem?

UPDATE

The problem was within the gem, see Doon's answer below.

require 'rubygems'
require 'bundler/setup'
require 'linkedindata'
l = LinkedinData.new(1, "proxylist.txt", true, true)
searchTerms = ['First', 'Second', 'Third']
l.getByKeywords(searchTerms)

++++ correct how the gem requires "linkedin_scraper" in linkedindata.rb

Next problem occurs

 C:/Ruby22/lib/ruby/gems/2.2.0/gems/linkedindata-0.0.22/lib/linkedin.rb:6:in `<cl
ass:Profile>': uninitialized constant Linkedin::Profile::ProxyManager (NameError
)
        from C:/Ruby22/lib/ruby/gems/2.2.0/gems/linkedindata-0.0.22/lib/linkedin
.rb:5:in `<module:Linkedin>'
        from C:/Ruby22/lib/ruby/gems/2.2.0/gems/linkedindata-0.0.22/lib/linkedin
.rb:4:in `<top (required)>'
        from linkedinscrape.rb:4:in `require'
        from linkedinscrape.rb:4:in `<main>'

Which obviously has to do with the proxy settings. The list:

**proxylist.txt**
220.248.224.242:8089
165.139.179.225:8080
54.207.114.172:3333
190.63.174.246:8081

The way I load it:

l = LinkedinData.new(1, "c:/users/proxylist.txt")

1 Answer 1

2

As you are using a Gemfile, you are using bundler. In your script you will need to include rubygems and bundler to make it work. Try this

require 'rubygems'
require 'bundler/setup'

require 'linkedindata'

l = LinkedinData.new(1, "c:/users/proxylist.txt", true, true)
searchTerms = ['First', 'Second', 'Third']
l.getByKeywords(searchTerms)

You have run bundle install, sorry not familiar with gemrat, so not sure how much it does for you.

if you are not actually using bundler, just remove require 'bundler/setup' from the code above, you will still need to require rubygems though in your script.

in looks like the gem itself is kind of broken in the way it declare dependencies, and the other gems that it relies on. I appear to be able to make it work as follows:

Gemfile:

source 'https://rubygems.org'
gem 'linkedin-scraper'
gem 'linkedindata'
gem 'generalscraper'
gem 'uploadconvert'
gem 'docsplit'
gem 'crack'
gem 'pry'
gem 'activesupport'
gem 'selenium-webdriver'

It also appears that it the linkedin-scraper needs to required as linkedin_scraper but not sure why that is. So editing.

{GEMPATH}/linkedindata-0.0.22/lib/linkedindata.rb to require 'linkedin_scraper' as opposed to require 'linkedin-scraper' seems to make it work.

So with the above changes and using bundler

require 'rubygems'
require 'bundler/setup'
require 'linkedindata'
l = LinkedinData.new(1, "proxylist.txt", true, true)
searchTerms = ['First', 'Second', 'Third']
l.getByKeywords(searchTerms)

now runs (I don't have a proxylist.txt so it blows up looking for it, but it doesn't get anymore library errors).

Sign up to request clarification or add additional context in comments.

4 Comments

Solved some errors, but i still get: C:/Ruby22/lib/ruby/gems/2.2.0/gems/linkedindata-0.0.22/lib/linkedindata.rb:1:in require': cannot load such file -- linkedin-scraper (LoadError) from C:/Ruby22/lib/ruby/gems/2.2.0/gems/linkedindata-0.0.22/lib/linkedin data.rb:1:in <top (required)>' from C:/Users/test.rb:4:in require' from C:/Users/test.rb:4:in <main>'
hmm it seems that the gem doesn't have its dependencies quite right. you can try adding gem 'linkedin-scraper' but I too am having issues getting it to load, and not sure why...
ok it seems like the gem itself is a bit broken, and doesn't declare all of it's dependencies correctly.. Will edit with what I've found...
Works like a charm -- as you said! It freezes with the proxy for me too though... C:/Ruby22/lib/ruby/gems/2.2.0/gems/linkedindata-0.0.22/lib/linkedin.rb:6:in <cl ass:Profile>': uninitialized constant Linkedin::Profile::ProxyManager (NameError ) from C:/Ruby22/lib/ruby/gems/2.2.0/gems/linkedindata-0.0.22/lib/linkedin .rb:5:in <module:Linkedin>' from C:/Ruby22/lib/ruby/gems/2.2.0/gems/linkedindata-0.0.22/lib/linkedin .rb:4:in <top (required)>' from linkedinscrape.rb:4:in require' from linkedinscrape.rb:4:in `<main>'. I don't understand this...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.