Commit cdb4392a authored by Ryan LeFevre's avatar Ryan LeFevre

First working proof of concept

parent d1de88c8
File = require './psd/file.coffee' fs = require 'fs'
RSVP = require 'rsvp'
File = require './psd/file.coffee'
Header = require './psd/header.coffee'
module.exports = class PSD module.exports = class PSD
@fromFile: (file) -> new PSD fs.readFileSync(file)
constructor: (data) -> constructor: (data) ->
@file = new File(data) @file = new File(data)
\ No newline at end of file @parsed = false
@header = null
parse: ->
new RSVP.Promise (resolve, reject) =>
return resolve(@) if @parsed
@parseHeader().then (header) =>
@header = header
resolve(@)
parseHeader: -> new Header(@file).parse()
module.exports = class File module.exports = class File
constructor: (data) -> constructor: (@data) ->
\ No newline at end of file @pos = 0
tell: -> @pos
read: (length) ->
data = @data[@pos...@pos+length]
@pos += length
return data
seek: (amt, rel = false) -> if rel then @pos += amt else @pos = amt
readString: (length) -> @read(length).toString()
\ No newline at end of file
RSVP = require ('rsvp')
module.exports = class Header
constructor: (@file) ->
@version = null
@channels = null
@rows = null
@cols = null
@depth = null
@mode = null
parse: ->
new RSVP.Promise (resolve, reject) =>
sig = @file.readString(4)
console.log sig
resolve(@)
\ No newline at end of file
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
"name": "psd", "name": "psd",
"version": "0.0.1", "version": "0.0.1",
"dependencies": { "dependencies": {
"coffee-script": "~ 1.7.1" "coffee-script": "~ 1.7.1",
"rsvp": "~ 3.0.6"
}, },
"devDependencies": { "devDependencies": {
"coffeeify": "~ 0.6.0" "coffeeify": "~ 0.6.0"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment