Sha256: 42653a5e954a1e028c1ed8ea2a922ff0bb59bcb7ee8d61afc2a1e51e7138aa56
Contents?: true
Size: 1.25 KB
Versions: 2
Compression:
Stored size: 1.25 KB
Contents
module Xmvc module Generator class Model < Base def initialize(name, fields = []) super @fields = fields @gsubs['inst_name'] = name.downcase @gsubs['class_name'] = Extlib::Inflection.camelize(name) @gsubs['file_name'] = Extlib::Inflection.underscore(name) @gsubs['fields'] = fields.collect {|f| field_template(f[0], f[1])}.join(",\n") @model_filename = "app/models/#{@gsubs['file_name']}.js" @spec_filename = "spec/models/#{@gsubs['file_name']}.spec.js" end def generate! ensure_no_overwrite! @model_filename, @spec_filename ensure_directories_present! "app", "app/models" ensure_directories_present! "spec", "spec/models" template "Model.js", @model_filename template "ModelSpec.js", @spec_filename #to_environment(:models, @gsubs["file_name"]) Xmvc::Settings.add(:models, @gsubs["file_name"]) end private def field_template(name, type) padding = longest_field_length - name.length " {name: '#{name}', #{" " * padding}type: '#{type}'}" end def longest_field_length @fields.collect {|f| f[0].length}.max end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
xmvc-0.1.2 | lib/xmvc/generators/model.rb |
xmvc-0.1.1 | lib/xmvc/generators/model.rb |