fast 0.0.5 → 0.0.6

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.
@@ -7,11 +7,27 @@ module Fast
7
7
  end
8
8
 
9
9
  def extension the_extension
10
- return_me = []
10
+ return_me = Dir.new
11
11
  @set.each do |entry|
12
12
  return_me << entry if entry.end_with? the_extension
13
13
  end
14
14
  return_me
15
15
  end
16
+
17
+ def strip_extension
18
+ return_me = Dir.new
19
+ @set.each do |entry|
20
+ return_me.push entry.gsub /\.(\w+?)$/, ""
21
+ end
22
+ return_me
23
+ end
24
+
25
+ def match regexp
26
+ return_me = Dir.new
27
+ @set.each do |entry|
28
+ return_me << entry if entry.match regexp
29
+ end
30
+ return_me
31
+ end
16
32
  end
17
33
  end
data/lib/fast/dir.rb CHANGED
@@ -48,6 +48,7 @@ module Fast
48
48
  # Creates the dir, if it doesn't exist. Otherwise remains silent
49
49
  # Returns the last dir path passed as argument
50
50
  def create *args
51
+ raise ArgumentError, "No arguments passed, at least one is required" if args.empty?
51
52
  if args.length > 0
52
53
  return_me = nil
53
54
  args.each do |path|
data/lib/fast/fast.rb ADDED
@@ -0,0 +1,34 @@
1
+ module Fast
2
+ # Returns a Dir with the file list already called (if a path is provided)
3
+ def self.dir path = nil
4
+ Dir.new.list path if path
5
+ Dir.new
6
+ end
7
+
8
+ # Like `dir`, but creates the directory if it does not exist
9
+ def self.dir! path
10
+ Dir.new.create( path ).list
11
+ end
12
+
13
+ # Returns a File with its content (if a path to a valid file is provided)
14
+ def self.file path = nil
15
+ File.new.read path if path
16
+ File.new
17
+ end
18
+
19
+ # Returns a File, and creates it if is does not exist
20
+ def self.file! path
21
+ File.new.create path
22
+ end
23
+
24
+ # Returns true if a directory named `path` exists, false otherwise.
25
+ # (wrapper for `File.directory? <path>`)
26
+ def self.dir? path
27
+ Dir.new.exist? path
28
+ end
29
+
30
+ # Example. This all will be deprecated when features are done
31
+ def self.file? path
32
+ File.new.exist? path
33
+ end
34
+ end
data/lib/fast/file.rb CHANGED
@@ -22,7 +22,7 @@ module Fast
22
22
  else
23
23
  content = args.first
24
24
  end
25
- Fast.dir! ::File.dirname @path if ::File.dirname(@path) != "."
25
+ Fast::Dir.new.create! ::File.dirname @path if ::File.dirname(@path) != "."
26
26
  ::File.open @path, "a" do |handler|
27
27
  handler.write content
28
28
  end
@@ -38,7 +38,7 @@ module Fast
38
38
  else
39
39
  content = args.first
40
40
  end
41
- Fast.dir! ::File.dirname @path if ::File.dirname(@path) != "."
41
+ Fast::Dir.new.create! ::File.dirname @path if ::File.dirname(@path) != "."
42
42
  ::File.open @path, "w" do |handler|
43
43
  handler.write content
44
44
  end
data/lib/fast/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Fast
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/lib/fast.rb CHANGED
@@ -4,62 +4,7 @@ require "fast/file"
4
4
  require "fast/dir"
5
5
  require "fast/dir-filter"
6
6
  require "fast/file-filter"
