Class: JekyllImport::Importers::CSV::CSVPost

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll-import/importers/csv.rb

Constant Summary collapse

MissingDataError =
Class.new(RuntimeError)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(row) ⇒ CSVPost

Creates a CSVPost

row - Array of data, length of 4 or 5 with the columns:

1. title
2. permalink
3. body
4. published_at
5. markup (markdown, textile)


51
52
53
54
55
56
57
# File 'lib/jekyll-import/importers/csv.rb', line 51

def initialize(row)
  @title = row[0]        || missing_data("Post title not present in first column.")
  @permalink = row[1]    || missing_data("Post permalink not present in second column.")
  @body = row[2]         || missing_data("Post body not present in third column.")
  @published_at = row[3] || missing_data("Post publish date not present in fourth column.")
  @markup = row[4]       || "markdown"
end

Instance Attribute Details

#bodyObject (readonly)

Returns the value of attribute body.



38
39
40
# File 'lib/jekyll-import/importers/csv.rb', line 38

def body
  @body
end

#markupObject (readonly)

Returns the value of attribute markup.



38
39
40
# File 'lib/jekyll-import/importers/csv.rb', line 38

def markup
  @markup
end

Returns the value of attribute permalink.



38
39
40
# File 'lib/jekyll-import/importers/csv.rb', line 38

def permalink
  @permalink
end

#titleObject (readonly)

Returns the value of attribute title.



38
39
40
# File 'lib/jekyll-import/importers/csv.rb', line 38

def title
  @title
end

Instance Method Details

#filenameObject



67
68
69
# File 'lib/jekyll-import/importers/csv.rb', line 67

def filename
  "#{published_at.strftime("%Y-%m-%d")}-#{File.basename(permalink, ".*")}.#{markup}"
end

#missing_data(message) ⇒ Object

Raises:



71
72
73
# File 'lib/jekyll-import/importers/csv.rb', line 71

def missing_data(message)
  raise MissingDataError, message
end

#published_atObject



59
60
61
62
63
64
65
# File 'lib/jekyll-import/importers/csv.rb', line 59

def published_at
  if @published_at && !@published_at.is_a?(DateTime)
    @published_at = DateTime.parse(@published_at)
  else
    @published_at
  end
end