// ========================================================================== // Project: Greenhouse.File // Copyright: ©2010 Mike Ball // ========================================================================== /*jslint evil: true*/ /*globals Greenhouse*/

sc_require('core'); /**

file properties
@property dir
@property name

@extends SC.ChildRecord
@version 0.1

*/ Greenhouse.File = SC.Record.extend( /** @scope Greenhouse.File.prototype */ {

type: 'File',
nestedRecordNamespace: Greenhouse,
name: SC.Record.attr(String),
dir: SC.Record.attr(String),
body: SC.Record.attr(String),
primaryKey: 'id',

isFile: YES,

path: function(){
  return this.get('dir') + this.get('name');
}.property('name', 'dir').cacheable(),

pageRegex: function(){
  var b = this.get('body'), re =/(\w+)\.(\w+)\s*=\s*SC\.Page\.(design|create)/;
  return b ? b.match(re): b;
}.property('body').cacheable(),

isPage: function(){
  return this.get('pageRegex') !== null;
}.property('pageRegex').cacheable(),

pageName: function(){
  var r = this.get('pageRegex') || [];
  return "%@.%@".fmt(r[1],r[2]);
}.property('pageRegex').cacheable()

}) ;

Greenhouse.FILES_QUERY = SC.Query.remote(Greenhouse.File);