prerender_rails_embedded 0.2.3 → 0.2.4

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MDA3ZDFiNWVkYWU3ZGU4NzgwMDM3YTQxMDc4NTNkZjgxNmM4Yzc4OQ==
4
+ MTkwOTdiZGVhZWY0YjM1YWZlNDI4MzY3YjJhMGQxZGZjNTY2MDE1Mw==
5
5
  data.tar.gz: !binary |-
6
- NTlkNTgzOGIyNGZiZDlmMzkxNmU5NjVmM2JkMTYwMDcwMmFjMzU2Yw==
6
+ ZmMzZmI2ZTJjOWMyYWRhNzUxYmNiM2QzMmM3MzQwNTg4ZGM4MTIwYw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OTcwNTUzYjdmZDIzZTJkYzczZjYzOTMyNmIwYTQ1Y2MzMGI0NDI3NzBhMTg5
10
- MjQxNDY1MzQ0NzYwZmMzMjg4NjczOWUxN2VhNWU2YTFmNDA2ODBiZTBjMTA3
11
- NWRhOTQ4YmMwZmM4YTFhZWQ3ODU2YWJmM2E1ZTg4MzNiZjczNWY=
9
+ NmJlNjJkZTNhZDQ5ZTNhZWYxNzA2YzBmZGY4YzY4ZWM0NzQzZTkyOTUxNDIz
10
+ ODA2NGU1ZTg5OGJmOTc5ZjU3NzQ2ZWEyNjQyYzFmNmE4MjIwMzgwMTg0MmI2
11
+ NTQ1NTY0OGI4MGNiOTkwMzdlZTViNGJkZjM5NzYwYmEzY2VjOTM=
12
12
  data.tar.gz: !binary |-
13
- MmFjMThiYjdiYTJkNjhhNzBmMWQ1M2JlNzA0MjUyZDcyZTkwNDE4OTczYzEz
14
- OWViMzUyYWRlM2VkY2M4YmJiMjk1MTMwNjlhOTI3ODQ2NzM1OTQ3YmExYTQx
15
- ZWVlYTAyMTg4YTRiYjEzZDAzOWZmNGMwZjc5MzE1YjFiMjlkZTA=
13
+ NjQ1MGY4ZWMyNTg5NjFkY2IzZWRkY2VlNDI2ODc1ZjY5ZmUzNDI2ODk3OThh
14
+ OWVkMzQxZTMzMDQ2NjNlNzZlYjllY2E0ZTQ5MWMwNDVmZjZhYTNkMjVmZTU1
15
+ NTJlNTM3YjVjMWY4NjcxN2M3M2RhMWEyMTVjYTg0YTM5ZDFhMmY=
@@ -8,7 +8,8 @@ var EVALUATE_JAVASCRIPT_CHECK_TIMEOUT = 50;
8
8
 
9
9
  var page = require('webpage').create(),
10
10
  system = require('system'),
11
- URI = require('./URI');
11
+ URI = require('./URI'),
12
+ fs = require('fs');
12
13
 
13
14
  var surrender = {};
14
15
  page.viewportSize = {
@@ -84,10 +85,12 @@ surrender.evaluateJavascriptOnPage = function(t) {
84
85
  };
85
86
 
86
87
  surrender.run = function() {
88
+ var _this = this;
89
+
87
90
  try {
88
- var _this = this;
89
91
  page.address = this.removeEscapedFragmentParameter(this.params().address);
90
92
  page.settings.userAgent = 'EtaliaBotAgent';
93
+ page.settings.resourceTimeout = 300;
91
94
  page.open(page.address, function (st) {
92
95
  if (st !== 'success') throw 'FAIL to load the address';
93
96
  _this.evaluateJavascriptOnPage();
@@ -97,20 +100,27 @@ surrender.run = function() {
97
100
  phantom.exit(1);
98
101
  }
99
102
 
100
- page.onError = function(msg, trace) {
101
- // var msgStack = ['ERROR: ' + msg];
102
- // if (trace && trace.length) {
103
- // msgStack.push('TRACE:');
104
- // trace.forEach(function(t) {
105
- // msgStack.push(' -> ' + t.file + ': ' + t.line + (t.function ? ' (in function "' + t.function +'")' : ''));
106
- // });
107
- // }
103
+ page.onError = function(message, trace) {
104
+ _this.logError(message);
105
+
106
+ //if (trace && trace.length) {
107
+ // msgStack.push('TRACE:');
108
+ // trace.forEach(function(t) {
109
+ // msgStack.push(' -> ' + t.file + ': ' + t.line + (t.function ? ' (in function "' + t.function +'")' : ''));
110
+ // });
111
+ //}
108
112
  // console.log(msgStack.join('\n'));
109
113
  };
110
114
 
111
- page.onConsoleMessage = function(msg, lineNum, sourceId) {
112
- //console.log('CONSOLE: ' + msg + ' (from line #' + lineNum + ' in "' + sourceId + '")');
115
+ page.onConsoleMessage = function(message, lineNum, sourceId) {
116
+ _this.logInfo('CONSOLE: ' + message + '(' + sourceId + '/L#"' + lineNum + '")');
113
117
  };
118
+
119
+ page.onResourceTimeout = function(request) {
120
+ console.log('<html><head><meta name="robots" content="noindex, noarchive" /></head><body></body></html>');
121
+ _this.logWarning('Response (#' + request.id + '): ' + JSON.stringify(request));
122
+ setTimeout(function() { phantom.exit(1); }, 0); // workaround to avoid PhantomJS crashes
123
+ }
114
124
  };
115
125
 
116
126
  surrender.removeEscapedFragmentParameter = function (addressUrl) {
@@ -130,4 +140,35 @@ surrender.removeEscapedFragmentParameter = function (addressUrl) {
130
140
  return newUrl;
131
141
  };
132
142
 
143
+ surrender.logFilePath = function() {
144
+ if (fs.exists("/opt/sites/frontend/current/log"))
145
+ return "/opt/sites/frontend/current/log";
146
+ else
147
+ return "/tmp";
148
+ };
149
+
150
+ surrender.flog = function(message) {
151
+ try {
152
+ fs.write(this.logFilePath() + '/etalia-prerender.log', message + "\n", 'a');
153
+ } catch(e) {
154
+ // can't fallback on anything
155
+ }
156
+ };
157
+ surrender.logDebug = function(message) {
158
+ this.flog(this.timestamp() + ' [DEBUG] ' + message);
159
+ };
160
+ surrender.logInfo = function(message) {
161
+ this.flog(this.timestamp() + ' [INFO ] ' + message);
162
+ };
163
+ surrender.logWarning = function(message) {
164
+ this.flog(this.timestamp() + ' [WARN ] ' + message);
165
+ };
166
+ surrender.logError = function(message) {
167
+ this.flog(this.timestamp() + ' [ERROR] ' + message);
168
+ };
169
+
170
+ surrender.timestamp = function() {
171
+ return new Date().toString().substring(0,24);
172
+ };
173
+
133
174
  surrender.run();
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'prerender_rails_embedded'
5
- spec.version = '0.2.3'
5
+ spec.version = '0.2.4'
6
6
  spec.authors = ['Gian Carlo Pace', 'Luca Mirra']
7
7
  spec.email = %w(giancarlo.pace@etalia.net)
8
8
  spec.description = %q{A plugin for prerender_rails middleware to render JavaScript web app on the fly calling phantomjs directly}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prerender_rails_embedded
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gian Carlo Pace
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-01-21 00:00:00.000000000 Z
12
+ date: 2015-01-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler