Sha256: 07bd24b71ebe527fb11df1cda8cc79222463d29fdf26889dd0b12dd31c13a17a
Contents?: true
Size: 1.14 KB
Versions: 3
Compression:
Stored size: 1.14 KB
Contents
class Backbone::Model def initialize(namespace, model, parent=nil) @model = model @namespace = namespace if parent @parent = [namespace, parent].join(".").gsub(/\.$/, '') else @parent = "AS.Model" end end def coffee_path "#{@namespace}.#{@model.name.demodulize}" end def content_fields @model.fields.reject do |name, config| config.options[:identity] || name.ends_with?("_ids") end end def spool_boilerplate bp = [] bp << %|module "#{@namespace}", ->| bp << %|class #{coffee_path} extends #{@parent}| # bp << %| AS.Heap.Classes["Packed#{@model.name}"] = this| content_fields.each do |name, config| bp << %| @field "#{name}"| end @model.relations.each do |name, config| case config.macro when :embeds_many, :references_many bp << %| @has_many "#{name}"| bp << %| model: -> #{@namespace}.#{config.class_name}| when :embedded_in, :referenced_in bp << %| @belongs_to "#{name}"| end end bp end def boilerplate bp = spool_boilerplate bp << %|| bp << %|| bp.join("\n") end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
alpha-simprini-engine-0.0.4 | extras/backbone/model.rb |
alpha-simprini-engine-0.0.3 | extras/backbone/model.rb |
alpha-simprini-engine-0.0.2 | extras/backbone/model.rb |