[Cuis] Wrapper for file access in different Smalltalk dialects

Juan Vuletich juan at jvuletich.org
Sat Jun 6 22:42:04 CDT 2015


Hi Masashi,

I was trying FileMan tests today and I saw they create some folders in 
my drive. The names looked a bit strange, so I took a closer look and 
found a couple of bugs. At least on Windows, #testRecursiveDelete 
instead of creating
       subDir/aaa/bbb/ccc/ddd/eee/fff/ggg/test1
it created
        subDir/bbb/ccc/eee/ggg/test!

So I wrote a few more tests on the issues I saw, and teaked the code to 
make them pass. The result is attached, and I think is useful for all 
ports of FileMan.

Thanks,
Juan Vuletich

On 5/26/2015 11:34 PM, Masashi UMEZAWA wrote:
> Hi all,
>
> I think it is nice if FileMan is on the core package repository.
>
> FileMan for Cuis (and Squeak) has minimum dependencies to the existing
> FileDirectory and DirectoryEntry. FileMan selectively uses a few
> methods of them.
>
> So we can gradually adopt FileMan interfaces and trim the
> FileDirectory and DirectoryEntry's non-intuitive methods.
>
> Another way of cleaning-up the file-related classes is to port
> FileSystems to Cuis.
> But since Cuis is a lightweight Smalltalk dialect, FileSystems might
> be an overkill.
>
> Best regards,
>
> 2015-05-19 9:42 GMT+09:00 Juan Vuletich<juan at jvuletich.org>:
>> Hi Folks,
>>
>> I apologize for talking before taking even a quick look, but anyway, We'd
>> take a good look at this. And seriously consider replacing files stuff in
>> Cuis base. Or at least adopting it as a core package in our repo.
>>
>> Thoughts?
>>
>> Masashi-san: opinions?
>>
>> Thanks,
>> Juan Vuletich
>>
>>
>> On 5/17/2015 12:07 PM, H. Hirzel wrote:
>>> Below are the comments from the FileMan package.
>>>
>>> Question: How do you compare the FileMan package to the FileSystem
>>> package in Pharo?
>>>
>>>
>>>
>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L45
>>> I represent a single file entry (including directory).
>>> You can write data by #fileContents: , and read the data by #fileContents.
>>> ---
>>> mu 11/6/2006 20:21!
>>>
>>>
>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L53
>>> I represent a single file directory.
>>> I implement various directory specific behaviors.
>>> You can write data by #at:put: , and read the data by #at:.
>>> ---
>>> mu 11/6/2006 20:21
>>>
>>>
>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L63
>>> !FmFileIOAccessor commentStamp: '<historical>' prior: 0!
>>> I am an accessor to the low level file IO.
>>> You can extend/rewrite me if you port FileMan to other Smalltalk dialects.
>>>
>>>
>>>
>>>
>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L44
>>> !FmBackupDirectoryEntry commentStamp: 'mu 5/4/2007 23:26' prior: 0!
>>> This is a simple example for adding special behaviors to FmDirectoryEntry.
>>> I backup file contents automatically, while users are not conscious about
>>> that.
>>> Usage:
>>> dir := './withBackup' asDirectoryEntry: FmBackupDirectoryEntry.
>>> dir at: 'text' put: 'abc'.
>>> dir at: 'text' put: 'def'.
>>> (dir at: 'text') inspect. "def"
>>> (dir backupAt: 'text') inspect. "abc"
>>> ((dir / 'sub') at: 'text2' put: '123').
>>> ((dir / 'sub') at: 'text2' put: '456').
>>> ((dir / 'sub') at: 'text2') inspect. "456"
>>> ((dir / 'sub') backupAt: 'text2') inspect. "123"
>>>
>>>
>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L63
>>> This is a simple example for adding special behaviors to FmDirectoryEntry.
>>> I put and get file contents as gzipped, while users are not conscious
>>> about that.
>>> Usage:
>>> | dir |
>>> dir := './gzipped2' asDirectoryEntry: FmGZipDirectoryEntry.
>>> dir binaryAt: 'bin' put: #(1 2 3 12 34 56) asByteArray.
>>> (dir binaryAt: 'bin') inspect.
>>> dir at: 'text' put: 'This will be gzipped'.
>>> (dir at: 'text') inspect.
>>> I would be useful for storing/loading big contents in a simple
>>> dictionary-like manner.
>>>
>>>
>>>
>>> On 5/17/15, H. Hirzel<hannes.hirzel at gmail.com>   wrote:
>>>> Hello Masashi-san
>>>>
>>>> I'd like to come back to your FileMan package
>>>>
>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>
>>>> and ask a question.
>>>>
>>>> Is this package a port from somewhere or did you write it from scratch?
>>>>
>>>> Some background information is appreciated.
>>>>
>>>> There is no description
>>>>
>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L2
>>>>
>>>> Thank you in advance
>>>>
>>>> Hannes Hirzel
>>>>
>>>>
>>>> On 5/2/14, Masashi UMEZAWA<ume at blueplane.jp>   wrote:
>>>>> Hi all,
>>>>>
>>>>> Thank you for the kind words. I've just started Cuis on March, and I
>>>>> was impressed with its cleanness, simplicity, etc.
>>>>> So I did a introductory presentation at Tokyo Smalltalkers meeting. It
>>>>> was successful.
>>>>> Now I'm planning to port Folktale (telnet-base object shell), and SIXX
>>>>> to Cuis. My pace maybe slow, but please stay tuned. ;)
>>>>>
>>>>> Best regards,
>>>>>
>>>>> 2014-05-02 1:05 GMT+09:00 Germán Arduino<garduino at gmail.com>:
>>>>>> Wow, I was completely unaware of Masashi working in Cuis! Welcome
>>>>>> aboard!!
>>>>>>
>>>>>>
>>>>>> 2014-05-01 12:19 GMT-03:00 H. Hirzel<hannes.hirzel at gmail.com>:
>>>>>>
>>>>>>> Thank you for the link to  Masashi Umezawa's presentation.
>>>>>>>
>>>>>>> It is from 2014 and talks about
>>>>>>>
>>>>>>> - the number of classes compared to Squeak and Pharo
>>>>>>> - the size of Morphic -- Morph allSelectors size "=>   502"
>>>>>>> - something I do not fully get about instance variables
>>>>>>>        'bounds owner submorphs fullBounds color extension'
>>>>>>>        versus
>>>>>>>       'owner submorphs location layoutNeeded layoutSpec properties'
>>>>>>> - layoutSpec
>>>>>>> - PackageInfo
>>>>>>> - version control with git
>>>>>>> - Feature require: '<PackageName>'.
>>>>>>> - your Unicode package
>>>>>>> https://github.com/KenDickey/Cuis-Smalltalk-Unicode
>>>>>>> - https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-StyledTextEditor
>>>>>>> - How to query for other Cuis-Smalltalk repositories
>>>>>>>                https://github.com/search?q=cuis-smalltalk
>>>>>>>
>>>>>>> All things which we will include Cuis documentation effort.
>>>>>>>
>>>>>>> --Hannes
>>>>>>>
>>>>>>> On 5/1/14, Ken Dickey<Ken.Dickey at whidbey.com>   wrote:
>>>>>>>> On Thu, 1 May 2014 07:28:54 +0000
>>>>>>>> "H. Hirzel"<hannes.hirzel at gmail.com>   wrote:
>>>>>>>>
>>>>>>>>> A noteworthy effort
>>>>>>>>>
>>>>>>>>>         https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>> Yes.  Masashi Umezawa is the man in Japan!
>>>>>>>>
>>>>>>>> He should introduce himself.
>>>>>>>>
>>>>>>>> He gave a talk about Cuis at the 63rd Smalltalkers' meeting in Tokyo:
>>>>>>>>
>>>>>>>>
>>>>>>>> http://www.smalltalk-users.jp/Home/gao-zhi/dai63kaismalltalkbenkyoukai/shiryou
>>>>>>>>
>>>>>>>> Masashi has ported several packages to CUis.
>>>>>>>>
>>>>>>>> Because of Unicode interest, I was made aware that recent font tweaks
>>>>>>>> have
>>>>>>>> broken my Unicode package in the latest Cuis versions.
>>>>>>>>
>>>>>>>> Masashi-san, would you care to tell us about yourself and what people
>>>>>>>> there
>>>>>>>> think about Cuis?
>>>>>>>>
>>>>>>>> -KenD
>>> _______________________________________________
>>> Cuis mailing list
>>> Cuis at jvuletich.org
>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>>
>
>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: jmvChangesToFileMan.zip
Type: application/zip
Size: 3875 bytes
Desc: not available
URL: <http://jvuletich.org/pipermail/cuis_jvuletich.org/attachments/20150607/4bcc6d8c/attachment-0004.zip>


More information about the Cuis mailing list