smilodon 0.2.7 → 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.7
1
+ 0.2.8
@@ -37,3 +37,13 @@ module FakePopulatorWithMultipleFiles
37
37
  # Populate the test file.
38
38
  populates 'TestFile1', 'TestFile2', 'TestFile3', :directory => 'db/populate/files'
39
39
  end
40
+
41
+ # A fake populator module with overridden directory for testing.
42
+ module FakePopulatorWithOnlyDirectory
43
+
44
+ # Extend it with the Populator module.
45
+ extend Smilodon::Populator
46
+
47
+ # Populate the test file.
48
+ populates :directory => 'spec/test_files'
49
+ end
data/lib/smilodon.rb CHANGED
@@ -47,11 +47,16 @@ module Smilodon
47
47
 
48
48
  options = args.last.is_a?(Hash) ? args.pop : {}
49
49
 
50
- self.files = args
51
- self.directory = options[:directory] || DIRECTORY
50
+
51
+ self.directory = if defined?(Rails)
52
+ "#{Rails.root}/#{options[:directory] || DIRECTORY}"
53
+ else
54
+ options[:directory] || DIRECTORY
55
+ end
52
56
  self.type = options[:type] || TYPE
53
57
  self.header = options[:header]
54
58
  self.before = options[:before]
59
+ self.files = args.empty? ? grab_files : args
55
60
  end
56
61
 
57
62
  # Parses the data file content and processes each row.
@@ -87,7 +92,13 @@ module Smilodon
87
92
  end
88
93
 
89
94
  private
90
-
95
+
96
+ def grab_files
97
+ Dir.glob("#{directory}/*").map do |file|
98
+ File.basename(file, File.extname(file))
99
+ end
100
+ end
101
+
91
102
  # The parser to use based on the type of data file.
92
103
  #
93
104
  # @param [String] Name of file to be read
@@ -103,11 +114,7 @@ module Smilodon
103
114
  #
104
115
  # @return [String] The absolute path.
105
116
  def path(file)
106
- if defined?(Rails)
107
- "#{Rails.root}/#{directory}/#{file}.#{type}"
108
- else
109
- "#{directory}/#{file}.#{type}"
110
- end
117
+ "#{directory}/#{file}.#{type}"
111
118
  end
112
119
 
113
120
  # Reads the data file.
data/smilodon.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{smilodon}
8
- s.version = "0.2.7"
8
+ s.version = "0.2.8"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Umang Chouhan"]
12
- s.date = %q{2012-02-13}
12
+ s.date = %q{2012-02-15}
13
13
  s.description = %q{Smilodon is a utility to parse data files.}
14
14
  s.email = %q{uchouhan@optimiscorp.com}
15
15
  s.extra_rdoc_files = [
@@ -35,7 +35,9 @@ Gem::Specification.new do |s|
35
35
  "smilodon.gemspec",
36
36
  "spec/lib/smilodon_spec.rb",
37
37
  "spec/lib/tasks/populate_spec.rb",
38
- "spec/spec_helper.rb"
38
+ "spec/spec_helper.rb",
39
+ "spec/test_files/bar.csv",
40
+ "spec/test_files/foo.csv"
39
41
  ]
40
42
  s.homepage = %q{http://github.com/optimis/smilodon}
41
43
  s.licenses = ["MIT"]
@@ -62,6 +62,12 @@ describe FakePopulator, '.files' do
62
62
  FakePopulatorWithMultipleFiles.files.each { |f| FakePopulatorWithMultipleFiles.should_receive(:read).with(f).and_return('') }
63
63
  FakePopulatorWithMultipleFiles.run
64
64
  end
65
+
66
+ context 'given a directory and no files' do
67
+ it 'sets files to all the files in directory' do
68
+ FakePopulatorWithOnlyDirectory.files.should == ['bar', 'foo']
69
+ end
70
+ end
65
71
  end
66
72
 
67
73
  describe FakePopulator, '.run' do
File without changes
File without changes
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smilodon
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 7
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 7
10
- version: 0.2.7
9
+ - 8
10
+ version: 0.2.8
11
11
  platform: ruby
12
12
  authors:
13
13
  - Umang Chouhan
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-02-13 00:00:00 -08:00
18
+ date: 2012-02-15 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -139,6 +139,8 @@ files:
139
139
  - spec/lib/smilodon_spec.rb
140
140
  - spec/lib/tasks/populate_spec.rb
141
141
  - spec/spec_helper.rb
142
+ - spec/test_files/bar.csv
143
+ - spec/test_files/foo.csv
142
144
  has_rdoc: true
143
145
  homepage: http://github.com/optimis/smilodon
144
146
  licenses: