pintrest-api 0.0.4 → 0.0.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cc7e1e11e0656503c2aabaa5e6af685624e29949
4
- data.tar.gz: f7cb2d4644a37ba6e81f40603db7f1d5770fbbf2
3
+ metadata.gz: f95bd14d7dbe82e141e14b08b6e10fe817e7aa4e
4
+ data.tar.gz: ddeef50cbaeae86ff075580d4b1b9a6e4056c81a
5
5
  SHA512:
6
- metadata.gz: 7253e96507a8db4d140c0bd388f46077914b4a9030642ba70bb435c3f9197b351d3616a06822e52eeb562c2e0cd307f891e2e547acdbdb90355ffd0cf68f73ec
7
- data.tar.gz: 59edf10e9fcd4f266ab1210f2cce94302bf41ad8d5b52005304f6fbb50fb21dad87dc258e50eb71691123b1be217cd49a248daa9414f9f88908f61e162ba966a
6
+ metadata.gz: 18978b0c2f7f2bf2a4cd5124025e3229c8c9f08e55d8c18764aa7e952c84ac4c275400f1028d078af20b4c582a41473b7285558d1d180771600dd2ae4f0d44a3
7
+ data.tar.gz: b61ba90bcb685e60f8bac7d392a3209dab26c228c5009cad1bb52d4e623d4c1581c4c2d5925a2cffd65122306e1bf155dbbeab9b406d8b67c7c64c35cd05390f
data/.DS_Store ADDED
Binary file
data/.gitignore ADDED
@@ -0,0 +1,61 @@
1
+ # Created by https://www.gitignore.io
2
+
3
+ ### Ruby ###
4
+ *.gem
5
+ *.rbc
6
+ /.config
7
+ /coverage/
8
+ /InstalledFiles
9
+ /pkg/
10
+ /spec/reports/
11
+ /test/tmp/
12
+ /test/version_tmp/
13
+ /tmp/
14
+
15
+ ## Specific to RubyMotion:
16
+ .dat*
17
+ .repl_history
18
+ build/
19
+
20
+ ## Documentation cache and generated files:
21
+ /.yardoc/
22
+ /_yardoc/
23
+ /doc/
24
+ /rdoc/
25
+
26
+ ## Environment normalisation:
27
+ /.bundle/
28
+ /lib/bundler/man/
29
+
30
+ # for a library or gem, you might want to ignore these files since the code is
31
+ # intended to run in multiple environments; otherwise, check them in:
32
+ # Gemfile.lock
33
+ # .ruby-version
34
+ # .ruby-gemset
35
+
36
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
37
+ .rvmrc
38
+
39
+
40
+ ### OSX ###
41
+ .DS_Store
42
+ .AppleDouble
43
+ .LSOverride
44
+
45
+ # Icon must end with two \r
46
+ Icon
47
+
48
+ # Thumbnails
49
+ ._*
50
+
51
+ # Files that might appear on external disk
52
+ .Spotlight-V100
53
+ .Trashes
54
+
55
+ # Directories potentially created on remote AFP share
56
+ .AppleDB
57
+ .AppleDesktop
58
+ Network Trash Folder
59
+ Temporary Items
60
+ .apdisk
61
+
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ ruby '2.2.0'
2
+ source 'https://rubygems.org'
3
+
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,74 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ pintrest-api (0.0.6)
5
+ capybara (~> 2.4)
6
+ nokogiri (~> 1.6)
7
+ poltergeist (~> 1.5)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ ast (2.0.0)
13
+ astrolabe (1.3.0)
14
+ parser (>= 2.2.0.pre.3, < 3.0)
15
+ capybara (2.4.4)
16
+ mime-types (>= 1.16)
17
+ nokogiri (>= 1.3.3)
18
+ rack (>= 1.0.0)
19
+ rack-test (>= 0.5.4)
20
+ xpath (~> 2.0)
21
+ cliver (0.3.2)
22
+ coderay (1.1.0)
23
+ method_source (0.8.2)
24
+ mime-types (2.4.3)
25
+ mini_portile (0.6.2)
26
+ minitest (5.5.1)
27
+ multi_json (1.10.1)
28
+ nokogiri (1.6.6.2)
29
+ mini_portile (~> 0.6.0)
30
+ parser (2.2.0.2)
31
+ ast (>= 1.1, < 3.0)
32
+ poltergeist (1.5.1)
33
+ capybara (~> 2.1)
34
+ cliver (~> 0.3.1)
35
+ multi_json (~> 1.0)
36
+ websocket-driver (>= 0.2.0)
37
+ powerpack (0.0.9)
38
+ pry (0.10.1)
39
+ coderay (~> 1.1.0)
40
+ method_source (~> 0.8.1)
41
+ slop (~> 3.4)
42
+ rack (1.6.0)
43
+ rack-test (0.6.3)
44
+ rack (>= 1.0)
45
+ rainbow (2.0.0)
46
+ rake (10.4.2)
47
+ rb-fsevent (0.9.4)
48
+ rubocop (0.28.0)
49
+ astrolabe (~> 1.3)
50
+ parser (>= 2.2.0.pre.7, < 3.0)
51
+ powerpack (~> 0.0.6)
52
+ rainbow (>= 1.99.1, < 3.0)
53
+ ruby-progressbar (~> 1.4)
54
+ ruby-progressbar (1.7.1)
55
+ slop (3.6.0)
56
+ terminal-notifier (1.6.2)
57
+ websocket-driver (0.5.1)
58
+ websocket-extensions (>= 0.1.0)
59
+ websocket-extensions (0.1.1)
60
+ xpath (2.0.0)
61
+ nokogiri (~> 1.3)
62
+
63
+ PLATFORMS
64
+ ruby
65
+
66
+ DEPENDENCIES
67
+ bundler (~> 1.7)
68
+ minitest (~> 5.5)
69
+ pintrest-api!
70
+ pry (~> 0.10)
71
+ rake (~> 10.1)
72
+ rb-fsevent (~> 0.9)
73
+ rubocop (~> 0.28)
74
+ terminal-notifier (~> 1.6)
data/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ require 'rake/testtask'
2
+ require "bundler/gem_tasks"
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.pattern = 'test/test_*.rb'
6
+ end
7
+
8
+ desc 'Run tests'
9
+ task :default => :test
@@ -4,11 +4,12 @@ module PintrestApi
4
4
  class Pin < Core
