surfnperf 1.0.2 → 1.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c4c7403d39855f590d1dd5e2c2345237274bf602
4
- data.tar.gz: 6e855ec75d1e8b0635c9e4ab5b6597518609da26
3
+ metadata.gz: 0c65e50b4eeb919e418862f9841b3f3ed7e6dd80
4
+ data.tar.gz: 6e81022eac756e5eac332ebd2ed73a939f8d5488
5
5
  SHA512:
6
- metadata.gz: 52b75f11f6a00ba94a4a5e2d246d26860038dd0d9beac2371468a9059394620c794e562c2ff804813897589bd4fb9b9312d300eaa128408b9f61ce54161cb807
7
- data.tar.gz: a9aba799e9f43869e3a45d0eb82acc8f63c17640db5e6f2c7309f0834d9608a299a40165e5c11e6a2b29370e2da3002c596f288a11e5e77fcec1fb7e557da3bf
6
+ metadata.gz: 2c411bcec8cf7ac6d148d0addb2074612ffac622078e9d0ba09cc363e1fabaa73dd80b74a99cea64c7e301abe86510b0167dc144b4b8e1143a1f107a40574062
7
+ data.tar.gz: 4f847eb324ef4a10c62a6c25d7bd3ebc8a30ea4083b34af78324f6126953677b0fd4725fd16836f03c46c8d128bb834e748ef4dd399351e7e402e8c587b4ab34
data/README.md CHANGED
@@ -1,7 +1,17 @@
1
- Surf-N-Perf
1
+ Surf-N-Perf
2
2
  ==============
3
3
 
