jgdavey-movable_erb 0.1.3 → 0.2.0
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.
- data/CHANGELOG +3 -0
- data/{README.textile → LICENSE} +2 -28
- data/Manifest +20 -0
- data/README.md +57 -0
- data/Rakefile +14 -37
- data/bin/movable_erb +25 -54
- data/cucumber.yml +1 -0
- data/features/csv.feature +40 -0
- data/features/step_definitions/csv_steps.rb +14 -0
- data/features/step_definitions/tmp.csv +4 -0
- data/features/support/env.rb +20 -0
- data/lib/movable_erb.rb +78 -35
- data/lib/templates/mtimport.erb +22 -0
- data/movable_erb.gemspec +16 -15
- data/spec/csv_spec.rb +289 -40
- data/spec/fixtures/advanced.csv +3 -0
- data/spec/fixtures/template.erb +4 -0
- data/spec/spec.opts +2 -0
- data/spec/spec_helper.rb +2 -13
- data/tasks/rspec.rake +11 -0
- metadata +49 -24
- data/History.txt +0 -4
- data/lib/movable_erb/csv.rb +0 -30
- data/lib/movable_erb/mtimport.rb +0 -65
- data/lib/movable_erb/templates/default.erb +0 -21
- data/spec/movable_erb_spec.rb +0 -10
- data/spec/mtimport_spec.rb +0 -173
- data/test/test_movable_erb.rb +0 -0
data/spec/mtimport_spec.rb
DELETED
@@ -1,173 +0,0 @@
|
|
1
|
-
|
2
|
-
require File.join(File.dirname(__FILE__), %w[spec_helper])
|
3
|
-
|
4
|
-
describe MovableErb::MTImport do
|
5
|
-
|
6
|
-
it "should exist" do
|
7
|
-
MovableErb::MTImport.should_not be_nil
|
8
|
-
end
|
9
|
-
|
10
|
-
describe "initialization" do
|
11
|
-
before(:each) do
|
12
|
-
@mt = MovableErb::MTImport.new(:csv => {:file => 'does_not_exist.csv'})
|
13
|
-
@mt.csv.stub!(:header).and_return(['Title','Body'])
|
14
|
-
@mt.setup_column_nums
|
15
|
-
end
|
16
|
-
|
17
|
-
it "should have a title column in first column by default" do
|
18
|
-
@mt.columns[:title].should eql([0])
|
19
|
-
end
|
20
|
-
|
21
|
-
it "should have a body column in second column by default" do
|
22
|
-
@mt.columns[:body].should eql([1])
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe "with non-default order of header rows" do
|
27
|
-
before(:each) do
|
28
|
-
@mt = MovableErb::MTImport.new(:csv => {:file => 'does_not_exist.csv'})
|
29
|
-
@mt.csv.stub!(:header).and_return(['Body','Title'])
|
30
|
-
@mt.setup_column_nums
|
31
|
-
end
|
32
|
-
|
33
|
-
it "should find and correctly assign the title column" do
|
34
|
-
@mt.columns[:title].should eql([1])
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should find and correctly assign the body column" do
|
38
|
-
@mt.columns[:body].should eql([0])
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
describe "joining field titles with same name" do
|
43
|
-
before(:each) do
|
44
|
-
@mt = MovableErb::MTImport.new(:csv => {:file => 'does_not_exist.csv'})
|
45
|
-
@mt.csv.stub!(:header).and_return(['Title','Body','Body'])
|
46
|
-
@mt.csv.stub!(:body).and_return([['A Title', 'Part of the body','is right here'],['Title 2', 'Body 2','is right here']])
|
47
|
-
@mt.setup_column_nums
|
48
|
-
end
|
49
|
-
|
50
|
-
it "should find more than one element with Body if given" do
|
51
|
-
@mt.columns[:body].should eql([1,2])
|
52
|
-
@mt.content_for('body',0).should eql(['Part of the body','is right here'])
|
53
|
-
@mt.content_for('body',1).should eql(['Body 2','is right here'])
|
54
|
-
end
|
55
|
-
|
56
|
-
|
57
|
-
it "should render with a template file" do
|
58
|
-
@mt.render_with_template.should eql(
|
59
|
-
%q{TITLE: A Title
|
60
|
-
-----
|
61
|
-
BODY:
|
62
|
-
|
63
|
-
Part of the body
|
64
|
-
is right here
|
65
|
-
|
66
|
-
--------
|
67
|
-
TITLE: Title 2
|
68
|
-
-----
|
69
|
-
BODY:
|
70
|
-
|
71
|
-
Body 2
|
72
|
-
is right here
|
73
|
-
|
74
|
-
}.gsub(/^ +/,'') )
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
describe "non-default fields" do
|
79
|
-
before(:each) do
|
80
|
-
@mt = MovableErb::MTImport.new(:csv => {:file => 'spec/fixtures/example.csv'})
|
81
|
-
@mt.csv.stub!(:header).and_return(['Title','Body','Category',"Extended"])
|
82
|
-
@mt.csv.stub!(:body).and_return([['A Title', 'Part of the body','Articles','Another field'],['Title 2', 'Body 2','Articles','field 2']])
|
83
|
-
@mt.setup_column_nums
|
84
|
-
end
|
85
|
-
|
86
|
-
it "should recognize an extended field" do
|
87
|
-
@mt.columns[:extended].should_not be_nil
|
88
|
-
@mt.columns[:extended].should be_instance_of(Array)
|
89
|
-
@mt.columns[:extended].should eql([3])
|
90
|
-
end
|
91
|
-
|
92
|
-
it "should recognize the category field" do
|
93
|
-
@mt.columns[:category].should_not be_nil
|
94
|
-
@mt.columns[:category].should be_instance_of(Array)
|
95
|
-
@mt.columns[:category].should eql([2])
|
96
|
-
end
|
97
|
-
|
98
|
-
it "should correctly render" do
|
99
|
-
@mt.render_with_template.should eql(
|
100
|
-
%q{TITLE: A Title
|
101
|
-
CATEGORY: Articles
|
102
|
-
-----
|
103
|
-
BODY:
|
104
|
-
|
105
|
-
Part of the body
|
106
|
-
|
107
|
-
-----
|
108
|
-
EXTENDED:
|
109
|
-
|
110
|
-
Another field
|
111
|
-
|
112
|
-
--------
|
113
|
-
TITLE: Title 2
|
114
|
-
CATEGORY: Articles
|
115
|
-
-----
|
116
|
-
BODY:
|
117
|
-
|
118
|
-
Body 2
|
119
|
-
|
120
|
-
-----
|
121
|
-
EXTENDED:
|
122
|
-
|
123
|
-
field 2
|
124
|
-
|
125
|
-
}.gsub(/^ +/,''))
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
describe "tags" do
|
130
|
-
before(:each) do
|
131
|
-
@mt = MovableErb::MTImport.new(:csv => {:file => 'spec/fixtures/example.csv'})
|
132
|
-
@mt.csv.stub!(:header).and_return(['Title','Body','Tags'])
|
133
|
-
@mt.csv.stub!(:body).and_return([['A Title', 'Body content','dog, cats, mice']])
|
134
|
-
@mt.setup_column_nums
|
135
|
-
end
|
136
|
-
|
137
|
-
it "should recognize tags" do
|
138
|
-
@mt.columns[:tags].should_not be_nil
|
139
|
-
end
|
140
|
-
|
141
|
-
it "should render correctly" do
|
142
|
-
@mt.render_with_template.should eql(
|
143
|
-
%q{TITLE: A Title
|
144
|
-
TAGS: dog, cats, mice
|
145
|
-
-----
|
146
|
-
BODY:
|
147
|
-
|
148
|
-
Body content
|
149
|
-
|
150
|
-
}.gsub(/^ +/,''))
|
151
|
-
end
|
152
|
-
end
|
153
|
-
|
154
|
-
describe "when header column is not named/misnamed" do
|
155
|
-
before(:each) do
|
156
|
-
@mt = MovableErb::MTImport.new(:csv => {:file => 'spec/fixtures/example.csv'})
|
157
|
-
@mt.csv.stub!(:header).and_return(['Name','Address','Nothing'])
|
158
|
-
@mt.csv.stub!(:body).and_return([['John Boy', '123 Nowhere Lane','dog, cats, mice']])
|
159
|
-
@mt.setup_column_nums
|
160
|
-
end
|
161
|
-
|
162
|
-
it "should default the first field to title" do
|
163
|
-
@mt.columns[:title].should_not be_nil
|
164
|
-
@mt.columns[:title].should eql([0])
|
165
|
-
end
|
166
|
-
|
167
|
-
it "should default the second field to body" do
|
168
|
-
@mt.columns[:body].should_not be_nil
|
169
|
-
@mt.columns[:body].should eql([1])
|
170
|
-
end
|
171
|
-
end
|
172
|
-
|
173
|
-
end
|
data/test/test_movable_erb.rb
DELETED
File without changes
|