Skip to content

Instantly share code, notes, and snippets.

@hooptie45
Created July 11, 2011 21:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hooptie45/1076785 to your computer and use it in GitHub Desktop.
Save hooptie45/1076785 to your computer and use it in GitHub Desktop.
demo.rb
require 'flexgen/model_builder'
require 'metamodel/as'
include ASMetaModel
def auto_build
FlexGen::ModelBuilder.build(ASMetaModel) do
app "App", :base => "com.test" do
# Models
actor "Customer" do
attribute "first_name", :view_type => "String"
attribute "last_name", :view_type => "String"
# Customer Signals
sig "New"
sig "Destroy"
end
actor "Order" do
attribute "price", :view_type => "String"
attribute "quantity", :view_type => "String"
# Order Signals
sig "New"
sig "Destroy"
end
# App Signals
sig "Init" do
val "testing"
end
# Commands
cmd "CreateCustomer", :triggers => ["Customer.New", "Order.New"]
cmd "LoadCustomers", :triggers => ["App.Init"]
cmd "DestroyCustomer", :triggers => ["Customer.Destroy"]
cmd "NewOrder", :triggers => ["Order.New"]
# Views
view "CustomerView" do
form :watchers => [ "Customer.New", "Customer.Destroy"] do
button "CreateCustomer", :triggers => ["Customer.New"]
button "DestroyCustomer", :triggers => ["Customer.Destroy"]
end
end
view "OrderView" do
form :watchers => ["Order.New", "Order.Destroy"] do
button "CreateOrder", :triggers => ["Order.New"]
button "DestroyCustomer", :triggers => ["Order.Destroy"]
end
end
end
end
end
MODEL = auto_build
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment