phantomjs.rb 0.0.5 → 1.0.0

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.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NzhkY2U5YjQ1ZDM0YWE1NGY3NDIzMTczMjBmNTQzMTdlZTYyZmRkZg==
5
+ data.tar.gz: !binary |-
6
+ YWZiY2JjYWFiNzRkMTZiMjQzYmU3YWM3ODQ3YzZlMzdkMzNjYzU3MA==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ ODhjMDQ4ZDVlNWViMDViMWViODQ2ZDdhYmNhMjM3ZTZmODE5Nzg4MzVlNzc5
10
+ MmJhODU3OTQzOGE4NTk3NTY2NzFhZWU4YzQ3ZDkwNzNlMDJmYmZjMmM2OTk1
11
+ YjQ3Y2MzYTUyY2VlNjY4M2NiZTVlYmMyOTJmZGZjMjVmN2JlY2Y=
12
+ data.tar.gz: !binary |-
13
+ YTlmMDFmZjlhYTcwMTAyODRjODczODBlYzhmOGIzOGI1NWQ1YjFhMTBiNjc1
14
+ ZWE5MmNiZTdiNzcwNGU5NTQzYTIyNDg0ZTI3MmEzMmEyZmJjYWQ5MjFjMDU0
15
+ N2E0NDNkYjVlZjk1ZTAxMTU1MmIzNGE4Y2FhOGFmZTczYzczNDM=
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ 2013.05.16, Version 1.0.0
2
+
3
+ * Removed inclusion of phantomjs binaries in vendor.
4
+
1
5
  2012.12.12, Version 0.0.5
2
6
 
3
7
  * Added the ability to pass a block to run that will be called for each line
data/README.md CHANGED
@@ -2,9 +2,11 @@
2
2
 
