jobhunters 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -0
- data/README.md +30 -6
- data/app.rb +6 -0
- data/gitflow-installer.sh +78 -0
- data/lib/jobhunters/JobSearch.rb +4 -4
- data/lib/jobhunters/JobSearch.rb~ +63 -0
- data/lib/jobhunters/version.rb +1 -1
- data/testsinatra.rb +5 -0
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 245ffe9265a222c74977251aa25e5608886886ce
|
4
|
+
data.tar.gz: 77c1987cbefcd96c9cc238f613dbbc8b6a3efe06
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4402ec72b50d987ea982da4647d5e78ee1dec4b92bb87c050ee3aa130ccfdfb71d9252d376c31014f06bd1ddc30f0405bc7cc00588bf56a10041f8c211332e09
|
7
|
+
data.tar.gz: 889dc6123597a449780d9091eebee5d9922c12a28b07424f2635eff064b15f3d18342552dc467e1e2b18872fd2c43bc85def9f03adf2edf1545bd14511c85a0c
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,15 +1,41 @@
|
|
1
1
|
====================
|
2
2
|
JOBHUNTERS
|
3
3
|
---------------------
|
4
|
+
[![Gem Version](https://badge.fury.io/rb/jobhunters.svg)](http://badge.fury.io/rb/jobhunters)
|
4
5
|
[![Build Status](https://travis-ci.org/rojotic26/jobhunters.svg?branch=master)](https://travis-ci.org/rojotic26/jobhunters)
|
5
6
|
|
7
|
+
home: [https://github.com/rojotic26/jobhunters.git](https://github.com/rojotic26/jobhunters.git)
|
8
|
+
Gem to obtain the recent job offers from Tecoloco, a job search offer website in Central America.
|
9
|
+
|
6
10
|
## Usage
|
11
|
+
|
7
12
|
This gem may be used as a command line utility to obtain information of some job offers in CA by passing a category.
|
8
|
-
|
13
|
+
|
14
|
+
## CLI
|
15
|
+
|
16
|
+
To use the Executable File:
|
17
|
+
In order to run the executable file, just include a valid category, in this example we are requesting the marketing and sales offers, so use as a parameter the "marketing-ventas" value.
|
18
|
+
|
19
|
+
jobhunters 'marketing-ventas'
|
20
|
+
|
21
|
+
Other category examples to try are:
|
22
|
+
|
23
|
+
>informatica-internet,
|
24
|
+
>administrativo,
|
25
|
+
>call-center.
|
26
|
+
|
27
|
+
## Code Example:
|
28
|
+
|
29
|
+
require 'jobhunters'
|
30
|
+
jobs_found = JobSearch::Tecoloco.getjobs('marketing-ventas')
|
31
|
+
jobs_found.each do |title, date, city|
|
32
|
+
puts "Job offer:#{title} in #{city} until #{date}."
|
33
|
+
end
|
9
34
|
|
10
35
|
## More Details
|
11
|
-
|
12
|
-
|
36
|
+
|
37
|
+
This gem is based on the website: [http://www.tecoloco.com/](https://github.com/soumyaray/citesight)
|
38
|
+
A website to see job offers in Central America.
|
13
39
|
|
14
40
|
>lib/JobSearch: This class get the category of jobs you are looking for and return a hash of job offers information.
|
15
41
|
>
|
@@ -17,10 +43,8 @@ A website to see job offers in Central America. Very famous in Nicaragua and El
|
|
17
43
|
>
|
18
44
|
>GemFile: This file is just to specified which gems we are using.
|
19
45
|
|
20
|
-
This is an example of a category:
|
21
|
-
'marketing-ventas'
|
22
|
-
|
23
46
|
Our team-members are:
|
47
|
+
|
24
48
|
>Mauricio Jaime - mjboyarov@gmail.com / Nicaragua
|
25
49
|
>
|
26
50
|
>Roger Gomez - rojotic26@gmail.com / Nicaragua
|
data/app.rb
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
# git-flow make-less installer for *nix systems, by Rick Osborne
|
4
|
+
# Based on the git-flow core Makefile:
|
5
|
+
# http://github.com/nvie/gitflow/blob/master/Makefile
|
6
|
+
|
7
|
+
# Licensed under the same restrictions as git-flow:
|
8
|
+
# http://github.com/nvie/gitflow/blob/develop/LICENSE
|
9
|
+
|
10
|
+
# Does this need to be smarter for each host OS?
|
11
|
+
if [ -z "$INSTALL_PREFIX" ] ; then
|
12
|
+
INSTALL_PREFIX="/usr/local/bin"
|
13
|
+
fi
|
14
|
+
|
15
|
+
if [ -z "$REPO_NAME" ] ; then
|
16
|
+
REPO_NAME="gitflow"
|
17
|
+
fi
|
18
|
+
|
19
|
+
if [ -z "$REPO_HOME" ] ; then
|
20
|
+
REPO_HOME="http://github.com/nvie/gitflow.git"
|
21
|
+
fi
|
22
|
+
|
23
|
+
EXEC_FILES="git-flow"
|
24
|
+
SCRIPT_FILES="git-flow-init git-flow-feature git-flow-hotfix git-flow-release git-flow-support git-flow-version gitflow-common gitflow-shFlags"
|
25
|
+
SUBMODULE_FILE="gitflow-shFlags"
|
26
|
+
|
27
|
+
echo "### gitflow no-make installer ###"
|
28
|
+
|
29
|
+
case "$1" in
|
30
|
+
uninstall)
|
31
|
+
echo "Uninstalling git-flow from $INSTALL_PREFIX"
|
32
|
+
if [ -d "$INSTALL_PREFIX" ] ; then
|
33
|
+
for script_file in $SCRIPT_FILES $EXEC_FILES ; do
|
34
|
+
echo "rm -vf $INSTALL_PREFIX/$script_file"
|
35
|
+
rm -vf "$INSTALL_PREFIX/$script_file"
|
36
|
+
done
|
37
|
+
else
|
38
|
+
echo "The '$INSTALL_PREFIX' directory was not found."
|
39
|
+
echo "Do you need to set INSTALL_PREFIX ?"
|
40
|
+
fi
|
41
|
+
exit
|
42
|
+
;;
|
43
|
+
help)
|
44
|
+
echo "Usage: [environment] gitflow-installer.sh [install|uninstall]"
|
45
|
+
echo "Environment:"
|
46
|
+
echo " INSTALL_PREFIX=$INSTALL_PREFIX"
|
47
|
+
echo " REPO_HOME=$REPO_HOME"
|
48
|
+
echo " REPO_NAME=$REPO_NAME"
|
49
|
+
exit
|
50
|
+
;;
|
51
|
+
*)
|
52
|
+
echo "Installing git-flow to $INSTALL_PREFIX"
|
53
|
+
if [ -d "$REPO_NAME" -a -d "$REPO_NAME/.git" ] ; then
|
54
|
+
echo "Using existing repo: $REPO_NAME"
|
55
|
+
else
|
56
|
+
echo "Cloning repo from GitHub to $REPO_NAME"
|
57
|
+
git clone "$REPO_HOME" "$REPO_NAME"
|
58
|
+
fi
|
59
|
+
if [ -f "$REPO_NAME/$SUBMODULE_FILE" ] ; then
|
60
|
+
echo "Submodules look up to date"
|
61
|
+
else
|
62
|
+
echo "Updating submodules"
|
63
|
+
lastcwd=$PWD
|
64
|
+
cd "$REPO_NAME"
|
65
|
+
git submodule init
|
66
|
+
git submodule update
|
67
|
+
cd "$lastcwd"
|
68
|
+
fi
|
69
|
+
install -v -d -m 0755 "$INSTALL_PREFIX"
|
70
|
+
for exec_file in $EXEC_FILES ; do
|
71
|
+
install -v -m 0755 "$REPO_NAME/$exec_file" "$INSTALL_PREFIX"
|
72
|
+
done
|
73
|
+
for script_file in $SCRIPT_FILES ; do
|
74
|
+
install -v -m 0644 "$REPO_NAME/$script_file" "$INSTALL_PREFIX"
|
75
|
+
done
|
76
|
+
exit
|
77
|
+
;;
|
78
|
+
esac
|
data/lib/jobhunters/JobSearch.rb
CHANGED
@@ -6,10 +6,10 @@ module JobSearch
|
|
6
6
|
# return a hash of job offers information.
|
7
7
|
class Tecoloco
|
8
8
|
# Variables
|
9
|
-
TITLE_JOB = "//
|
10
|
-
CITY_JOB = "//
|
11
|
-
DATE_JOB = "//
|
12
|
-
DETAIL_JOB = "//
|
9
|
+
TITLE_JOB = "//span[@class = 'plaza visible-desktop']//a[@class = 'oferta-trabajo']"
|
10
|
+
CITY_JOB = "//span[@class = 'plaza visible-desktop']//span[@class = 'pais-trabajo']"
|
11
|
+
DATE_JOB = "//span[@class = 'plaza visible-desktop']//span[@class = 'imgVigencia-align sprite-imgVigencia']"
|
12
|
+
DETAIL_JOB = "//span[@class = 'plaza visible-desktop']//span[@class = 'detalle-trabajo']"
|
13
13
|
URL_TECOLOCO = 'http://www.tecoloco.com/empleo-'
|
14
14
|
|
15
15
|
# Function to obtain the whole information of the job offers at tecoloco
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
require 'open-uri'
|
3
|
+
require 'date'
|
4
|
+
module JobSearch
|
5
|
+
# This class get the category of jobs you are looking for and
|
6
|
+
# return a hash of job offers information.
|
7
|
+
class Tecoloco
|
8
|
+
# Variables
|
9
|
+
TITLE_JOB = "//span[@class = 'plaza visible-desktop']//a[@class = 'oferta-trabajo']"
|
10
|
+
CITY_JOB = "//span[@class = 'plaza visible-desktop']//span[@class = 'pais-trabajo']"
|
11
|
+
DATE_JOB = "//span[@class = 'plaza visible-desktop']//span[@class = 'imgVigencia-align sprite-imgVigencia']"
|
12
|
+
DETAIL_JOB = "//span[@class = 'plaza visible-desktop']//span[@class = 'detalle-trabajo']"
|
13
|
+
URL_TECOLOCO = 'http://www.tecoloco.com/empleo-'
|
14
|
+
|
15
|
+
# Function to obtain the whole information of the job offers at tecoloco
|
16
|
+
def self.getjobs(category)
|
17
|
+
doc = gethtml(category)
|
18
|
+
titles = get_titles(doc)
|
19
|
+
dates = get_dates(doc)
|
20
|
+
cities = get_cities(doc)
|
21
|
+
details = get_details(doc)
|
22
|
+
integrate(titles, dates, cities, details)
|
23
|
+
end
|
24
|
+
|
25
|
+
# Function to get the url of tecoloco
|
26
|
+
def self.gethtml(category)
|
27
|
+
url = "#{URL_TECOLOCO}#{category}"
|
28
|
+
Nokogiri::HTML(open(url))
|
29
|
+
end
|
30
|
+
|
31
|
+
# Function to obtain the titles of the job offers at tecoloco
|
32
|
+
def self.get_titles(document)
|
33
|
+
titles = document.xpath(TITLE_JOB)
|
34
|
+
titles.map { |t| t.text }
|
35
|
+
end
|
36
|
+
|
37
|
+
# Function to obtain dates of the job offers at tecoloco
|
38
|
+
def self.get_dates(document)
|
39
|
+
dates = document.xpath(DATE_JOB)
|
40
|
+
dates.map { |d| Date.parse(d) }
|
41
|
+
end
|
42
|
+
|
43
|
+
# Function to obtain the cities of the job offers at tecoloco
|
44
|
+
def self.get_cities(document)
|
45
|
+
cities = document.xpath(CITY_JOB)
|
46
|
+
cities.map { |c| c.text }
|
47
|
+
end
|
48
|
+
|
49
|
+
# Function to obtain details of the job offers at tecoloco
|
50
|
+
def self.get_details(document)
|
51
|
+
details = document.xpath(DETAIL_JOB)
|
52
|
+
details.map { |dt| dt.text }
|
53
|
+
end
|
54
|
+
|
55
|
+
# Function to integrate the data of job offers in a hash by category
|
56
|
+
def self.integrate(titles, dates, cities, details)
|
57
|
+
jobs_array = titles.each_with_index.map do |_, index, _, _|
|
58
|
+
[titles[index], dates[index], cities[index], details[index]]
|
59
|
+
end
|
60
|
+
jobs_array
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
data/lib/jobhunters/version.rb
CHANGED
data/testsinatra.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jobhunters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roger, Edwin and Mauricio
|
@@ -51,12 +51,16 @@ files:
|
|
51
51
|
- LICENSE
|
52
52
|
- README.md
|
53
53
|
- Rakefile
|
54
|
+
- app.rb
|
54
55
|
- bin/jobhunters
|
56
|
+
- gitflow-installer.sh
|
55
57
|
- jobhunters.gemspec
|
56
58
|
- lib/jobhunters.rb
|
57
59
|
- lib/jobhunters/JobSearch.rb
|
60
|
+
- lib/jobhunters/JobSearch.rb~
|
58
61
|
- lib/jobhunters/version.rb
|
59
62
|
- spec/test.rb
|
63
|
+
- testsinatra.rb
|
60
64
|
homepage: https://github.com/rojotic26/tecoloco-job-offers.git
|
61
65
|
licenses:
|
62
66
|
- MIT
|