baren 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. data/CHANGELOG.md +11 -0
  2. data/README.md +18 -8
  3. data/lib/baren.rb +6 -1
  4. data/opt/Rakefile +34 -11
  5. metadata +37 -62
data/CHANGELOG.md ADDED
@@ -0,0 +1,11 @@
1
+ ChangeLogs
2
+ ==========
3
+
4
+ ## 0.2.0 (2011-06-02)
5
+
6
+ - Now try to install phantomjs on linux.
7
+
8
+ ## 0.1.0 (2011-05-28)
9
+
10
+ - The first release
11
+ - Only install phantomjs on mac os x
data/README.md CHANGED
@@ -6,6 +6,24 @@ Baren generate .png images form .pjs ([Processing.js](http://processingjs.org/)
6
6
  - Can be a part of the asset pipeline of Rails 3.1
7
7
 
8
8
 
9
+ Prerequisites
10
+ -------------
11
+ Baren requires PhantomJS as the Javascript and Canvas engine,
12
+ and PhantomJS requires QtWebKit.
13
+
14
+ ### Mac OS X
15
+ Baren use a binary package of PhantomJS for Mac OS X, so there is no need to do before installing baren.
16
+
17
+ ### Ubuntu 10.04
18
+
19
+ sudo apt-get install curl libqt4-dev qt4-qmake xvfb
20
+
21
+ For other linux distributions, please consult with [BuildInstructions - phantomjs](http://code.google.com/p/phantomjs/wiki/BuildInstructions).
22
+
23
+ ### Windows
24
+ TBD
25
+
26
+
9
27
  Usages
10
28
  ------
11
29
  ### With Rails 3.1 Asset pipeline
@@ -28,14 +46,6 @@ Access http://localhost:3000/assets/reddisc.png (tweak URL for your environment)
28
46
  You will see a red circle, and please enjoy with [processing.js API reference](http://processingjs.org/reference).
29
47
 
30
48
 
31
- Caveats
32
- -------
33
- Baren requires PhantomJS as the Javascript and Canvas engine,
34
- but current version of baren gem only install mac version of PhantomJS.
35
- If you use other platform, place a binary of phantomjs on {path to baren gem}/opt/phantomjs/bin/phantomjs.
36
- I'll support Linux and Windows soon after.
37
-
38
-
39
49
  Developer Notes
40
50
  ---------------
41
51
  If you didn't install baren as a gem, you will need to install some non-gem prerequisites.
data/lib/baren.rb CHANGED
@@ -27,7 +27,12 @@ module Baren
27
27
  dataURL = Tempfile.open("pjs2png") do |f|
28
28
  f.print Tilt.new(PhantomJs.pjs2png_path).render(nil, :pjs => data.inspect, :processingjs => File.read(ProcessingJs.path).inspect)
29
29
  f.flush
30
- cmd = "#{PhantomJs.path} #{f.path}"
30
+ case RUBY_PLATFORM
31
+ when /linux/
32
+ cmd = "xvfb-run #{PhantomJs.path} #{f.path}"
33
+ else
34
+ cmd = "#{PhantomJs.path} #{f.path}"
35
+ end
31
36
  `#{cmd}`
32
37
  end
33
38
  require "base64"
data/opt/Rakefile CHANGED
@@ -1,21 +1,23 @@
1
+ # -*- ruby -*-
1
2
  # PhantomJS
3
+ phantomjs = {
4
+ :target => "phantomjs/bin/phantomjs",
5
+ :bindir => "phantomjs/bin",
6
+ }
7
+
2
8
  case RUBY_PLATFORM
3
9
  when /darwin/
4
- phantomjs = {
5
- :bindir => "phantomjs/bin",
6
- :target => "phantomjs/bin/phantomjs",
10
+ phantomjs.update({
7
11
  :url => "http://phantomjs.googlecode.com/files/phantomjs-1.1.0-macosx-universal.dmg",
8
12
  :archive => "phantomjs/phantomjs-1.1.0-macosx-universal.dmg",
9
13
  :app => "phantomjs/phantomjs.app",
10
14
  :volume => "/Volumes/phantomjs",
11
- }
12
-
13
- file phantomjs[:target] => [phantomjs[:app], File.dirname(phantomjs[:target])] do |t|
15
+ })
16
+
17
+ file phantomjs[:target] => [phantomjs[:app]] do |t|
14
18
  sh "(cd #{t.prerequisites[1]} && ln -s ../#{File.basename(t.prerequisites[0])}/Contents/MacOS/phantomjs phantomjs)"
15
19
  end
16
20
 
17
- directory File.dirname(phantomjs[:target])
18
-
19
21
  file phantomjs[:app] => [phantomjs[:archive]] do |t|
20
22
  sh "hdiutil attach #{t.prerequisites[0]}"
21
23
  begin
@@ -24,16 +26,37 @@ when /darwin/
24
26
  sh "hdiutil detach #{phantomjs[:volume]}"
25
27
  end
26
28
  end
27
-
28
- file phantomjs[:archive] do |t|
29
- sh "(cd phantomjs && curl -O #{phantomjs[:url]})"
29
+ when /linux/
30
+ phantomjs.update({
31
+ :url => "http://phantomjs.googlecode.com/files/phantomjs-1.1.0-source.tar.gz",
32
+ :archive => "phantomjs/phantomjs-1.1.0-source.tar.gz",
33
+ :builddir => "phantomjs/phantomjs-1.1.0-source",
34
+ :buildbin => "phantomjs/phantomjs-1.1.0-source/bin/phantomjs",
35
+ })
36
+
37
+ file phantomjs[:target] => [phantomjs[:buildbin]] do |t|
38
+ sh "(cd #{phantomjs[:bindir]} && ln -s ../../#{phantomjs[:buildbin]} phantomjs)"
39
+ end
40
+
41
+ file phantomjs[:buildbin] => [phantomjs[:archive], phantomjs[:builddir]] do |t|
42
+ sh "(cd #{phantomjs[:builddir]} && tar xzf ../#{File.basename(phantomjs[:archive])} && qmake-qt4 && make)"
30
43
  end
44
+
45
+ directory phantomjs[:builddir]
31
46
  else
32
47
  # http://code.google.com/p/phantomjs/downloads/list
33
48
  # http://code.google.com/p/phantomjs/wiki/Installation
34
49
  abort "Your RUBY_PLATFORM (#{RUBY_PLATFORM}) is not supported yet. See http://code.google.com/p/phantomjs/wiki/Installation and help us."
35
50
  end
36
51
 
52
+ file phantomjs[:target] => File.dirname(phantomjs[:target])
53
+
54
+ directory File.dirname(phantomjs[:target])
55
+
56
+ file phantomjs[:archive] do |t|
57
+ sh "(cd phantomjs && curl -O #{phantomjs[:url]})"
58
+ end
59
+
37
60
 
38
61
  # Processing.js
39
62
  processingjs = {
metadata CHANGED
@@ -1,99 +1,74 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: baren
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 0
9
- version: 0.1.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Hiroshi Saito
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2011-05-29 00:00:00 +09:00
12
+ date: 2011-05-31 00:00:00.000000000 +09:00
18
13
  default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
21
16
  name: railties
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &78401630 !ruby/object:Gem::Requirement
24
18
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 3
30
- - 1
31
- - 0
32
- - rc1
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
33
22
  version: 3.1.0.rc1
34
23
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: sprockets
38
24
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
25
+ version_requirements: *78401630
26
+ - !ruby/object:Gem::Dependency
27
+ name: sprockets
28
+ requirement: &78401400 !ruby/object:Gem::Requirement
40
29
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- segments:
45
- - 2
46
- - 0
47
- - 0
48
- - beta
49
- - 8
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
50
33
  version: 2.0.0.beta.8
51
34
  type: :runtime
52
- version_requirements: *id002
53
- description: A asset pipeline processor, and a template engine for images.
35
+ prerelease: false
36
+ version_requirements: *78401400
37
+ description: An asset pipeline processor, and a template engine for images.
54
38
  email: hiroshi3110@gmail.com
55
39
  executables: []
56
-
57
- extensions:
40
+ extensions:
58
41
  - opt/Rakefile
59
42
  extra_rdoc_files: []
60
-
61
- files:
43
+ files:
62
44
  - README.md
45
+ - CHANGELOG.md
63
46
  - lib/baren.rb
64
47
  - opt/Rakefile
65
48
  - opt/phantomjs/pjs2png.js.erb
66
49
  has_rdoc: true
67
50
  homepage: http://github.com/hiroshi/baren
68
51
  licenses: []
69
-
70
52
  post_install_message:
71
53
  rdoc_options: []
72
-
73
- require_paths:
54
+ require_paths:
74
55
  - lib
75
- required_ruby_version: !ruby/object:Gem::Requirement
56
+ required_ruby_version: !ruby/object:Gem::Requirement
76
57
  none: false
77
- requirements:
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- segments:
81
- - 0
82
- version: "0"
83
- required_rubygems_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
63
  none: false
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- segments:
89
- - 0
90
- version: "0"
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
91
68
  requirements: []
92
-
93
69
  rubyforge_project:
94
- rubygems_version: 1.3.7
70
+ rubygems_version: 1.6.2
95
71
  signing_key:
96
72
  specification_version: 3
97
73
  summary: Generate .png form .pjs, processing.js script.
98
74
  test_files: []
99
-