3
3
  [![Build Status](https://secure.travis-ci.org/westoque/phantomjs.rb.png?branch=master)](http://travis-ci.org/westoque/phantomjs.rb)
4
4
 
5
- A ruby wrapper for phantomjs. The binaries are in `vendor` and it will
6
- automatically detect what OS you are using and will try to use the
7
- appropriate binaries.
5
+ A ruby wrapper for phantomjs.
6
+
7
+ ## Requirements
8
+
9
+ You have to have `phantomjs` installed.
8
10
 
9
11
  ## Install
10
12
 
@@ -15,13 +17,11 @@ gem install phantomjs.rb
15
17
  ## Usage
16
18
 
17
19
  ```rb
18
- script = File.expand_path('./my_runner.js')
20
+ script = File.expand_path('my_runner.js')
19
21
  output = Phantomjs.run(script, 'myarg1', 'myarg2')
20
- p output # Whatever it outputs from stdout
22
+ p output # Whatever it outputs from STDOUT
21
23
  ```
22
24
 
23
- The equivalent code above will generate:
25
+ ## License
24
26
 
25
- ```sh
26
- /absolute/path/to/phantomjs /absolute/my_runner.js myarg1 myarg2
27
- ```
27
+ MIT
@@ -1,8 +1,8 @@
1
1
  require "phantomjs/version"
2
+ require 'phantomjs/errors'
2
3
 
3
- module Phantomjs
4
- # Fight the power
5
- extend self
4
+ class Phantomjs
5
+ EXEC = 'phantomjs'
6
6
 
7
7
  # Public: Runs the phantomjs binary
8
8
  #
@@ -10,53 +10,21 @@ module Phantomjs
10
10
  # *args - The arguments to pass to the script
11
11
  #
12
12
  # Returns the stdout output of phantomjs
13
- def run(script, *args)
13
+ def self.run(script, *args)
14
+ raise NoSuchPathError unless File.exist?(File.expand_path(script))
15
+
14
16
  string_args = args.join(" ")
15
- @executable ||= get_executable
16
17
 
17
- if block_given?
18
- IO.popen("#{@executable} #{script} #{string_args}").each_line do |line|
19
- yield line
18
+ begin
19
+ if block_given?
20
+ IO.popen("#{EXEC} #{script} #{string_args}").each_line do |line|
21
+ yield line
22
+ end
23
+ else
24
+ `#{EXEC} #{script} #{string_args}`
20
25
  end
21
- else
22
- `#{@executable} #{script} #{string_args}`
23
- end
24
- end
25
-
26
- private
27
-
28
- def get_executable
29
- if Os.is_mac?
30
- require 'phantomjs-mac'
31
- elsif Os.is_linux?
32
- require 'phantomjs-linux'
33
- else
34
- # Sorry windows guy
35
- # Nothing here
26
+ rescue Errno::ENOENT
27
+ raise CommandNotFoundError.new('Phantomjs is not installed')
36
28
  end
37
-
38
- Phantomjs.executable_path
39
- end
40
- end
41
-
42
- module Os
43
- # Again, Fight the power
44
- extend self
45
-
46
- # universal-darwin9.0 shows up for RUBY_PLATFORM on os X leopard with the bundled ruby.
47
- # Installing ruby in different manners may give a different result, so beware.
48
- # Examine the ruby platform yourself. If you see other values please comment
49
- # in the snippet on dzone and I will add them.
50
-
51
- def is_mac?
52
- RUBY_PLATFORM.downcase.include?("darwin")
53
- end
54
-
55
- def is_windows?
56
- RUBY_PLATFORM.downcase.include?("mswin")
57
- end
58
-
59
- def is_linux?
60
- RUBY_PLATFORM.downcase.include?("linux")
61
29
  end
62
30
  end
@@ -0,0 +1,7 @@
1
+ class Phantomjs
2
+ class CommandNotFoundError < StandardError
3
+ end
4
+
5
+ class NoSuchPathError < StandardError
6
+ end
7
+ end
@@ -1,3 +1,3 @@
1
- module Phantomjs
2
- VERSION = "0.0.5"
1
+ class Phantomjs
2
+ VERSION = "1.0.0"
3
3
  end
@@ -19,13 +19,6 @@ Gem::Specification.new do |s|
19
19
  s.require_paths = ["lib"]
20
20
 
21
21
  # specify any dependencies here; for example:
22
- s.add_development_dependency "ZenTest"
23
22
  s.add_development_dependency "rspec"
24
23
  s.add_development_dependency "rake"
25
-
26
- if RUBY_PLATFORM =~ /linux/
27
- s.add_runtime_dependency 'phantomjs-linux'
28
- elsif RUBY_PLATFORM =~ /darwin/
29
- s.add_runtime_dependency 'phantomjs-mac'
30
- end
31
24
  end
@@ -2,6 +2,25 @@ require 'phantomjs'
2
2
 
3
3
  describe Phantomjs do
4
4
  describe ".run" do
5
+ describe 'when phantomjs is non installed' do
6
+ before { Phantomjs::EXEC = 'not_existing_phantomjs' }
7
+ after { Phantomjs::EXEC = 'phantomjs' }
8
+
9
+ it "raises an error" do
10
+ script = File.expand_path('./spec/runner.js')
11
+ expect {
12
+ Phantomjs.run(script, 'foo1', 'foo2')
13
+ }.to raise_error(Phantomjs::CommandNotFoundError)
14
+ end
15
+ end
16
+
17
+ it 'raises an error when the script does not exist' do
18
+ script = File.expand_path('./doesnt_exist.js')
19
+ expect {
20
+ Phantomjs.run(script)
21
+ }.to raise_error(Phantomjs::NoSuchPathError)
22
+ end
23
+
5
24
  it "runs phantomjs binary with the correct arguments" do
6
25
  script = File.expand_path('./spec/runner.js')
7
26
  result = Phantomjs.run(script, 'foo1', 'foo2')
metadata CHANGED
@@ -1,36 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phantomjs.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
5
- prerelease:
4
+ version: 1.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - William Estoque
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-12-12 00:00:00.000000000 Z
11
+ date: 2013-05-17 00:00:00.000000000 Z
13
12
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: ZenTest
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :development
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
13
  - !ruby/object:Gem::Dependency
31
14
  name: rspec
32
15
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
16
  requirements:
35
17
  - - ! '>='
36
18
  - !ruby/object:Gem::Version
@@ -38,7 +20,6 @@ dependencies:
38
20
  type: :development
39
21
  prerelease: false
40
22
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
23
  requirements:
43
24
  - - ! '>='
44
25
  - !ruby/object:Gem::Version
@@ -46,7 +27,6 @@ dependencies:
46
27
  - !ruby/object:Gem::Dependency
47
28
  name: rake
48
29
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
30
  requirements:
51
31
  - - ! '>='
52
32
  - !ruby/object:Gem::Version
@@ -54,23 +34,6 @@ dependencies:
54
34
  type: :development
55
35
  prerelease: false
56
36
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: phantomjs-mac
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ! '>='
68
- - !ruby/object:Gem::Version
69
- version: '0'
70
- type: :runtime
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
37
  requirements:
75
38
  - - ! '>='
76
39
  - !ruby/object:Gem::Version
@@ -91,40 +54,35 @@ files:
91
54
  - README.md
92
55
  - Rakefile
93
56
  - lib/phantomjs.rb
57
+ - lib/phantomjs/errors.rb
94
58
  - lib/phantomjs/version.rb
95
59
  - phantomjs.rb.gemspec
96
60
  - spec/phantomjs_spec.rb
97
61
  - spec/runner.js
98
62
  homepage: http://westoque.com
99
63
  licenses: []
64
+ metadata: {}
100
65
  post_install_message:
101
66
  rdoc_options: []
102
67
  require_paths:
103
68
  - lib
104
69
  required_ruby_version: !ruby/object:Gem::Requirement
105
- none: false
106
70
  requirements:
107
71
  - - ! '>='
108
72
  - !ruby/object:Gem::Version
109
73
  version: '0'
110
- segments:
111
- - 0
112
- hash: 344941083117915964
113
74
  required_rubygems_version: !ruby/object:Gem::Requirement
114
- none: false
115
75
  requirements:
116
76
  - - ! '>='
117
77
  - !ruby/object:Gem::Version
118
78
  version: '0'
119
- segments:
120
- - 0
121
- hash: 344941083117915964
122
79
  requirements: []
123
80
  rubyforge_project: phantomjs.rb
124
- rubygems_version: 1.8.24
81
+ rubygems_version: 2.0.3
125
82
  signing_key:
126
- specification_version: 3
83
+ specification_version: 4
127
84
  summary: Ruby wrapper for phantomjs
128
85
  test_files:
129
86
  - spec/phantomjs_spec.rb
130
87
  - spec/runner.js
88
+ has_rdoc: