class RailsVueGenerator::StoreGenerator

Public Class Methods

new(options = {}) click to toggle source
# File lib/rails_vue_generator/store_generator.rb, line 4
def initialize(options = {})
  options[:path] = File.join(Generator::ROOT_PATH, "src", "store") unless options.key?(:path)
  @options = options  
end

Public Instance Methods

generate() click to toggle source
# File lib/rails_vue_generator/store_generator.rb, line 9
def generate
  FileUtils.mkdir_p(@options[:path])
  FileUtils.mkdir_p(File.join(@options[:path], "modules"))
  index_lines = []

  index_lines << "import Vue from 'vue'"
  index_lines << "import Vuex from 'vuex'"
  models.each do |model|
    index_lines << "import #{model.to_s.downcase} from '@/store/modules/#{model.to_s.downcase}'"
  end
  index_lines << ""
  index_lines << "Vue.use(Vuex)"
  index_lines << ""
  index_lines << "export default new Vuex.Store({"
  index_lines << "  modules: {"
  index_lines << "    #{models.map{|model| model.to_s.downcase}.join(", ")}"
  index_lines << "  }"
  index_lines << "})"
  File.write(File.join(@options[:path], "index.js"), index_lines.join("\n") )
  
  models.map{|model| File.write(File.join(@options[:path], "modules", "#{model.to_s.downcase}.js"), Handlers::StoreHandler.new(model).generate) }
end