fast 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,81 +0,0 @@
1
- = Fast
2
-
3
- Tired of having a hard time working with files? Take a look at Fast...
4
-
5
- require "fast"
6
-
7
- lib_dir = dir! :lib
8
-
9
- lib_dir["demo.txt"] = "I love creating files from a Hash-like API"
10
-
11
- lib_dir.list # => ['demo.txt']
12
-
13
- file! "lib/empty.txt"
14
-
15
- lib_dir.files.each do |path|
16
- puts path
17
- end # => demo.txt
18
- # empty.txt
19
-
20
- lib_dir.destroy
21
-
22
- dir? :lib # => false
23
-
24
- ...and wait a few weeks because this is not stable yet ;)
25
-
26
- Fast is a DSL for file and dir handling focused in intuitivity and semantics. Is pure Ruby (1.8.7+) with no dependencies, except for Metafun for the DSL.
27
-
28
- == Installation
29
-
30
- gem install fast
31
-
32
- == Usage
33
-
34
- Fast declares two sets of methods in its DSL:
35
-
36
- === Dir methods
37
-
38
- dir :lib # The same as => Fast::Dir.new "lib"
39
- dir.delete! "demo" # The same as => Fast::Dir.new.delete! "demo"
40
-
41
- dir! :new_dir # The same as => Fast::Dir.new.create! :new_dir
42
- dir? :new_dir # The same as => Fast::Dir.new.exist? :new_dir
43
-
44
- === File methods
45
-
46
- file "demo.txt" # The same as => Fast::File.new "demo.txt"
47
- file.copy "demo.txt", "new.txt" # The same as =>
48
- # Fast::File.new.copy "demo.txt", "new.txt"
49
-
50
- file! "demo.txt" # The same as => Fast::File.new.create! "demo.txt"
51
- file? "demo.txt" # The same as => Fast::File.new.exist? "demo.txt"
52
-
53
- == Philosophy
54
-
55
- *Fast* embraces a more straightforward view of files as strings of data and directories as arrays of files/directories. Why?
56
-
57
- * It is more realistic in everyday usage
58
- * It makes them more object-like (and thus, more friendly to OOP)
59
- * Is more semantic
60
- * Files as IOs are still accessible through the harder-to-use native Ruby API
61
-
62
- <tt>Fast::Dir</tt> is a subclass of <tt>Array</tt>, usable as a hash, and <tt>Fast::File</tt> if a subclass of String.
63
-
64
- == Quick notes
65
- * URGENT: Make fast depend of the last version of <tt>metafun</tt>
66
- * Deliberate whether is a good idea to make Fast::Dir and Fast::File Multitons.
67
- * Read bytes as binary ASCII-8BIT always and then try to perform an heuristic conversion, if there is any reasonable way to do it. Otherwise, leave it to the user. Google: "ruby string encode utf-8 ascii" for some good readings.
68
- * File lists as returned by Fast::Dir#list and Fast::Dir#dirs will be filtered after the list is retrieved by a set of filtering methods of the returned list, which should be an instance of Fast::Dir.
69
- * An instance of Fast::Dir should be possible to be created from a Array.
70
- * The path can be setted indirectly by any method of Fast::File instances, and the same works for Dir. This is fine because allows for very quick calls, but once an instance gets a path setted it should be fixed and raise an exception in case some other method call is trying to change it.
71
-
72
- == Remote future
73
- * Make Fast a REST client (well, use <tt>rest-client</tt>) in order to transparently use files and directories from a compliant REST server.
74
- * Include REST methods: Dir#post, File#get, File#head, etc
75
- * Allow Files to behave as Dirs with the right method calls
76
-
77
- == License
78
-
79
- GPL License. Why other?
80
-
81
- @ Xavier Via