From 90a2e4e64bca5b299ec6fad9d9ad31d8421a2ca8 Mon Sep 17 00:00:00 2001 From: Bryan Lim Date: Fri, 14 Jun 2019 16:10:54 +0800 Subject: [PATCH] Rails6 (#31) * fix issue with latest webpacker * small logo.png and edit readme.md * finally fix the check. Check if .babelrc don't exist! --- README.md | 22 +++++++++++----------- lib/installs/setup.rb | 18 ++++++++++++------ lib/installs/spv.rb | 17 ++++++++++++----- lib/vueonrails/version.rb | 2 +- logo.png | Bin 0 -> 5108 bytes 5 files changed, 36 insertions(+), 23 deletions(-) create mode 100644 logo.png diff --git a/README.md b/README.md index 7c131df..62c9619 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,24 @@ ![vue on rails](https://vueonrails.com/assets/img/vueonrails.png) -> Vue for your favorite Rails projects +> Vue for your favorite Rails products -The Vue on Rails gem makes it easy to build Vue components on your Rails application. +The Vue on Rails gem makes it easy to build Vue components on your Rails products. It uses Rails 5.x, Vue 2.x, Webpacker 4.x, Ruby 2.x, Node 11.x, Yarn 1.12.x. -- ❄️ Server Side Rendering using Hypernova -- 💎 Compatible with Rails 6/5/4 and Webpacker -- 🌎 Internationalization for component parts - 🖖 Vue UI ready -- 🔨 Component generators and scaffolds -- 📦 Out of the box configuration -- ✂️ Specific-page Vue +- 🐶 Support pug - 🤡 Jest test ready +- ✂️ Specific-page Vue +- 👷🏻️ Asset pipeline helpers - 🎯 Simple state management +- 📦 Out of the box configuration +- 🔨 Component generators and scaffolds +- ❄️ Server Side Rendering using Hypernova - 🗃 Easily migrate to Vuex state management -- 🐶 Support pug -- 👷🏻️ Asset pipeline helpers -- 🏎 Kickstart with our Vue on Rails application template at https://vueonrails.com/vue +- 🌎 Internationalization for component parts +- 💎 Compatible with Rails 6/5/4 and Webpacker +- 🏎 Kickstart with our application template at https://vueonrails.com/vue It ships out-of-the-box configuration, component generators and other solutions to make life easy for both Vue and Rails. diff --git a/lib/installs/setup.rb b/lib/installs/setup.rb index c7bcefb..15129ad 100644 --- a/lib/installs/setup.rb +++ b/lib/installs/setup.rb @@ -1,8 +1,8 @@ # Check for the lack of .babelrc or webpacker 4 def check_version_and_babel #should i check for evidence of webpacker:install? - File.exists?(Rails.root.join(".babelrc")) == false \ - || (Gem.loaded_specs["webpacker"].version < Gem::Version.new('4.x')) == false + (File.exists?(Rails.root.join(".babelrc")) == true) \ + || ((Gem.loaded_specs["webpacker"].version >= Gem::Version.new('4.x')) == false) end begin @@ -33,10 +33,16 @@ def check_version_and_babel "const alias = require('./alias/alias')\n", after: "require('@rails/webpacker')\n" # Add *_pack_tag into application.html.erb This is essential for specific-page vue setup. -pack_tag = <<-eos - <%= javascript_pack_tag 'application' %> - <%= stylesheet_pack_tag 'application' %> -eos +if (Gem.loaded_specs["rails"].version >= Gem::Version.new('6.x')) # rails 6 has default javascript_pack_tag + pack_tag = <<-eos + <%= stylesheet_pack_tag 'application', 'data-turbolinks-track': 'reload' %> + eos +else # non-rails 6 + pack_tag = <<-eos + <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> + <%= stylesheet_pack_tag 'application', 'data-turbolinks-track': 'reload' %> + eos +end insert_into_file Rails.root.join("app/views/layouts/application.html.erb").to_s, pack_tag, before: " \n" diff --git a/lib/installs/spv.rb b/lib/installs/spv.rb index 9639959..9721903 100644 --- a/lib/installs/spv.rb +++ b/lib/installs/spv.rb @@ -3,10 +3,17 @@ gsub_file Rails.root.join("app/views/layouts/application.html.erb").to_s, /<\/body>/, '<% end %>' -pack_tag = <<-eos - <%= javascript_pack_tag 'application' %> - <%= stylesheet_pack_tag 'application' %> -eos +if (Gem.loaded_specs["rails"].version >= Gem::Version.new('6.x')) # rails 6 has default javascript_pack_tag + pack_tag = <<-eos + <%= stylesheet_pack_tag 'application', 'data-turbolinks-track': 'reload' %> + eos +else # non-rails 6 + pack_tag = <<-eos + <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> + <%= stylesheet_pack_tag 'application', 'data-turbolinks-track': 'reload' %> + eos +end + insert_into_file Rails.root.join("app/views/layouts/application.html.erb").to_s, pack_tag, @@ -18,4 +25,4 @@ insert_into_file Rails.root.join("app/assets/javascripts/application.js").to_s, vue_on_rails, -before: "//= require_tree ." \ No newline at end of file +before: "//= require_tree ." diff --git a/lib/vueonrails/version.rb b/lib/vueonrails/version.rb index 71c7125..b36a3c5 100644 --- a/lib/vueonrails/version.rb +++ b/lib/vueonrails/version.rb @@ -1,3 +1,3 @@ module Vueonrails - VERSION = "1.0.0.beta1" + VERSION = "1.0.0.beta4" end diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4062358bbbf01c94d8b4215fcdf65d5a4dedefd1 GIT binary patch literal 5108 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