half-pipe 0.2.4 → 0.3.0.alpha.1

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: d8de0d62c5278708aaa208e8d957285b14381ee0
4
- data.tar.gz: 4fd47d8a8a85efeb9ce775288932f548e74380ab
3
+ metadata.gz: e25db15e868e377f593f10acc4d469b234b8e6a8
4
+ data.tar.gz: 6a79cc94c56035c15fb9a43a64c3af950283fc38
5
5
  SHA512:
6
- metadata.gz: 091ac0239e741cbffd1b7f3ba27b0f1386d817f2ee46260b1fd951aab2f6d2b1bad16adc8ff686d133de7bca37c4d2859644944225e6622eb53efc391e2f57d5
7
- data.tar.gz: 16592964d9521c786a6b71fee1dac16e42120e7822439baffd233e5d4d947897c8b8be05a01d2e8f4468c41a53b2c8f4ecc2faa0d6ec9c1058ec479d8df31406
6
+ metadata.gz: 4e2c8314902a381dd4fa1e81a94c3d5a3a8b16d211ce171913e008cebabaa8c171d2e597b2f8543ca22317faada95aa6fd358363f45dca20abffddcdf3bb2d76
7
+ data.tar.gz: f54a68b26199cbe600a8b0056253eedc79fc68baae72b021204e09c1856fc84aeb8acd0b087ce5a783e48ee483d05635059393ea52f563e6f3257b7b48efeb03
data/README.md CHANGED
@@ -112,7 +112,7 @@ In this early release if you want to configure anything, you'll have to manually
112
112
 
113
113
  ## Roadmap
114
114
 
115
- - v0.2 - Asset fingerprinting
115
+ We're currently undergoing some pretty major changes in the Half Pipe workflow. See our [milestones](/d-i/half-pipe/issues/milestones) for what's coming in the near future.
116
116
 
117
117
  ## Future Features
118
118
 
data/ROADMAP.md ADDED
@@ -0,0 +1 @@
1
+ Half Pipe currently undergoing some pretty major workflow changes. See our [milestones](/d-i/half-pipe/issues/milestones) for what's coming in the near future.
@@ -1,10 +1,10 @@
1
1
  module HalfPipeHelper
2
2
 
3
3
  def requirejs_include_tag(script, options={})
4
- script, options = if Rails.application.config.half_pipe.serve_assets
5
- ["/components/requirejs/require.js", { data: { main: "/scripts/application.js" } }]
4
+ script, options = if Rails.application.config.half_pipe.env.debug?
5
+ ["/components/requirejs/require.js", { data: { main: "/assets/scripts/application.js" } }]
6
6
  else
7
- ["/scripts/application.js", {}]
7
+ ["/assets/scripts/application.js", {}]
8
8
  end
9
9
  javascript_include_tag script, options
10
10
  end
data/half-pipe.gemspec CHANGED
@@ -18,4 +18,5 @@ Gem::Specification.new do |gem|
18
18
  gem.require_paths = ["lib"]
19
19
 
20
20
  gem.add_dependency "sass"
21
+ gem.add_dependency "rails", "~> 4.0.0"
21
22
  end
@@ -8,13 +8,33 @@ module HalfPipe
8
8
  @_half_pipe_source_root ||= File.expand_path("../templates", __FILE__)
9
9
  end
10
10
 
11
- def create_initializer_file
11
+ def welcome
12
+ say "*" * 120
13
+ say
14
+ say "Welcome to Half Pipe!"
15
+ say "I'm going to take some preliminary setup steps to get you going."
16
+ say
17
+ say "*" * 120
18
+ end
19
+
20
+ def create_config_files
21
+ say
22
+ say "First I need to generate config files for NPM & Bower. This is where you'll put your asset building and browser dependencies in the future."
23
+ say
24
+ sleep 3
12
25
  template "package.json", "package.json"
13
26
  template "_bowerrc", ".bowerrc"
14
27
  template "bower.json", "bower.json"
15
28
  template "_jshintrc", ".jshintrc"
16
29
  template "Gruntfile.js", "Gruntfile.js"
30
+ template "config/half-pipe.json"
31
+ end
17
32
 
