They're all kind of different. Which is your point. But I mean conceptually. The following is just to spell out the domain (not to suggest a route forward).
There are, in the language of the codebase, two kinds of virtual cards: "builtin" and "patterned".
Among builtins there are also two types: searches and.. uh... other. Here are the others:
The above are all initialized at startup time and are coded in their own partials.
Then there are three searches:
The other kind of virtual card is "patterned", almost all of which are made by combining other cards. The one exception is *email, which is essentially used in this case as a metadata accessor. (administrators only)
So *broken_link shows cards with links to cards that don't yet exist?
--John Abbe.....Tue Jan 11 16:12:17 -0800 2011
"initialized at startup time and are coded in their own partials." - what does that mean?
--John Abbe.....Tue Jan 11 16:15:56 -0800 2011
coded in their own partials means they have separate rails view files for each card. initialized at startup means that wagn creates these cards an puts them in memory when it starts up (though their content is regenerated when they're rendered)
--Ethan McCutchen.....Mon Jan 17 10:05:28 -0800 2011
My leaning would be to make it so that there are real cards (as in, represented in the db) for any "name part" in use. In other words, the only cards that are actually virtual would be those that are created by combining real cards. It would be highly impractical to represent all of those in the db. But everything listed above as "builtin" should probably have an associated card in the database. The builtin cards then become just another form of a card extension, but they only extend the x+*self set.
--Ethan McCutchen.....Mon Jan 17 10:09:32 -0800 2011
Not understanding the last sentence, but adding make currently virtual star cards real.
--John Abbe.....Thu Jan 20 00:55:00 -0800 2011
Also updated Star Cards to reflect this info.
--John Abbe.....Thu Jan 20 00:55:52 -0800 2011
John, this is related to the last Wagn call. The "set based view declarations", which will include being able to declare one or more views on *now+*self, for example. It isn't really that different than current built-in initialization, but it is much more general.
Before, the code would say: Card.new("*now", :builtin=>true ...) and it would run code in:
cat app/views/builtin/_now.rhtml
<%= Time.now.strftime('%A, %B %d, %Y %I:%M %p %Z') %>
In the new design, this would be:
view(:raw, '*now+*self') do
Time.now.strftime('%A, %B %d, %Y %I:%M %p %Z')
end
--Gerry Gleason.....Mon Jan 31 09:44:18 -0800 2011