vuejs 1.1.0.beta1 → 1.1.0.beta2

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
  SHA256:
3
- metadata.gz: b8f1446ad03bbe2e2aefda493c213f7bed4903419fe01f48d0caf2381ad7a3b9
4
- data.tar.gz: 97ab05d969db96b1b9d0902c839164b1b3dcd9644258f0af1b4869b588d12305
3
+ metadata.gz: ccdc51477ca262d861c03be1932f7d9d5c83cc99b10c6ab4618b441d9c5ca5ea
4
+ data.tar.gz: c97ea07ed73b4e640de884fcef67cc3d42ad3076605996730dcd91005f38896d
5
5
  SHA512:
6
- metadata.gz: e4db4fe4b12d82c89fa201b6ddfe126afcb317cca6bef7195f8b0014fe73728a014257ae917435aaf81b23cb63d16756e3ac549151f8b66a32def911c74a12ce
7
- data.tar.gz: ed27c6fffab540dac7f7207ed6c39526389275a59988c32b924b56461a93bcc6aa69700e15aa401dd32b764c2bd5ec4d60d4a3d4d7e0891e1306dcc9cf40e2d7
6
+ metadata.gz: 85b9c74a8f439cfa75abe054f9aeebbd9299720e176e994eb46bd309bafa49b1a2ebc719becd1ad490cb50d27edd5138c456b1298901174efddbff7fdf801864
7
+ data.tar.gz: 5e02a2dd5bb1efbf5e92ee7b8dcc1cba8911ce926501dc2f3ee19acf8bc3c9c6323cee8d82f3f277292662cd3f5e0cc6867449ddab38508cafa60ece82f627e9
data/README.md CHANGED
@@ -2,7 +2,17 @@
2
2
 
3
3
  > Vue for your favourite Ruby on Rails projects
4
4
 
5
- # Requirement
5
+ `vuejs` rubygem makes it easy to get started with Vue on Rails project by shipping the following tools.
6
+
7
+ - Vuex support
8
+ - HTML Form helper
9
+ - Turbolinks support
10
+ - Support Webpacker
11
+ - Vue component Scaffold
12
+ - Mapping to Rails resources
13
+ - Auto-loading of Vue component
14
+ - Vue-cli service & Vue-ui compatibility
15
+ - Unit component tests compatible to vue-tests-utils using Jest
6
16
 
7
17
  ## Installation
8
18
 
@@ -18,83 +28,58 @@ And then execute:
18
28
 
19
29
  # Webpacker
20
30
 
21
- ## Vue component view helper
22
-
23
- ```
24
- <%= vue_component "" %>
25
- ```
26
-
27
31
  ## Vue component generator
28
32
 
29
33
  ```
30
- rails generate vue <NAME>
34
+ rails generate vue something
31
35
  ```
32
36
 
33
- Note: `vuejs` gem creates vue components with seperation of concern by default.
37
+ Note: `vuejs` gem creates vue components as single-file component by default.
38
+
39
+ To generate a component with seperation of concern, please use the `--seperate`
34
40
 
35
- To generate a single-file component, please use `--single` option. eg. `rails g vue component_name --single`
41
+ > rails g vue something --seperate
36
42
 
37
43
  ## Vue component destroyer
38
44
 
39
45
  ```
40
- rails destroy vue <NAME>
46
+ rails destroy vue something
41
47
  ```
42
48
 
43
- ## Vue viewer
49
+ ## Vue component viewer
44
50
 
45
- Vue viewer allows you to browse your vue component easily. Simply visit http://localhost:3000/vue/<name>
51
+ Vue-component viewer allows you to browse your individual & independent Vue component easily without its surrounding element outside the scope of the component. Simply visit http://localhost:3000/vue/<name>
46
52
 
47
- At routes.rb
53
+ To mount the endpoint `/vue/<name>`, go to routes.rb and paste this:
48
54
 
