Class: RailsVueGenerator::StoreGenerator
- Inherits:
-
BaseGenerator
- Object
- BaseGenerator
- RailsVueGenerator::StoreGenerator
- Defined in:
- lib/rails_vue_generator/store_generator.rb
Constant Summary
Constants inherited from BaseGenerator
BaseGenerator::IGNORED_CONSTANTS
Instance Method Summary collapse
- #generate ⇒ Object
-
#initialize(options = {}) ⇒ StoreGenerator
constructor
A new instance of StoreGenerator.
Methods inherited from BaseGenerator
Constructor Details
#initialize(options = {}) ⇒ StoreGenerator
4 5 6 7 |
# File 'lib/rails_vue_generator/store_generator.rb', line 4 def initialize( = {}) [:path] = File.join(Generator::ROOT_PATH, "src", "store") unless .key?(:path) = end |
Instance Method Details
#generate ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/rails_vue_generator/store_generator.rb', line 9 def generate FileUtils.mkdir_p([:path]) FileUtils.mkdir_p(File.join([: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([:path], "index.js"), index_lines.join("\n") ) models.map{|model| File.write(File.join([:path], "modules", "#{model.to_s.downcase}.js"), Handlers::StoreHandler.new(model).generate) } end |