33
+ def remove_sprockets
34
+ say
35
+ say "Half Pipe uses app/scripts and app/styles for your JavaScript and Stylesheet templates. I need to update your application layout to point to those, plus remove any traces of sprockets."
36
+ say
37
+ sleep 3
18
38
  comment_lines "config/application.rb", %r{sprockets/railtie}
19
39
 
20
40
  railties_requires = File.read(File.join(self.class.source_root, "railties.rb"))
@@ -22,46 +42,92 @@ module HalfPipe
22
42
 
23
43
  gsub_file "app/views/layouts/application.html.erb", %r{\s*<%= stylesheet_link_tag\s+"application".*%>$}, ''
24
44
  gsub_file "app/views/layouts/application.html.erb", %r{\s*<%= javascript_include_tag\s+"application".*%>$}, ''
45
+ end
46
+
47
+ def insert_includes_into_layout
25
48
  insert_into_file "app/views/layouts/application.html.erb", %Q{ <%= requirejs_include_tag "/scripts/application.js" %>\n }, before: "</body>"
26
49
  insert_into_file "app/views/layouts/application.html.erb", %Q{ <%= stylesheet_link_tag "/styles/main.css" %>\n }, before: "</head>"
50
+ end
27
51
 
28
- gsub_file "config/environments/development.rb", "config.assets.debug = true", "config.middleware.use Rack::HalfPipe"
52
+ def generate_scripts
53
+ say
54
+ say "Now I can generate some starter templates for your requirejs configuration and Sass imports"
55
+ say
56
+ sleep 3
57
+ empty_directory "app/scripts"
29
58
 
30
- append_to_file ".gitignore", %w(node_modules bower_components public/scripts public/styles public/images).join("\n"), force: true
59
+ template "app/scripts/main.js"
60
+ template "app/scripts/application.js"
61
+ end
31
62
 
32
- directory "app"
63
+ def generate_stylesheets
64
+ template "app/styles/main.scss"
65
+ end
33
66
 
34
- empty_directory "app/scripts"
67
+ def insert_ignores
68
+ append_to_file ".gitignore", %w(node_modules bower_components public/assets).join("\n"), force: true
69
+ end
35
70
 
36
- inside "app/scripts" do
37
- template "main.js", force: true
38
- template "application.js", force: true
71
+ def generate_task_config_files
72
+ say
73
+ say "All of your Grunt tasks will be configured by files in #{Rails.root.join("tasks/options")}. After I'm done, have a look there to see if you need to customize anything."
74
+ say
75
+ sleep 3
76
+ empty_directory "tasks/options"
77
+
78
+ inside "tasks/options" do
79
+ task_options_files.each do |f|
80
+ template File.basename(f), force: true
81
+ end
39
82
  end
83
+ end
40
84
 
41
- initializer "sass.rb" do
42
- %Q{
43
- require 'sass/importers/bower_importer'
44
- require 'sass/half_pipe_functions'
45
- Sass.load_paths << Sass::Importers::BowerImporter.new("bower_components")
46
- }
47
- end
85
+ def patch_sass_imports
86
+ # TODO: Remove this once https://github.com/chriseppstein/sass-css-importer/pull/6 is accepted and released
87
+ gem "sass-css-importer", github: "joefiorini/sass-css-importer", branch: "load-paths"
88
+ end
89
+
90
+ def install_dependencies
91
+ say_status :run, "bundle install"
48
92
 
93
+ bundle_path = Gem.bin_path("bundler", "bundle")
94
+ Bundler.with_clean_env do
95
+ `"#{Gem.ruby}" "#{bundle_path}" install`
96
+ end
49
97
  run "npm install"
98
+ end
50
99
 
100
+ def build_project
51
101
  ENV["PATH"] = "./node_modules/.bin:#{ENV["PATH"]}"
52
102
 
53
103
  run "bower install"
54
- run "grunt build"
104
+ run "grunt build:public"
105
+ end
106
+
107
+
108
+ def finalize
109
+
110
+ say
111
+ say "Congratulations!".upcase
112
+ say
55
113
 
56
114
  say "You may now safely migrate your assets to app/scripts and/or app/styles. Feel free to delete app/assets/javascripts and app/assets/stylesheets when you're done."