49
55
  ```
50
56
  mount Vuejs::engine, to: 'vue'
51
57
  ```
58
+ ## Turbolinks support
59
+ ```
60
+ rails generate vue something --turbolinks
61
+ ```
52
62
 
53
63
  ## Vuex support - coming soon
54
64
 
55
65
  ```
56
- rails g vue <NAME> --vuex
66
+ rails generate vue something --vuex
57
67
  ```
58
68
 
59
69
  This will add vuex using yarn. And generate a vue component with vuex support
60
70
 
61
- ## Add webpacker helpers - coming soon
71
+ ## Enable Specific page vue
62
72
 
63
73
  ```
64
- rails g vue <NAME> --helpers
74
+ rails generate vue something --spv
65
75
  ```
66
76
 
67
- ---
68
-
69
- # Asset Pipeline
70
-
71
- The ruby gem `vuejs` ships with the following goodies for assets pipeline:
72
-
73
- * `vue` (v2.1.10)
74
- * `vuex` (v2.1.1)
75
- * `vue-router` (v2.1.3)
76
- * `vue-validator2` (v2.1.7) + `vue-validator3` (v3.0.0-alpha.2)
77
- * `axios` (v0.15.3)
78
-
79
- It also ships with the following legacy goodies
80
-
81
- * `vue` (v1.0.28)
82
- * `vuex` (v1.0.1)
83
- * `vue-router` (v0.7.13)
84
- * `vue-resource` (v1.2.0)
85
- * `vue-validator` (v1.4.4)
86
-
87
- ## Usage
88
-
89
- For 2.x Vue & vue-router or Vue-validator
77
+ ### Generate unit tests for component - coming soon
90
78
 
91
79
  ```
92
- //= require vue2
93
- //= require vue-router2
94
- //= require vue-validator2
95
- //= require vuex2
96
- //= require axios
80
+ rails generate vue something --test
97
81
  ```
82
+ ---
98
83
 
99
84
  # Some Solution for assets pipeline
100
85
 
@@ -121,19 +106,14 @@ vuex has been updated to vuex2. Therefore use `//= require vuex2` to resolve the
121
106
 
122
107
  Try to use `//= require vue2.min` to remove the warning statement from console.
123
108
 
124
- For 1.x
125
109
 
126
- ```
127
- //= require jquery
128
- //= require jquery_ujs
129
- //= require turbolinks
130
- //= require vue
131
- //= require vuex
132
- //= require vue-router
133
- //= require vue-resource
134
- //= require vue-validator
135
- //= require_tree .
136
- ```
110
+ ## Requirement
111
+
112
+ - Rails
113
+ - Webpacker
114
+ - Vue
115
+ - Node
116
+ - Webpack
137
117
 
138
118
  ## Contributing and License
139
119
 