7
-
8
- module Fast
9
- # Returns the list of entries in the directory
10
- # Options:
11
- #
12
- # `:extension => ".jpg"` # Filters returned files by extension
13
- # `:strip_extension => true` # If an `:extension` is given, returns the
14
- # # entries without it
15
- def self.dir path, options = nil
16
- current = Dir.new path
17
- if options
18
- if options[:extension]
19
- filtered = []
20
- current.list path do |entry|
21
- if entry.end_with? ".#{options[:extension]}"
22
- if options[:strip_extension]
23
- filtered << entry[0..-("#{options[:extension]}".length)-2]
24
- else
25
- filtered << entry
26
- end
27
- end
28
- end
29
- return filtered
30
- end
31
- else
32
- current.list path
33
- end
34
- end
35
-
36
- # Like `dir`, but creates the directory if it does not exist
37
- def self.dir! path, options = nil
38
- Dir.new.create! path unless dir? path
39
- dir path, options
40
- end
41
-
42
- # Returns true if a directory named `path` exists, false otherwise.
43
- # (wrapper for `File.directory? <path>`)
44
- def self.dir? path
45
- Dir.new.exist? path
46
- end
47
-
48
- # Example. This all will be deprecated when features are done
49
- def self.file? path
50
- File.new.exist? path
51
- end
52
-
53
- def self.file! path
54
- File.new.touch path
55
- end
56
-
57
- # Returns an instance of Fast::File and passed all methods
58
- # and arguments to it
59
- def self.file *args
60
- Fast::File.call *args
61
- end
62
- end
7
+ require "fast/fast"
63
8
 
64
9
  include Metafun::Delegator
65
10
 
@@ -4,9 +4,10 @@ require "zucker/os"
4
4
  describe Fast::DirFilter do
5
5
  describe "#extension" do
6
6
  context "when given a list of file names and a extension" do
7
- it "should return a list of the files with the given extension" do
7
+ it "should return a Dir of the files with the given extension" do
8
8
  list = ["file.txt", "data.txt", "thumbs.db", "data.txt.jpg"]
9
9
  final_list = Fast::DirFilter.new( list ).extension "txt"
10
+ final_list.should be_a Fast::Dir
10
11
  final_list.should include "file.txt"
11
12
  final_list.should include "data.txt"
12
13
  final_list.should_not include "thumbs.db"
@@ -14,7 +15,20 @@ describe Fast::DirFilter do
14
15
  end
15
16
  end
16
17
  end
17
-
18
+
19
+ describe "#strip_extension" do
20
+ it "should return a Dir with the files names without extension" do
21
+ list = ["file.txt", "data.txt", "thumbs.db", "data.txt.jpg", "noext"]
22
+ final_list = Fast::DirFilter.new( list ).strip_extension
23
+ final_list.should be_a Fast::Dir
24
+ final_list.should include "file"
25
+ final_list.should include "data"
26
+ final_list.should include "thumbs"
27
+ final_list.should include "data.txt"
28
+ final_list.should include "noext"
29
+ end
30
+ end
31
+
18
32
  # VERY IMPORTANT: DirFilter should extend a class ListFilter
19
33
  # #match implementation (along with a short list of other things) should
20
34
  # be done in ListFilter, not in DirFilter
@@ -23,7 +37,16 @@ describe Fast::DirFilter do
23
37
  # finishing Fast and after that I'll dig deeper into SubSetting
24
38
  describe "#match" do
25
39
  context "when given a list of strings and a regexp" do
26
- it "should return a list containing the strings that match the expression"
40
+ it "should return a Dir containing the strings that match the expression" do
41
+ list = %w{is_a_file think_of_me not_my_file filesystem see_file_you}
42
+ final_list = Fast::DirFilter.new( list ).match /file/
43
+ final_list.should be_a Fast::Dir
44
+ final_list.should include "is_a_file"
45
+ final_list.should include "not_my_file"
46
+ final_list.should include "filesystem"
47
+ final_list.should include "see_file_you"
48
+ final_list.should_not include "think_of_me"
49
+ end
27
50
  end
28
51
  end
29
52
  end
@@ -107,6 +107,11 @@ describe Fast::Dir do
107
107
  end
108
108
 
109
109
  shared_examples_for "any dir creation" do
110
+ it "should fail if no argument is passed" do
111
+ expect { Fast::Dir.new.send @method
112
+ }.to raise_error ArgumentError, "No arguments passed, at least one is required"
113
+ end
114
+
110
115
  context "is a simple path" do
111
116
  it "should create the dir" do
112
117
  ::File.should_not be_directory "demo"
@@ -170,11 +175,15 @@ describe Fast::Dir do
170
175
  describe "#create" do
171
176
  before :each do @method = :create end
172
177
  it_behaves_like "any dir creation"
178
+
179
+ it "should fail if the dir already exists"
173
180
  end
174
181
 
175
182
  describe "#create!" do
176
183
  before :each do @method = :create! end