115
+ say
116
+ say "To start developing, fire up a development server with 'grunt server:debug'. You can continue to use 'http://localhost:3000' in your browser to access your app. I will take care of rebuilding your assets and restarting your Rails server as you work. Enjoy!"
57
117
  end
58
118
 
119
+ protected
120
+
59
121
  def main_module_name
60
122
  app_name.underscore.dasherize
61
123
  end
62
124
 
63
125
  def app_name
64
- Rails.application.class.parent_name
126
+ Rails.application.class.parent_name || "myapp"
127
+ end
128
+
129
+ def task_options_files
130
+ Dir[File.join(%W(#{File.dirname(__FILE__)} templates tasks options *.js))]
65
131
  end
66
132
 
67
133
  end
@@ -1,65 +1,38 @@
1
1
  /*global module:false*/
2
2
  module.exports = function(grunt) {
3
3
 
4
+ require("load-grunt-tasks")(grunt);
5
+ grunt.loadNpmTasks('grunt-connect-proxy');
6
+
7
+ function config(name){
8
+ return require("./tasks/options/" + name);
9
+ }
4
10
 
5
11
  // Project configuration.
6
12
  grunt.initConfig({
7
13
  // Metadata.
8
14
  pkg: grunt.file.readJSON('package.json'),
9
-
10
- jshint: {
11
- options: {
12
- jshintrc: '.jshintrc'
13
- },
14
- gruntfile: {
15
- src: 'Gruntfile.js'
16
- }
17
- },
18
-
19
- sass: {
20
- options: {
21
- style: 'expanded',
22
- require: ['./config/initializers/sass']
23
- },
24
- 'tmp/styles/main.css': [
25
- 'app/styles/main.scss'
26
- ]
27
- },
28
-
29
- cssmin: {
30
- 'public/styles/main.css': 'tmp/styles/main.css'
31
- },
32
-
33
- requirejs: {
34
- scripts: {
35
- options: {
36
- almond: true,
37
- baseUrl: "app/scripts",
38
- mainConfigFile: "app/scripts/application.js",
39
- name: "<%= main_module_name %>",
40
- out: "public/scripts/application.js",
41
- wrap: true
42
- }
43
- }
44
- },
45
-
46
- clean: ['public/scripts/', 'public/styles', 'tmp/']
47
-
15
+ dirs: grunt.file.readJSON('config/half-pipe.json'),
16
+ bowerOpts: grunt.file.readJSON('.bowerrc'),
17
+ jshint: config("jshint"),
18
+ sass: config("sass"),
19
+ cssmin: config("cssmin"),
20
+ requirejs: config("requirejs"),
21
+ connect: config("connect"),
22
+ copy: config("copy"),
23
+ watch: config("watch"),
24
+ rails: config("rails"),
25
+ clean: ['<%%= dirs.tmp %>']
48
26
  });
49
27
 
50
- // These plugins provide necessary tasks.
51
- grunt.loadNpmTasks('grunt-contrib-jshint');
52
- grunt.loadNpmTasks('grunt-contrib-sass');
53
- grunt.loadNpmTasks('grunt-contrib-cssmin');
54
- grunt.loadNpmTasks('grunt-contrib-copy');
55
- grunt.loadNpmTasks('grunt-contrib-clean');
56
- grunt.loadNpmTasks('grunt-requirejs');
57
-
58
28
  // Default task.
59
- grunt.registerTask('default', 'build');
29
+ grunt.registerTask('default', 'build:debug');
30
+
31
+ grunt.registerTask('build:debug', ['copy:prepare', 'sass:debug', 'copy:stage']);
32
+ grunt.registerTask('build:public', ['copy:prepare', 'sass:public', 'copy:stage', 'requirejs:public', 'copy:public']);
60
33
 
61
- // Build task.
62
- grunt.registerTask('build', ['jshint', 'sass', 'cssmin', 'requirejs']);
34
+ grunt.registerTask('server:debug', ['build:debug', 'configureProxies', 'connect:debug', 'rails:server:start', 'watch']);
35
+ grunt.registerTask('server:public', ['build:public', 'configureProxies', 'connect:public:keepalive']);
63
36
 
64
37
  };
65
38
 
@@ -1 +1 @@
1
- @import "bower!normalize-css/normalize";
1
+ @import "CSS:normalize-css/normalize";
@@ -0,0 +1,3 @@
1
+ {
2
+ "tmp": "tmp/half-pipe"
3
+ }
@@ -1,15 +1,22 @@
1
1
  {
2
2
  "name": "<%= app_name %>",
3
+ "dependencies": {
4
+ "bower": "~1.2.0"
5
+ },
3
6
  "devDependencies": {
4
7
  "grunt-cli": "~0.1.7",
5
8
  "grunt": "~0.4.1",
6
- "bower": "~1.0.0",
7
9
  "grunt-contrib-sass": "~0.3.0",
8
10
  "grunt-contrib-copy": "~0.4.1",
9
11
  "grunt-contrib-clean": "~0.4.1",
10
12
  "grunt-contrib-jshint": "~0.4.3",
11
13
  "grunt-contrib-cssmin": "~0.6.0",
12
- "grunt-requirejs": "~0.3.5"
14
+ "grunt-contrib-requirejs": "~0.4.1",
15
+ "grunt-contrib-connect": "~0.5.0",
16
+ "grunt-contrib-watch": "~0.5.3",
17
+ "grunt-connect-proxy": "~0.1.5",
18
+ "grunt-rails-server": "git://github.com/joefiorini/grunt-rails-server.git",
19
+ "load-grunt-tasks": "~0.1.0",
20
+ "almond": "~0.2.6"
13
21
  }
14
22
  }
15
-
@@ -0,0 +1,63 @@
1
+ var proxy = require('grunt-connect-proxy/lib/utils').proxyRequest;
2
+
3
+ module.exports = {
4
+ options: {
5
+ port: process.env.PORT || "3000",
6
+ middleware: middlewareChooser,
7
+ debug: true
8
+ },
9
+ debug: {
10
+ options: {
11
+ base: ["<%%= dirs.tmp %>/public", "<%%= bowerOpts.directory %>"]
12
+ }
13
+ },
14
+ "public": {
15
+ options: {
16
+ base: ["public/"]
17
+ }
18
+ },
19
+ proxies: [{
20
+ context: '/',
21
+ host: 'localhost',
22
+ port: 3001,
23
+ https: false,
24
+ changeOrigin: false
25
+ }],
26
+ options: {
27
+ debounceDelay: 200
28
+ }
29
+ };
30
+
31
+ function middlewareChooser(connect, options) {
32
+ var assetServer = connect['static'](options.base[0]);
33
+ var bowerServer;
34
+
35
+ if(options.base[1]) {
36
+ bowerServer = connect['static'](options.base[1]);
37
+ }
38
+
39
+ return [
40
+ runMiddleware(function(request) {
41
+ if(request.url.match(/^\/assets/)) {
42
+ return assetServer;
43
+ } else if(bowerServer && request.url.match(/^\/components/)) {
44
+ request.url = request.url.replace(/^\/components/, "");
45
+ return bowerServer;
46
+ } else {
47
+ return proxy;
48
+ }
49
+ })
50
+ ];
51
+ }
52
+
53
+ function runMiddleware(chooser) {
54
+ return function(request, response, next) {
55
+ var middleware = chooser(request);
56
+
57
+ if(middleware) {
58
+ middleware.apply(this, arguments);
59
+ } else {
60
+ next();
61
+ }
62
+ }
63
+ }
@@ -0,0 +1,31 @@
1
+ module.exports = {
2
+ prepare: {
3
+ files: [{
4
+ expand: true,
5
+ cwd: 'app/scripts',
6
+ src: '**/*.js',
7
+ dest: '<%%= dirs.tmp %>/prepare/assets/scripts'
8
+ }, {
9
+ expand: true,
10
+ cwd: 'app/images',
11
+ src: '**/*',
12
+ dest: '<%%= dirs.tmp %>/prepare/assets/images'
13
+ }]
14
+ },
15
+ stage: {
16
+ files: [{
17
+ expand: true,
18
+ cwd: '<%%= dirs.tmp %>/prepare',
19
+ src: '**/*',
20
+ dest: '<%%= dirs.tmp %>/public'
21
+ }]
22
+ },
23
+ "public": {
24
+ files: [{
25
+ expand: true,
26
+ cwd: '<%%= dirs.tmp %>/prepare',
27
+ src: ['**/*', '!**/*.js'],
28
+ dest: 'public/'
29
+ }]
30
+ }
31
+ };
@@ -0,0 +1,3 @@
1
+ module.exports = {
2
+ 'public/styles/main.css': 'tmp/styles/main.css'
3
+ };
@@ -0,0 +1,8 @@
1
+ module.exports = {
2
+ options: {
3
+ jshintrc: '.jshintrc'
4
+ },
5
+ gruntfile: {
6
+ src: 'Gruntfile.js'
7
+ }
8
+ };
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ options: {
3
+ port: 3001
4
+ }
5
+ };
@@ -0,0 +1,45 @@
1
+ module.exports = {
2
+ "public": {
3
+ options: {
4
+ name: "../../../../../node_modules/almond/almond",
5
+ baseUrl: "<%%= dirs.tmp %>/public/assets/scripts",
6
+ out: "public/assets/scripts/application.js",
7
+ wrap: true,
8
+ insertRequire: ['<%= main_module_name %>'],
9
+ deps: ['<%= main_module_name %>'],
10
+ shim: {
11
+ 'jquery': { exports: '$' },
12
+ 'jquery.textareaAutogrow': {
13
+ deps: ['jquery']
14
+ },
15
+ 'pickadate/picker.date': {
16
+ deps: ['pickadate/picker'],
17
+ exports: 'Picker'
18
+ },
19
+ 'pickadate/picker.time': {
20
+ deps: ['pickadate/picker'],
21
+ exports: 'Picker'
22
+ },
23
+ 'pickadate/picker': {
24
+ deps: ['jquery'],
25
+ exports: 'Picker'
26
+ }
27
+ },
28
+ paths: {
29
+ '<%= main_module_name %>': 'main',
30
+ 'flight': '../../../../../bower_components/flight',
31
+ 'jquery': '../../../../../bower_components/jquery/jquery',
32
+ 'lodash': '../../../../../bower_components/lodash/lodash',
33
+ 'jquery-ujs': '../../../../../bower_components/jquery-ujs/src/rails',
34
+ 'jquery.fileupload': '../../../../../bower_components/jquery-file-upload/js/jquery.fileupload',
35
+ 'jquery.ui.widget': '../../../../../bower_components/jquery-file-upload/js/vendor/jquery.ui.widget',
36
+ 'jquery.textareaAutogrow': '../../../../../bower_components/jquery.textareaAutogrow/jquery.textareaAutogrow',
37
+ 'bacon': '../../../../../bower_components/bacon/dist/Bacon',
38
+ 'bacon.jquery': '../../../../../bower_components/bacon.jquery/dist/bacon.jquery',
39
+ 'zeroclipboard': '../../../../../bower_components/zeroclipboard/ZeroClipboard',
40
+ 'pickadate': '../../../../../bower_components/pickadate/lib'
41
+
42
+ }
43
+ }
44
+ }
45
+ };
@@ -0,0 +1,19 @@
1
+ module.exports = {
2
+ options: {
3
+ style: 'expanded',
4
+ require: ['sass-css-importer'],
5
+ loadPath: ['<%%= bowerOpts.directory || "bower_components" %>'],
6
+ bundleExec: true
7
+ },
8
+ debug: {
9
+ src: 'app/styles/main.scss',
10
+ dest: '<%%= dirs.tmp %>/prepare/assets/styles/main.css'
11
+ },
12
+ "public": {
13
+ options: {
14
+ style: 'compressed'
15
+ },
16
+ src: 'app/styles/main.scss',
17
+ dest: '<%%= dirs.tmp %>/prepare/assets/styles/main.css'
18
+ }
19
+ };
@@ -0,0 +1,13 @@
1
+ module.exports = {
2
+ debug: {
3
+ files: ['app/scripts/**/*', 'app/styles/**/*'],
4
+ tasks: ['build:debug']
5
+ },
6
+ rails: {
7
+ files: ['config/**/*.rb', 'lib/**/*.rb', 'Gemfile.lock'],
8
+ tasks: ['rails:server:restart'],
9
+ options: {
10
+ interrupt: true
11
+ }
12
+ }
13
+ };
@@ -3,31 +3,7 @@ module HalfPipe
3
3
 
4
4
  config.before_configuration do
5
5
  config.half_pipe = ActiveSupport::OrderedOptions.new
6
- config.half_pipe.serve_assets = false
7
- config.half_pipe.quiet_assets = false
8
- end
9
-
10
- initializer "half_pipe.middleware", after: "build_middleware_stack" do |app|
11
- app.config.middleware.use Rack::HalfPipe if config.half_pipe.serve_assets
12
- end
13
-
14
- initializer "half_pipe.quiet_assets", after: "build_middleware_stack" do |app|
15
- next unless app.config.half_pipe.quiet_assets
16
-
17
- ASSETS_PREFIX = %r{\/(?:images|scripts|styles|components)}
18
-
19
- Rails::Rack::Logger.class_eval do
20
- def call_with_quiet_assets(env)
21
- old_logger_level, level = Rails.logger.level, Logger::ERROR
22
- # Increase log level because of messages that have a low level should not be displayed
23
- Rails.logger.level = level if env['PATH_INFO'] =~ ASSETS_PREFIX
24
- call_without_quiet_assets(env)
25
- ensure
26
- Rails.logger.level = old_logger_level
27
- end
28
- alias_method_chain :call, :quiet_assets
29
- end
30
-
6
+ config.half_pipe.env = ActiveSupport::StringInquirer.new(ENV['HALF_PIPE_ENV'] || 'debug')
31
7
  end
32
8
 
33
9
  end
@@ -1,5 +1,5 @@
1
1
  module Half
2
2
  module Pipe
3
- VERSION = "0.2.4"
3
+ VERSION = "0.3.0.alpha.1"
4
4
  end
5
5
  end
@@ -79,6 +79,7 @@ module Rack
79
79
  :source_dir => 'app/styles',
80
80
  :url => '/styles',
81
81
  sass_options: {
82
+ debug_info: true,
82
83
  line_comments: false,
83
84
  style: :expanded
84
85
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: half-pipe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.3.0.alpha.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Fiorini
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-27 00:00:00.000000000 Z
11
+ date: 2013-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sass
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 4.0.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 4.0.0
27
41
  description: Grunt-based workflow for your Rails assets
28
42
  email:
29
43
  - joe@joefiorini.com
@@ -35,6 +49,7 @@ files:
35
49
  - Gemfile
36
50
  - LICENSE.txt
37
51
  - README.md
52
+ - ROADMAP.md
38
53
  - Rakefile
39
54
  - app/helpers/half_pipe_helper.rb
40
55
  - examples/rails/.bowerrc
@@ -101,8 +116,17 @@ files:
101
116
  - lib/generators/half_pipe/templates/app/scripts/main.js
102
117
  - lib/generators/half_pipe/templates/app/styles/main.scss
103
118
  - lib/generators/half_pipe/templates/bower.json
119
+ - lib/generators/half_pipe/templates/config/half-pipe.json
104
120
  - lib/generators/half_pipe/templates/package.json
105
121
  - lib/generators/half_pipe/templates/railties.rb
122
+ - lib/generators/half_pipe/templates/tasks/options/connect.js
123
+ - lib/generators/half_pipe/templates/tasks/options/copy.js
124
+ - lib/generators/half_pipe/templates/tasks/options/cssmin.js
125
+ - lib/generators/half_pipe/templates/tasks/options/jshint.js
126
+ - lib/generators/half_pipe/templates/tasks/options/rails.js
127
+ - lib/generators/half_pipe/templates/tasks/options/requirejs.js
128
+ - lib/generators/half_pipe/templates/tasks/options/sass.js
129
+ - lib/generators/half_pipe/templates/tasks/options/watch.js
106
130
  - lib/half-pipe.rb
107
131
  - lib/half-pipe/rails.rb
108
132
  - lib/half-pipe/version.rb
@@ -127,9 +151,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
151
  version: '0'
128
152
  required_rubygems_version: !ruby/object:Gem::Requirement
129
153
  requirements:
130
- - - '>='
154
+ - - '>'
131
155
  - !ruby/object:Gem::Version
132
- version: '0'
156
+ version: 1.3.1
133
157
  requirements: []
134
158
  rubyforge_project:
135
159
  rubygems_version: 2.0.2