Sha256: e8920c99985569fb55d7c40dd2de9c84a42e7253b50a501c47bc534496603a18

Contents?: true

Size: 1.25 KB

Versions: 6

Compression:

Stored size: 1.25 KB

Contents

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

require('core');
/** @class

  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);
Greenhouse.File.mixin({

});

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
sproutcore-1.5.0.rc.2 lib/frameworks/sproutcore/apps/greenhouse/models/file.js
sproutcore-1.5.0.rc.1 lib/frameworks/sproutcore/apps/greenhouse/models/file.js
spade-0.0.1 sproutcore/apps/greenhouse/models/file.js
sproutcore-1.5.0.pre.5 lib/frameworks/sproutcore/apps/greenhouse/models/file.js
sproutcore-1.5.0.pre.4.1 lib/frameworks/sproutcore/apps/greenhouse/models/file.js
sproutcore-1.5.0.pre.4 lib/frameworks/sproutcore/apps/greenhouse/models/file.js