class TrelloFs::Builder
Attributes
config[R]
Public Class Methods
new(config)
click to toggle source
# File lib/trello-fs/builder.rb, line 5 def initialize(config) @config = config end
Public Instance Methods
boards_content(repository, boards)
click to toggle source
# File lib/trello-fs/builder.rb, line 53 def boards_content(repository, boards) boards.map do |board| board_builder = BoardBuilder.new(repository, board) [ "## [#{board.name}](#{board_builder.relative_path}/README.md)", board.lists.map do |list| list_builder = ListBuilder.new(board_builder, list) " - [#{list_builder.list_name}](#{list_builder.relative_path}/README.md)" end.join("\n") ].join("\n\n") end.join("\n\n") end
build()
click to toggle source
# File lib/trello-fs/builder.rb, line 9 def build repository = Repository.new(@config, self) # remove old files from the repo RepositoryCleaner.new(repository).clean boards = TrelloApi.new(repository).boards boards.each do |board| BoardBuilder.new(repository, board).build end LabelsBuilder.new(repository).build build_readme(repository, boards) # remove old attachments AttachmentCleaner.new(repository).remove_old_attachments end
build_readme(repository, boards)
click to toggle source
# File lib/trello-fs/builder.rb, line 26 def build_readme(repository, boards) readme_path = File.join(repository.path, 'README.md') File.open(readme_path, 'w') do |file| file.write(readme_content(repository, boards)) end end
labels_content(repository)
click to toggle source
# File lib/trello-fs/builder.rb, line 42 def labels_content(repository) return '' unless repository.labels && repository.labels.any? repository.labels.values.sort {|a, b| a.name <=> b.name }. select {|lbl| lbl.cards.any? }. map do |label| label_builder = LabelBuilder.new(@repository, label) "[`#{label_builder.label_name}`](#{label_builder.relative_path})" end.join(' ') end
readme_content(repository, boards)
click to toggle source
# File lib/trello-fs/builder.rb, line 33 def readme_content(repository, boards) [ "# #{repository.title}", repository.description, boards_content(repository, boards), labels_content(repository) ].join("\n\n") end
trello_api_board(repository)
click to toggle source
# File lib/trello-fs/builder.rb, line 66 def trello_api_board(repository) Trello::Board.find(repository.board_id) end