177
184
  it_behaves_like "any dir creation"
185
+
186
+ it "should do nothing if the dir already exists"
178
187
  end
179
188
 
180
189
  shared_examples_for "any dir subsetter" do
@@ -0,0 +1,109 @@
1
+ require "fast"
2
+
3
+ describe Fast do
4
+ describe ".dir" do
5
+ it "should return an instance of Fast::Dir" do
6
+ Fast.dir.should be_a Fast::Dir
7
+ end
8
+
9
+ context "a path to a dir is passed" do
10
+ it "should call #list on that instance" do
11
+ module Fast
12
+ Dir.any_instance.should_receive :list
13
+ end
14
+
15
+ Fast.dir :demo
16
+ end
17
+ end
18
+ end
19
+
20
+ describe ".dir!" do
21
+ it "should fail if no argument is passed" do
22
+ expect { Fast.dir!
23
+ }.to raise_error ArgumentError
24
+ end
25
+
26
+ it "should call #create on that instance" do # So hakzee this one...
27
+ module Fast
28
+ Dir.any_instance.should_receive( :create ).and_return Dir.new( :demo )
29
+ end
30
+
31
+ Fast.dir.create! :demo
32
+ Fast.dir! :demo
33
+ Fast.dir.delete! :demo
34
+ end
35
+
36
+ it "should call #list on that instance" do
37
+ module Fast
38
+ Dir.any_instance.should_receive( :list ).and_return Dir.new
39
+ end
40
+
41
+ Fast.dir! :demo
42
+ end
43
+ end
44
+
45
+ describe ".dir?" do
46
+ before do
47
+ Fast.dir.delete! :demo
48
+ end
49
+
50
+ it "should return true if passed dir exists" do
51
+ Fast.dir.create! :demo
52
+ Fast.dir?(:demo).should be_true
53
+ Fast.dir.delete! :demo
54
+ end
55
+
56
+ it "should return false otherwise" do
57
+ Fast.dir?(:demo).should be_false
58
+ end
59
+ end
60
+
61
+ describe ".file" do
62
+ it "should return an instance of Fast::File" do
63
+ Fast.file.should be_a Fast::File
64
+ end
65
+
66
+ context "called with argument" do
67
+ it "should call #read on that instance" do
68
+ Fast.file.touch "demo.file"
69
+ module Fast
70
+ File.any_instance.should_receive :read
71
+ end
72
+
73
+ Fast.file "demo.file"
74
+ Fast.file.delete! "demo.file"
75
+ end
76
+ end
77
+ end
78
+
79
+ describe ".file!" do
80
+ it "should fail if not argument is passed" do
81
+ expect { Fast.file!
82
+ }.to raise_error ArgumentError
83
+ end
84
+
85
+ it "should call #create on that instance" do
86
+ module Fast
87
+ File.any_instance.should_receive :create
88
+ end
89
+
90
+ Fast.file! "demo.file"
91
+ end
92
+ end
93
+
94
+ describe ".file?" do
95
+ before do
96
+ Fast.file.should_not exist "demo.file"
97
+ end
98
+
99
+ it "should return true if file exists" do
100
+ Fast.file.create! "demo.file"
101
+ Fast.file?("demo.file").should be_true
102
+ Fast.file.delete! "demo.file"
103
+ end
104
+
105
+ it "should return false otherwise" do
106
+ Fast.file?("demo.file").should be_false
107
+ end
108
+ end
109
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fast
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 5
10
- version: 0.0.5
9
+ - 6
10
+ version: 0.0.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Xavier Via
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-11-14 00:00:00 Z
18
+ date: 2011-11-16 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: metafun
@@ -77,11 +77,13 @@ files:
77
77
  - lib/fast.rb
78
78
  - lib/fast/dir-filter.rb
79
79
  - lib/fast/dir.rb
80
+ - lib/fast/fast.rb
80
81
  - lib/fast/file-filter.rb
81
82
  - lib/fast/file.rb
82
83
  - lib/fast/version.rb
83
84
  - spec/fast/dir-filter_spec.rb
84
85
  - spec/fast/dir_spec.rb
86
+ - spec/fast/fast_spec.rb
85
87
  - spec/fast/file_spec.rb
86
88
  homepage: ""
87
89
  licenses: []