4
- Micro-library for gathering frontend web page performance data.
4
+ Micro-library for gathering frontend web page performance data.
5
+
6
+ Surf-N-Perf provides a simple to use API to gather [User Timing](http://www.w3.org/TR/user-timing/) and other important performance data in any browser.
7
+
8
+ Tired of typing `window.performance.getEntriesByName('foo')[0].startTime;` with your User Timing Polyfill?
9
+
10
+ With Surf-N-Perf, all you need is `surfnperf.getMark('foo')';`, and that's just the start!
11
+
12
+ Check out the [JavaScript API](https://github.com/Comcast/Surf-N-Perf/wiki/JavaScript-API) to see all of its features and the [full documentation](http://comcast.github.io/Surf-N-Perf/docs/SurfNPerf.html) for a list of methods & how to use them.
13
+
14
+ Available as both an [NPM Module](https://www.npmjs.com/package/surfnperf) and a [Ruby Gem](https://rubygems.org/gems/surfnperf).
5
15
 
6
16
  [![Build Status](https://travis-ci.org/Comcast/Surf-N-Perf.svg?branch=master)](https://travis-ci.org/Comcast/Surf-N-Perf)
7
17
 
@@ -63,7 +73,7 @@ Details in the [JavaScript API](https://github.com/Comcast/Surf-N-Perf/wiki/Java
63
73
 
64
74
  ### Using within a Rails project
65
75
 
66
- The [surfnperf Ruby Gem](https://rubygems.org/gems/surfnperf) allows you to quickly & easily integrate Surf-N-Perf into your Rails projects. To include the necessary files, add `surfnperf` to your `Gemfile`:
76
+ The [surfnperf Ruby Gem](https://rubygems.org/gems/surfnperf) allows you to quickly & easily integrate Surf-N-Perf into your [Rails](http://rubyonrails.org/) projects. To include the necessary files, add `surfnperf` to your `Gemfile`:
67
77
 
68
78
  ```ruby
69
79
  gem 'surfnperf'
@@ -83,9 +93,40 @@ The necessary script for the ```<head>``` of your HTML document is also availabl
83
93
 
84
94
  Those 3 lines of code are all your need to get started using Surf-N-Perf in Rails!
85
95
 
96
+
97
+ ### Using within a Middleman project
98
+
99
+ The [surfnperf Ruby Gem](https://rubygems.org/gems/surfnperf) also allows you to quickly & easily integrate Surf-N-Perf into your [Middleman](https://middlemanapp.com/) projects. Instructions are similar to the Rails instructions above, with one extra step. Start by adding at least v1.1.0 of `surfnperf` to your Middleman project's `Gemfile`:
100
+
101
+ ```ruby
102
+ gem "surfnperf", ">=1.1.0"
103
+ ```
104
+
105
+ After a `$ bundle install`, you'll be able to include the [main JavaScript file](https://github.com/Comcast/Surf-N-Perf/blob/master/surfnperf.js) in your JavaScript manifest by simply adding:
106
+
107
+ ```
108
+ //= require surfnperf
109
+ ```
110
+
111
+ The necessary script for the ```<head>``` of your HTML document is also available to you via a [custom defined helper](https://middlemanapp.com/basics/helper_methods/#custom-defined-helpers) that you can include in the appropriate layout file for your page, such as `source/layouts/layout.erb` by adding this line:
112
+
113
+ ```erb
114
+ <%= surfnperf_head %>
115
+ ```
116
+
117
+ You will also have to configure the extension for that helper to be recognized by Middleman by adding this line to your `config.rb`:
118
+
119
+ ```ruby
120
+ activate :surfnperf
121
+ ```
122
+
123
+ You'll want to do that **outside** of your build-specific configuration (i.e. outside the `configure :build do` block) so that it is available when you run `$ bundle exec middleman server`
124
+
125
+ Those 4 lines of code are all your need to get started using Surf-N-Perf in Middleman!
126
+
86
127
  ### Using within other Ruby projects that integrate with Sprockets
87
128
 
88
- [Sprockets](https://github.com/sstephenson/sprockets) is what powers the [Asset Pipeline](http://guides.rubyonrails.org/asset_pipeline.html) in Rails, as well as other Ruby website tools such as [Middleman](https://middlemanapp.com/). For these other Ruby projects that use [Sprockets](https://middlemanapp.com/advanced/asset_pipeline/), integration is similar to the Rails instructions above, with one extra step:
129
+ [Sprockets](https://github.com/sstephenson/sprockets) is what powers the [Asset Pipeline](http://guides.rubyonrails.org/asset_pipeline.html) in Rails, Middleman, and other Ruby website tools. For these other Ruby projects that use [Sprockets](https://middlemanapp.com/advanced/asset_pipeline/), integration is similar to the Rails instructions above, with one extra step:
89
130
 
90
131
  Add `surfnperf` to your `Gemfile`:
91
132
 
@@ -99,7 +140,7 @@ After a `$ bundle install`, include [surfnperf.js](https://github.com/Comcast/Su
99
140
  //= require surfnperf
100
141
  ```
101
142
 
102
- For now, you'll have to manually include the [necessary script](#including-the-code-in-your-project) for the ```<head>``` of your HTML document. If someone would like to update the Ruby Gem to work as a proper [Middleman Extension](https://middlemanapp.com/advanced/custom_extensions/), we'd happily accept a [pull request](https://github.com/Comcast/Surf-N-Perf/issues/35).
143
+ For now, you'll have to manually include the [necessary script](#including-the-code-in-your-project) for the ```<head>``` of your HTML document.
103
144
 
104
145
  ## Running Tests & Other Development Tools
105
146
 
@@ -110,6 +151,7 @@ Install the dependencies by executing this command from the root of your Surf-N-
110
151
  ```bash
111
152
  $ npm install
112
153
  ```
154
+ If Grunt CLI has not been already installed, [go install it](http://gruntjs.com/getting-started).
113
155
 
114
156
  And then run the tests, JSHint, beautify your code & generate the minified file with:
115
157
 
@@ -119,7 +161,7 @@ $ grunt dev
119
161
 
120
162
  By default, it will run the tests using [PhantomJS](http://phantomjs.org/). You can also run the tests in any browser by going to http://localhost:9876/
121
163
 
122
- If you encounter an error related to Grunt, it may not be installed, so [go install it](http://gruntjs.com/getting-started).
164
+ The `grunt dev` process will watch for file updates, so as you modify surfnperf.js or the test files, it will automatically run jshint, jsbeautifier, uglify & the tests. To stop the watch process, press control + C
123
165
 
124
166
  ## License
125
167
 
@@ -4,17 +4,32 @@ module SurfNPerf
4
4
  if rails?
5
5
  register_rails_engine
6
6
  end
7
+ if middleman?
8
+ regsister_middleman_extension
9
+ end
7
10
  end
8
11
 
9
12
  def rails?
10
13
  defined?(::Rails)
11
14
  end
12
15
 
16
+ def middleman?
17
+ defined?(::Middleman)
18
+ end
19
+
13
20
  private
14
21
 
15
22
  def register_rails_engine
16
23
  require 'surfnperf/rails'
17
24
  end
25
+
26
+ def regsister_middleman_extension
27
+ require 'middleman_extension'
28
+ ::Middleman::Extensions.register(:surfnperf) do
29
+ require "surfnperf/extension"
30
+ ::Middleman::SurfNPerf
31
+ end
32
+ end
18
33
  end
19
34
  end
20
35
 
@@ -0,0 +1,14 @@
1
+ require_relative '../utils'
2
+ # Extension namespace
3
+ module Middleman
4
+ class SurfNPerf < Extension
5
+
6
+ helpers do
7
+ def surfnperf_head
8
+ filePath = File.join(::SurfNPerf::Utils.gem_libdir,'../app/views/surfnperf/_head.html.erb')
9
+ f = File.open(filePath, 'r')
10
+ f.read()
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,8 @@
1
+ module SurfNPerf
2
+ module Utils
3
+ # Return a directory with the project libraries.
4
+ def self.gem_libdir
5
+ File.dirname(File.expand_path(__FILE__))
6
+ end
7
+ end
8
+ end
@@ -26,7 +26,7 @@
26
26
  define('surfnperf', factory);
27
27
  } else if(typeof exports === 'object') {
28
28
  // For Browserify
29
- module.exports = factory(require('surfnperf'));
29
+ module.exports = factory();
30
30
  } else {
31
31
  // Browser global if not using Require.js or Browserify
32
32
  root.surfnperf = factory();
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: surfnperf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Riviello
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-18 00:00:00.000000000 Z
11
+ date: 2015-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,7 +38,8 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- description: Micro-library for gathering frontend web page performance data
41
+ description: Micro-library for gathering frontend web page performance data. Includes
42
+ helpers for Rails, Middleman & other frameworks that use Sprockets.
42
43
  email:
43
44
  - john_riviello@comcast.com
44
45
  executables: []
@@ -48,9 +49,11 @@ files:
48
49
  - README.md
49
50
  - app/views/surfnperf/_head.html.erb
50
51
  - lib/surfnperf.rb
52
+ - lib/surfnperf/extension.rb
51
53
  - lib/surfnperf/rails.rb
54
+ - lib/utils.rb
52
55
  - vendor/assets/javascripts/surfnperf.js
53
- homepage: https://github.com/Comcast/Surf-N-Perf
56
+ homepage: http://comcast.github.io/Surf-N-Perf/
54
57
  licenses:
55
58
  - MIT
56
59
  metadata: {}