@@ -142,10 +122,10 @@ The gem is available as open source under the terms of the [MIT License](http://
142
122
 
143
123
  ## Book
144
124
 
145
- Richard LaFranchi and I are writing a book on Vue on rails. If you are interested to be one of the early reviewers of our drafts, please email me.
125
+ Richard LaFranchi and I are writing a book on [Vue on rails](http://vueonrails.com). If you are interested to be one of the early reviewers of our drafts, please email me.
146
126
 
147
127
  ## Contact
148
128
 
149
129
  📮 Bryan Lim ytbryan@gmail.com
150
130
 
151
- > If you are using vue.js via this rubygem, do let me know so that I can list your project/company on this repo. Thank you!
131
+ > If you are using Vue.js via this rubygem, do let me know so that I can list your project/company on this repo. Thank you!
@@ -1,9 +1,6 @@
1
- // Generated by http://github.com/ytbryan/vuejs
1
+ // Generated by Vuejs gem ~> github.com/ytbryan/vuejs
2
2
 
3
3
  export default {
4
- // components: {},
5
- // mixins: [],
6
- // props: {},
7
4
  data: function() {
8
5
  return {
9
6
  message: "Hello <%= name %>!",
@@ -21,6 +18,11 @@ export default {
21
18
  }
22
19
  },
23
20
  computed: {
24
-
25
- }
21
+ },
22
+ // asyncComputed: {},
23
+ // components: {},
24
+ // mixins: [],
25
+ // props: {},
26
+ // directives: {},
27
+ // filters: {},
26
28
  };
@@ -1,14 +1,14 @@
1
- // Generated by http://github.com/ytbryan/vuejs
2
- // Use this on Rails' view
3
- // <%# code %> at your rails view.
1
+ // Generated by Vuejs gem ~> github.com/ytbryan/vuejs
2
+ // Run this example by adding <%= '<%=' %> javascript_pack_tag "<%= name %>" <%= '%' %><%= '>' %> into your
3
+ // rails' view
4
+ // To generate another of this component, please run `rails g vue something`
4
5
 
5
6
  import Vue from 'vue'
6
- <% if options[:single] %>
7
- import App from '../parts/<%= name %>.vue'
8
- <% else %>
7
+ <% if options['seperate'] %>
9
8
  import App from '../parts/<%= name %>/<%= name %>.vue'
9
+ <% else %>
10
+ import App from '../parts/<%= name %>.vue'
10
11
  <% end %>
11
-
12
12
  document.addEventListener('DOMContentLoaded', () => {
13
13
  document.body.appendChild(document.createElement('hello'))
14
14
  const app = new Vue({
@@ -1,4 +1,4 @@
1
- <!-- Generated by http://github.com/ytbryan/vuejs -->
1
+ <!-- Generated by vuejs gem ~> github.com/ytbryan/vuejs -->
2
2
 
3
3
  <template>
4
4
  <div id="app">
@@ -9,9 +9,6 @@
9
9
 
10
10
  <script>
11
11
  export default {
12
- // components: {},
13
- // mixins: [],
14
- // props: {},
15
12
  data: function () {
16
13
  return {
17
14
  message: "Hello <%= name %>!"
@@ -29,7 +26,13 @@ export default {
29
26
  },
30
27
  computed: {
31
28
 
32
- }
29
+ },
30
+ // asyncComputed: {},
31
+ // components: {},
32
+ // mixins: [],
33
+ // props: {},
34
+ // directives: {},
35
+ // filters: {},
33
36
  }
34
37
  </script>
35
38
 
@@ -0,0 +1,23 @@
1
+ // Generated by vuejs gem ~> github.com/ytbryan/vuejs
2
+ // To generate another component with test, please run `rails g vue something --test`
3
+
4
+ import { shallowMount } from '@vue/test-utils'
5
+ import List from '../parts/<%= name %>/<%= name %>.vue'
6
+
7
+ describe('<%= name %>.vue', () => {
8
+ it('renders li for each item in props.items', () => {
9
+ const items = ['1', '2']
10
+ const wrapper = shallowMount(List, {
11
+ propsData: { items }
12
+ })
13
+ expect(wrapper.findAll('li')).toHaveLength(items.length)
14
+ })
15
+
16
+ it('matches snapshot', () => {
17
+ const items = ['item 1', 'item 2']
18
+ const wrapper = shallowMount(List, {
19
+ propsData: { items }
20
+ })
21
+ expect(wrapper.html()).toMatchSnapshot()
22
+ })
23
+ })
@@ -1,14 +1,16 @@
1
- // Generated by http://github.com/ytbryan/vuejs
1
+ // Generated by Vuejs gem ~> github.com/ytbryan/vuejs
2
+ // Run this example by adding <%= '<%=' %> javascript_pack_tag "<%= name %>" <%= '%' %><%= '>' %> into your
3
+ // rails' view
4
+ // To generate another of this component with turbolinks, please run `rails g vue something --turbolinks`
2
5
 
3
6
  import TurbolinksAdapter from 'vue-turbolinks';
4
- import Vue from 'vue/dist/vue.esm'
7
+ import Vue from 'vue.esm'
5
8
  <% if options[:single] %>
6
9
  import App from '../parts/<%= name %>.vue'
7
10
  <% else %>
8
11
  import App from '../parts/<%= name %>/<%= name %>.vue'
9
12
  <% end %>
10
13
  Vue.use(TurbolinksAdapter)
11
-
12
14
  document.addEventListener('turbolinks:load', () => {
13
15
  if(isView("###")){
14
16
  const app = new Vue({
@@ -1,4 +1,4 @@
1
- // Generated by http://github.com/ytbryan/vuejs
1
+ // Generated by Vuejs gem ~> github.com/ytbryan/vuejs
2
2
 
3
3
  export default {
4
4
  // components: {},
@@ -1,5 +1,5 @@
1
1
  Description:
2
- Vue generator generates a vue component in Rails project.
2
+ Vue generator generates a vue component in Single-file component in Rails project.
3
3
 
4
4
  Example:
5
5
  rails generate vue <component>
@@ -9,22 +9,9 @@ Example:
9
9
 
10
10
  Here's an example of component.vue
11
11
 
12
- rails g vue <component> --seperated
13
- rails g vue <component> -s
14
-
12
+ rails g vue <component> --no-single
13
+
15
14
  This will create:
16
15
  app/javascript/component/component.vue
17
16
  app/javascript/component/component.css
18
17
  app/javascript/component/component.js
19
-
20
- rails g vue <component> --no-prop
21
-
22
- This will remove prop property in Vue element
23
-
24
- rails g vue <component> --no-data
25
-
26
- This will remove data property in Vue element
27
-
28
- rails g vue <component> --erb
29
-
30
- This will integrate with erb on rails
@@ -2,71 +2,95 @@ class VueGenerator < Rails::Generators::NamedBase
2
2
  source_root File.expand_path('../../generator_templates', __FILE__)
3
3
 
4
4
  argument :name, type: :string, default: :index
5
+ class_option :seperate, type: :boolean, default: false
5
6
  class_option :single, type: :boolean, default: false
6
7
  class_option :vuex, type: :boolean, default: false
7
- class_option :turbolink, type: :boolean, default: false
8
- # class_option :helpers, type: :boolean, default: false
8
+ class_option :turbolinks, type: :boolean, default: false
9
+ class_option :test, type: :boolean, default: false
10
+ class_option 'form-for', type: :boolean, default: false
9
11
 
10
12
  PACKS_PATH = "app/javascript/packs"
11
13
  PARTS_PATH = "app/javascript/parts"
14
+ TESTS_PATH = "app/javascript/tests"
12
15
 
13
16
  def vue
14
- if options[:single]
15
- if options[:turbolink]
16
- create_turbolink_single_file_component_using(name)
17
+ if options[:seperate]
18
+ if options[:turbolinks]
19
+ create_turbolink_component_with_seperate_concern_using(name)
17
20
  else
18
- create_single_file_component_using(name)
21
+ create_component_with_seperate_concern_using(name)
19
22
  end
20
23
  else
21
- if options[:turbolink]
22
- create_turbolink_component_with_seperate_concern_using(name)
24
+ if options[:turbolinks]
25
+ create_turbolink_single_file_component_using(name)
23
26
  else
24
- create_component_with_seperate_concern_using(name)
27
+ create_single_file_component_using(name)
25
28
  end
26
29
  end
27
30
 
28
- # options[:vuex] ? add_vuex_to_component(name) : nil
29
- # options[:helpers] ? add_helpers_to_component(name) : nil
31
+ options[:test] ? add_tests_to_component(name) : nil
32
+ options[:vuex] ? add_vuex_to_component(name) : nil
33
+ options['form-for'] ? add_helpers_to_component(name) : nil
30
34
  end
31
35
 
32
36
  private
37
+
38
+ def add_tests_to_component name
39
+ template "tests/unit.test.js.erb", "#{TESTS_PATH}/#{name}.test.js"
40
+ end
41
+
33
42
  def add_helpers_to_component name
34
- puts "adding helpers support"
43
+ run "yarn add vue-form-for"
44
+
45
+ insert_into_file "#{PACKS_PATH}/#{name}.js" ,
46
+ "import FormFor from 'vue-form-for'",
47
+ after: "import Vue from 'vue'\n"
48
+
49
+ insert_into_file "#{PACKS_PATH}/#{name}.js",
50
+ "Vue.use(FormFor)\n",
51
+ before: "document.addEventListener"
35
52
  end
36
53
 
37
54
  def add_vuex_to_component name
38
- puts "adding vuex support"
39
- # yarn add vuex
40
- # import vuex from 'vuex'
41
- # Vue.use(vuex)
42
- # Generate a vuex.html.erb
55
+ run "yarn add vuex"
56
+ insert_into_file "#{PACKS_PATH}/#{name}.js" ,
57
+ "import Vuex from 'vuex'",
58
+ after: "import Vue from 'vue'\n"
59
+
60
+ insert_into_file "#{PACKS_PATH}/#{name}.js",
61
+ "Vue.use(Vuex)\n",
62
+ before: "document.addEventListener"
43
63
  end
44
64
 
45
65
  def create_component_with_seperate_concern_using name
66
+ say "Generating a Vue component with seperation of concern"
46
67
  @code = "<%= vue \"#{name}\" %>"
47
- template "pack.js.erb", "#{PACKS_PATH}/#{name}.js"
48
- template "index.vue", "#{PARTS_PATH}/#{name}/#{name}.vue"
49
- template "index.js", "#{PARTS_PATH}/#{name}/#{name}.js"
50
- copy_file "index.css", "#{PARTS_PATH}/#{name}/#{name}.css"
68
+ template "packs/pack.js.erb", "#{PACKS_PATH}/#{name}.js"
69
+ template "packs/index.vue", "#{PARTS_PATH}/#{name}/#{name}.vue"
70
+ template "packs/index.js", "#{PARTS_PATH}/#{name}/#{name}.js"
71
+ copy_file "packs/index.css", "#{PARTS_PATH}/#{name}/#{name}.css"
51
72
  end
52
73
 
53
74
  def create_single_file_component_using name
75
+ say "Generating a Single File Component"
54
76
  @code = "<%= vue \"#{name}\" %>"
55
- template "pack.js.erb", "#{PACKS_PATH}/#{name}.js"
56
- template "single.vue", "#{PARTS_PATH}/#{name}.vue"
77
+ template "packs/pack.js.erb", "#{PACKS_PATH}/#{name}.js"
78
+ template "sfc/single-file-component.vue", "#{PARTS_PATH}/#{name}.vue"
57
79
  end
58
80
 
59
81
  def create_turbolink_single_file_component_using name
82
+ say "Adding Turbolinks to a Single File Component"
60
83
  @code = "<%= vue \"#{name}\" %>"
61
- template "turbolink-pack.js.erb", "#{PACKS_PATH}/#{name}.js"
62
- template "single.vue", "#{PARTS_PATH}/#{name}.vue"
84
+ template "turbolinks/turbolinks-pack.js.erb", "#{PACKS_PATH}/#{name}.js"
85
+ template "sfc/single-file-component.vue", "#{PARTS_PATH}/#{name}.vue"
63
86
  end
64
87
 
65
88
  def create_turbolink_component_with_seperate_concern_using name
89
+ say "Adding turbolinks to Vue component with seperate of concerns"
66
90
  @code = "<%= vue \"#{name}\" %>"
67
- template "turbolink-pack.js.erb", "#{PACKS_PATH}/#{name}.js"
68
- template "index.vue", "#{PARTS_PATH}/#{name}/#{name}.vue"
69
- template "index.js", "#{PARTS_PATH}/#{name}/#{name}.js"
70
- copy_file "index.css", "#{PARTS_PATH}/#{name}/#{name}.css"
91
+ template "turbolinks/turbolinks-pack.js.erb", "#{PACKS_PATH}/#{name}.js"
92
+ template "packs/index.vue", "#{PARTS_PATH}/#{name}/#{name}.vue"
93
+ template "packs/index.js", "#{PARTS_PATH}/#{name}/#{name}.js"
94
+ copy_file "packs/index.css", "#{PARTS_PATH}/#{name}/#{name}.css"
71
95
  end
72
96
  end
@@ -0,0 +1,12 @@
1
+ say "Adding alias.js to config/webpack/alias"
2
+ copy_file "#{__dir__}/config/alias.js", Rails.root.join("config/webpack/alias/alias.js").to_s
3
+
4
+ say "Adding alias to config/webpack/environment.js"
5
+ insert_into_file Rails.root.join("config/webpack/environment.js").to_s,
6
+ "const alias = require('./alias/alias')\n",
7
+ after: "require('@rails/webpacker')\n"
8
+
9
+ insert_into_file Rails.root.join("config/webpack/environment.js").to_s,
10
+ "environment.config.merge(alias)\n",
11
+ before: "module.exports"
12
+
@@ -0,0 +1,4 @@
1
+ template "packs/pack.js.erb", "#{PACKS_PATH}/#{name}.js"
2
+ template "index.vue", "#{PARTS_PATH}/#{name}/#{name}.vue"
3
+ template "index.js", "#{PARTS_PATH}/#{name}/#{name}.js"
4
+ copy_file "index.css", "#{PARTS_PATH}/#{name}/#{name}.css"
@@ -0,0 +1,10 @@
1
+ module.exports = {
2
+ resolve: {
3
+ alias: {
4
+ '@': '../parts',
5
+ '@@': '../tests',
6
+ 'vue$': 'vue/dist/vue.esm.js'
7
+ },
8
+ extensions: ['.vue']
9
+ }
10
+ }
@@ -0,0 +1,27 @@
1
+ say "Adding alias.js to config/webpack/alias"
2
+ copy_file "#{__dir__}/config/alias.js", Rails.root.join("config/webpack/alias/alias.js").to_s
3
+
4
+ say "Adding alias to config/webpack/environment.js"
5
+ insert_into_file Rails.root.join("config/webpack/environment.js").to_s,
6
+ "const alias = require('./alias/alias')\n",
7
+ after: "require('@rails/webpacker')\n"
8
+
9
+ insert_into_file Rails.root.join("config/webpack/environment.js").to_s,
10
+ "environment.config.merge(alias)\n",
11
+ before: "module.exports"
12
+
13
+ say "Adding vue-autorequest and vue-form-for"
14
+ run "yarn add vue-autorequest vue-form-for"
15
+
16
+ say "Adding Vuex"
17
+ run "yarn add vuex vuex-rails-plugin"
18
+
19
+ say "Adding tests"
20
+ run "yarn add @vue/test-utils"
21
+
22
+ say "Adding turbolinks"
23
+ run "yarn add vue-turbolinks"
24
+
25
+ say "Making Vue on Rails compatible with Vue-ui"
26
+ run "yarn add @vue/cli-service --dev"
27
+
File without changes
@@ -0,0 +1 @@
1
+ template "tests/unit.test.js.erb", "#{TESTS_PATH}/#{name}.test.js"
@@ -0,0 +1,3 @@
1
+ @code = "<%= vue \"#{name}\" %>"
2
+ template "packs/pack.js.erb", "#{PACKS_PATH}/#{name}.js"
3
+ template "sfc/single-file-component.vue", "#{PARTS_PATH}/#{name}.vue"
data/lib/install/ui.rb ADDED
File without changes
@@ -0,0 +1,9 @@
1
+ run "yarn add vuex"
2
+
3
+ insert_into_file "#{PACKS_PATH}/#{name}.js" ,
4
+ "import Vuex from 'vuex'",
5
+ after: "import Vue from 'vue'\n"
6
+
7
+ insert_into_file "#{PACKS_PATH}/#{name}.js",
8
+ "Vue.use(Vuex)\n",
9
+ before: "document.addEventListener"
data/lib/tasks/info.rake CHANGED
@@ -14,9 +14,4 @@ namespace :vue do
14
14
  $stdout.puts "Is bin/webpack-dev-server present?: #{File.exist? 'bin/webpack-dev-server'}"
15
15
  $stdout.puts "Is bin/yarn present?: #{File.exist? 'bin/yarn'}"
16
16
  end
17
-
18
- desc "install turbolinks"
19
- task :install do
20
-
21
- end
22
17
  end
@@ -0,0 +1,44 @@
1
+ bin_path = ENV["BUNDLE_BIN"] || "./bin"
2
+ namespace :vue do
3
+ desc "Setup your Vue on Rails project"
4
+ task :setup do
5
+ template = File.expand_path("../install/alias.rb", __dir__)
6
+ base_path =
7
+ if Rails::VERSION::MAJOR >= 5
8
+ "#{RbConfig.ruby} #{bin_path}/rails app:template"
9
+ else
10
+ "#{RbConfig.ruby} #{bin_path}/rake rails:template"
11
+ end
12
+
13
+ exec "#{base_path} LOCATION=#{template}"
14
+ end
15
+
16
+ desc "install other plugins"
17
+ task :others do
18
+ $stdout.puts "#{`yarn add @vue/cli-plugin-babel
19
+ @vue/cli-plugin-eslint
20
+ @vue/cli-plugin-unit-jest
21
+ @vue/cli-plugin-pwa
22
+ vue-i18n`}"
23
+ end
24
+
25
+ desc "install turbolinks"
26
+ task :turbolinks do
27
+ $stdout.puts "#{`yarn add vue-turbolinks`}"
28
+ end
29
+
30
+ desc "install vue-test-utils"
31
+ task :test do
32
+ $stdout.puts "#{`yarn add @vue/test-utils`}"
33
+ end
34
+
35
+ desc "install Vuex"
36
+ task :vuex do
37
+ $stdout.puts "#{`yarn add vuex`}"
38
+ end
39
+
40
+ desc "make this Rails project Vue-ui compatible"
41
+ task :ui do
42
+ $stdout.puts "yarn add @vue/cli-service --dev"
43
+ end
44
+ end
@@ -1,3 +1,4 @@
1
1
  module Log
2
- MESSAGE = "Send me Pull Request -> https://github.com/ytbryan/vuejs/pulls"
2
+ MESSAGE = "Send me Pull Request ->
3
+ https://github.com/ytbryan/vuejs/pulls"
3
4
  end
data/lib/vuejs/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Vuejs
2
- VERSION = "1.1.0.beta1"
2
+ VERSION = "1.1.0.beta2"
3
3
  end
@@ -10,4 +10,24 @@ function puts(obj){
10
10
 
11
11
  function p(obj){
12
12
  console.log({obj})
13
+ }
14
+
15
+ function addClass(identifier, className){
16
+ document.getElementById(identifier).classList.addClass(className)
17
+ }
18
+
19
+ function toggleClass(identifier, className){
20
+ document.getElementById(identifier).classList.toggle(className)
21
+ }
22
+
23
+ function table(obj){
24
+ console.table(obj)
25
+ }
26
+
27
+ function titleize(str){
28
+ return str.replace(/\b\S/g, function(t) { return t.toUpperCase() });
29
+ }
30
+
31
+ function isArray(obj){
32
+ return Object.prototype.toString.call(obj) === '[object Array]' ;
13
33
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vuejs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0.beta1
4
+ version: 1.1.0.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Lim
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-05 00:00:00.000000000 Z
11
+ date: 2018-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,18 +52,28 @@ files:
52
52
  - app/helpers/syntax_helper.rb
53
53
  - app/views/vue/index.html.erb
54
54
  - config/routes.rb
55
- - lib/generators/generator_templates/index.css
56
- - lib/generators/generator_templates/index.js
57
- - lib/generators/generator_templates/index.vue
58
- - lib/generators/generator_templates/pack.js.erb
59
- - lib/generators/generator_templates/single.vue
60
- - lib/generators/generator_templates/turbolink-pack.js.erb
61
- - lib/generators/generator_templates/vuex-pack.js.erb
55
+ - lib/generators/generator_templates/packs/index.css
56
+ - lib/generators/generator_templates/packs/index.js
57
+ - lib/generators/generator_templates/packs/index.vue
58
+ - lib/generators/generator_templates/packs/pack.js.erb
59
+ - lib/generators/generator_templates/sfc/single-file-component.vue
60
+ - lib/generators/generator_templates/tests/unit.test.js.erb
61
+ - lib/generators/generator_templates/turbolinks/turbolinks-pack.js.erb
62
62
  - lib/generators/generator_templates/vuex/index.js
63
63
  - lib/generators/vue/USAGE
64
64
  - lib/generators/vue/vue_generator.rb
65
+ - lib/install/alias.rb
66
+ - lib/install/component_with_seperate_concern.rb
67
+ - lib/install/config/alias.js
68
+ - lib/install/setup.rb
69
+ - lib/install/single-file-component.rb
70
+ - lib/install/test.rb
71
+ - lib/install/turbolinks.rb
72
+ - lib/install/ui.rb
73
+ - lib/install/vuex.rb
65
74
  - lib/tasks/assets.rake
66
75
  - lib/tasks/info.rake
76
+ - lib/tasks/setup.rake
67
77
  - lib/vuejs.rb
68
78
  - lib/vuejs/post_message.rb
69
79
  - lib/vuejs/version.rb
@@ -88,7 +98,7 @@ homepage: http://github.com/ytbryan/vuejs
88
98
  licenses:
89
99
  - MIT
90
100
  metadata: {}
91
- post_install_message: Send me Pull Request -> https://github.com/ytbryan/vuejs/pulls
101
+ post_install_message: "Send me Pull Request -> \n https://github.com/ytbryan/vuejs/pulls"
92
102
  rdoc_options: []
93
103
  require_paths:
94
104
  - lib
@@ -107,6 +117,5 @@ rubyforge_project:
107
117
  rubygems_version: 2.7.6
108
118
  signing_key:
109
119
  specification_version: 4
110
- summary: Latest Vue.js + vue-router + vue-resource + vue-validator + vuex for Rails
111
- - ship with Vue 2.x
120
+ summary: Vue on Rails
112
121
  test_files: []
@@ -1,25 +0,0 @@
1
- // Generated by http://github.com/ytbryan/vuejs
2
-
3
- import VuexRailsPlugin from 'vuex-rails-plugin'
4
- import VueFormFor from 'vue-form-for'
5
- import Autorequest from 'vue-autorequest'
6
- import TurbolinksAdapter from 'vue-turbolinks';
7
- import Vue from 'vue/dist/vue.esm'
8
- <% if options[:single] %>
9
- import App from '../parts/<%= name %>.vue'
10
- <% else %>
11
- import App from '../parts/<%= name %>/<%= name %>.vue'
12
- <% end %>
13
-
14
- Vue.use(TurbolinksAdapter)
15
- Vue.use(VuexRailsPlugin)
16
- Vue.use(VueFormFor)
17
- Vue.use(Autorequest)
18
-
19
- document.addEventListener('turbolinks:load', () => {
20
- if(isView("###")){
21
- const app = new Vue({
22
- render: h => h(App)
23
- }).$mount('#something')
24
- }
25
- })