5
5
  attr_reader :image_url, :title, :credits_url, :url, :description
6
6
 
7
+ PINTREST_URL = 'http://www.pintrest.com'
7
8
  PIN_BASE_CSS = '.Grid .Module.Pin.PinBase'
8
9
  PIN_IMAGE_CSS = '.pinHolder .pinImg'
9
10
  PIN_TITLE_CSS = '.richPinGridTitle'
10
11
  PIN_CREDIT_CSS = '.creditItem a'
11
- PIN_URL_CSS = '.pinImageActionButtonWrapper .pinNavLink'
12
+ PIN_URL_CSS = '.pinHolder .pinImageWrapper'
12
13
  PIN_DESCRIPT_CSS = '.pinDescription'
13
14
 
14
15
  def initialize(image_url, title, credits_url, url, description)
@@ -45,6 +46,7 @@ module PintrestApi
45
46
  login(authentication) if !@is_logged_in || authentication
46
47
  @is_logged_in = true
47
48
  @session.visit http_url(board.url)
49
+ sleep 2
48
50
  parse_pins get_with_ajax_scroll(PIN_BASE_CSS)
49
51
  end
50
52
 
@@ -66,10 +68,13 @@ module PintrestApi
66
68
  nokogiri_items.each do |item|
67
69
  pin_image = attribute_value(item, PIN_IMAGE_CSS, 'src')
68
70
  pin_credits = attribute_value(item, PIN_CREDIT_CSS, 'href')
71
+ pin_credits = pin_credits && PINTREST_URL + pin_credits
69
72
  pin_url = attribute_value(item, PIN_URL_CSS, 'href')
73
+ pin_url = pin_url && PINTREST_URL + pin_url
70
74
  pin_description = item.css(PIN_DESCRIPT_CSS).inner_text.strip
71
75
  pin_title = item.css('.richPinGridTitle').inner_text.strip
72
76
 
77
+
73
78
  pins << Pin.new(pin_image, pin_title, pin_credits, pin_url, pin_description)
74
79
  end
75
80
 
@@ -0,0 +1,3 @@
1
+ module PintrestApi
2
+ VERSION = '0.0.6'
3
+ end
data/lib/pintrest_api.rb CHANGED
@@ -8,6 +8,7 @@ Bundler.require(:default)
8
8
 
9
9
  # Pintrest Api requires
10
10
  #=======================
11
+ require 'pintrest_api/version.rb'
11
12
  require 'pintrest_api/core.rb'
12
13
  require 'pintrest_api/authentication.rb'
13
14
  require 'pintrest_api/board.rb'
@@ -0,0 +1,38 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'pintrest_api/version'
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = 'pintrest-api'
8
+ s.version = PintrestApi::VERSION
9
+ s.platform = Gem::Platform::RUBY
10
+ s.required_ruby_version = '>= 1.9.3'
11
+ s.require_paths = 'lib'
12
+ s.date = '2014-12-20'
13
+ s.summary = 'Pintrest Api'
14
+ s.extra_rdoc_files = ['LICENSE.txt', 'README.md']
15
+ s.description = <<-DESCRIPTION
16
+ A gem to create a pintrest api to gather
17
+ pins using Capybara and PhantomJS.
18
+ DESCRIPTION
19
+ s.authors = ['Mika Kalathil']
20
+ s.email = 'me@mikakalathil.ca'
21
+ s.files = `git ls-files -z`.split("\x0")
22
+ s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
23
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
24
+ s.require_paths = ["lib"]
25
+ s.homepage = 'http://rubygems.org/gems/pintrest-api'
26
+ s.license = 'MIT'
27
+ s.rubygems_version = '1.8.23'
28
+ s.add_runtime_dependency('capybara', '~> 2.4')
29
+ s.add_runtime_dependency('poltergeist', '~> 1.5')
30
+ s.add_runtime_dependency('nokogiri', '~> 1.6')
31
+ s.add_development_dependency('rake', '~> 10.1')
32
+ s.add_development_dependency('bundler', '~> 1.7')
33
+ s.add_development_dependency('rubocop', '~> 0.28')
34
+ s.add_development_dependency('rb-fsevent', '~> 0.9')
35
+ s.add_development_dependency('terminal-notifier', '~> 1.6')
36
+ s.add_development_dependency('minitest', '~> 5.5')
37
+ s.add_development_dependency('pry', '~> 0.10')
38
+ end
data/watch.rb ADDED
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require './lib/pintrest_api.rb'
4
+ require 'pry'
5
+ require 'rb-fsevent'
6
+
7
+ puts 'Starting watch for Pintrest Api'
8
+ fsevent = FSEvent.new
9
+
10
+ def test_files
11
+ test_files = Dir[Dir.pwd + '/test/test_*.rb']
12
+ test_files.each do |f|
13
+ `ruby #{f}`
14
+ end
15
+ end
16
+
17
+ def test_result
18
+ if (test_files)
19
+ puts `terminal-notifier -title 'Auto Watch' -message 'Pintrest Api Test' -subtitle 'Success!'`
20
+ else
21
+ puts `terminal-notifier -title 'Auto Watch' -message 'Pintrest Api Test' -subtitle 'Failure'`
22
+ end
23
+ end
24
+
25
+ fsevent.watch [Dir.pwd + '/lib', Dir.pwd + '/test'] do |directories|
26
+ puts "\nChange detected running tests....."
27
+ puts `rubocop lib/`
28
+ test_result
29
+ puts "Finshed running specs"
30
+ end
31
+
32
+ fsevent.run
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pintrest-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mika Kalathil
@@ -160,16 +160,24 @@ extra_rdoc_files:
160
160
  - LICENSE.txt
161
161
  - README.md
162
162
  files:
163
+ - ".DS_Store"
164
+ - ".gitignore"
165
+ - Gemfile
166
+ - Gemfile.lock
163
167
  - LICENSE.txt
164
168
  - README.md
169
+ - Rakefile
165
170
  - lib/pintrest_api.rb
166
171
  - lib/pintrest_api/authentication.rb
167
172
  - lib/pintrest_api/board.rb
168
173
  - lib/pintrest_api/core.rb
169
174
  - lib/pintrest_api/pin.rb
175
+ - lib/pintrest_api/version.rb
176
+ - pintrest_api.gemspec
170
177
  - test/spec_helper.rb
171
178
  - test/test_board.rb
172
179
  - test/test_pin.rb
180
+ - watch.rb
173
181
  homepage: http://rubygems.org/gems/pintrest-api
174
182
  licenses:
175
183
  - MIT
@@ -190,7 +198,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
190
198
  version: '0'
191
199
  requirements: []
192
200
  rubyforge_project:
193
- rubygems_version: 2.4.3
201
+ rubygems_version: 2.4.5
194
202
  signing_key:
195
203
  specification_version: 4
196
204
  summary: Pintrest Api