trello-fs 0.0.1

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.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +35 -0
  3. data/Gemfile +3 -0
  4. data/README.md +52 -0
  5. data/examples/demo_board/A_List_of_Cards/README.md +6 -0
  6. data/examples/demo_board/A_List_of_Cards/TrelloFs_Features.md +14 -0
  7. data/examples/demo_board/A_List_of_Cards/TrelloFs_Installation.md +37 -0
  8. data/examples/demo_board/A_Second_List_of_Cards/A_card_with_an_image.md +13 -0
  9. data/examples/demo_board/A_Second_List_of_Cards/README.md +6 -0
  10. data/examples/demo_board/A_Second_List_of_Cards/This_one_has_a_puppy.md +13 -0
  11. data/examples/demo_board/Attachments/A_card_with_an_image/cats-cute-cat-animal-cute-grass-photo.jpg +0 -0
  12. data/examples/demo_board/Attachments/This_one_has_a_puppy/Puppy_2.jpg +0 -0
  13. data/examples/demo_board/Home +13 -0
  14. data/examples/demo_board/Labels/cats.md +5 -0
  15. data/examples/demo_board/Labels/images.md +6 -0
  16. data/examples/demo_board/Labels/no_name.md +4 -0
  17. data/examples/demo_board/Labels/puppies.md +5 -0
  18. data/examples/demo_board/Labels/readme.md +6 -0
  19. data/examples/demo_board/README.md +13 -0
  20. data/examples/demo_board.rb +8 -0
  21. data/examples/welcome_board/Advanced/Get_the_apps_for_iOS_Android_and_Windows_8.md +12 -0
  22. data/examples/welcome_board/Advanced/Need_help.md +10 -0
  23. data/examples/welcome_board/Advanced/README.md +10 -0
  24. data/examples/welcome_board/Advanced/Use_as_many_boards_as_you_want.md +8 -0
  25. data/examples/welcome_board/Advanced/Want_tips_usage_examples_or_API_info.md +8 -0
  26. data/examples/welcome_board/Advanced/Want_to_use_keyboard_shortcuts_We_have_them.md +10 -0
  27. data/examples/welcome_board/Advanced/Want_updates_on_new_features.md +14 -0
  28. data/examples/welcome_board/Attachments/You_can_attach_pictures_and_files/taco.png +0 -0
  29. data/examples/welcome_board/Basics/Click_on_a_card_to_see_whats_behind_it.md +8 -0
  30. data/examples/welcome_board/Basics/README.md +10 -0
  31. data/examples/welcome_board/Basics/This_is_a_card.md +8 -0
  32. data/examples/welcome_board/Basics/Welcome_to_Trello.md +8 -0
  33. data/examples/welcome_board/Basics/You_can_attach_pictures_and_files.md +13 -0
  34. data/examples/welcome_board/Basics/any_kind_of_hyperlink_.md +8 -0
  35. data/examples/welcome_board/Basics/or_checklists.md +8 -0
  36. data/examples/welcome_board/Home +31 -0
  37. data/examples/welcome_board/Intermediate/Drag_people_onto_a_card_to_indicate_that_theyre_responsible_for_it.md +8 -0
  38. data/examples/welcome_board/Intermediate/Finished_with_a_card_Archive_it.md +12 -0
  39. data/examples/welcome_board/Intermediate/Invite_your_team_to_this_board_using_the_Add_Members_button.md +8 -0
  40. data/examples/welcome_board/Intermediate/Make_as_many_lists_as_you_need.md +8 -0
  41. data/examples/welcome_board/Intermediate/README.md +11 -0
  42. data/examples/welcome_board/Intermediate/Try_dragging_cards_anywhere.md +8 -0
  43. data/examples/welcome_board/Intermediate/Use_color-coded_labels_for_organization.md +8 -0
  44. data/examples/welcome_board/Intermediate/You_can_change_the_board_background.md +8 -0
  45. data/examples/welcome_board/Labels/no_name.md +4 -0
  46. data/examples/welcome_board/Labels/red_one.md +6 -0
  47. data/examples/welcome_board/README.md +31 -0
  48. data/examples/welcome_board.rb +8 -0
  49. data/lib/trello-fs/attachment_builder.rb +60 -0
  50. data/lib/trello-fs/attachment_cleaner.rb +39 -0
  51. data/lib/trello-fs/board_builder.rb +61 -0
  52. data/lib/trello-fs/builder.rb +31 -0
  53. data/lib/trello-fs/card_builder.rb +87 -0
  54. data/lib/trello-fs/label_builder.rb +60 -0
  55. data/lib/trello-fs/labels_builder.rb +16 -0
  56. data/lib/trello-fs/list_builder.rb +68 -0
  57. data/lib/trello-fs/repository.rb +36 -0
  58. data/lib/trello-fs/repository_cleaner.rb +18 -0
  59. data/lib/trello-fs/string_to_file_name.rb +9 -0
  60. data/lib/trello-fs/trello_api.rb +83 -0
  61. data/lib/trello-fs/version.rb +3 -0
  62. data/lib/trello-fs.rb +8 -0
  63. data/spec/helpers/test_repository.rb +21 -0
  64. data/spec/spec_helper.rb +9 -0
  65. data/spec/trello-fs/attachment_builder_spec.rb +37 -0
  66. data/spec/trello-fs/attachment_cleaner_spec.rb +44 -0
  67. data/spec/trello-fs/board_builder_spec.rb +28 -0
  68. data/spec/trello-fs/card_builder_spec.rb +60 -0
  69. data/spec/trello-fs/label_builder_spec.rb +36 -0
  70. data/spec/trello-fs/list_builder_spec.rb +32 -0
  71. data/spec/trello-fs/repository_spec.rb +9 -0
  72. data/spec/trello-fs/string_to_file_name_spec.rb +19 -0
  73. data/spec/trello-fs/trello_api_spec.rb +144 -0
  74. data/trello-fs.gemspec +24 -0
  75. metadata +170 -0
@@ -0,0 +1,44 @@
1
+ require 'spec_helper'
2
+
3
+ describe TrelloFs::AttachmentCleaner do
4
+ describe '#remove_old_attachments' do
5
+ let(:repository) { TestRepository.new }
6
+
7
+ let(:old_attachment) { File.join(repository.path, 'Attachments/old/old_attachment.jpg') }
8
+ let(:new_attachment) { File.join(repository.path, 'Attachments/new/new_attachment.jpg') }
9
+
10
+ let(:board) do
11
+ OpenStruct.new(attachments: [
12
+ OpenStruct.new(
13
+ name: 'new_attachment.jpg',
14
+ card: OpenStruct.new(
15
+ name: 'new',
16
+ list: OpenStruct.new(name: 'l')
17
+ )
18
+ )
19
+ ])
20
+ end
21
+
22
+ subject { TrelloFs::AttachmentCleaner.new(repository, board) }
23
+
24
+ before :each do
25
+ [new_attachment, old_attachment].each do |attachment|
26
+ FileUtils.mkpath(File.dirname(attachment))
27
+ File.open(attachment, 'w') {|f| f.write('a') }
28
+ end
29
+ subject.remove_old_attachments
30
+ end
31
+
32
+ it 'should remove the old file' do
33
+ expect(File.exist?(old_attachment)).to eq false
34
+ end
35
+
36
+ it 'should keep the new file' do
37
+ expect(File.exist?(new_attachment)).to eq true
38
+ end
39
+
40
+ it 'should remove the old folder' do
41
+ expect(File.exist?(File.dirname(old_attachment))).to eq false
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ describe TrelloFs::BoardBuilder do
4
+ let(:list) do
5
+ list = OpenStruct.new
6
+ list.name = 'List Name'
7
+ card1 = OpenStruct.new
8
+ card1.name = 'Card 1'
9
+ list.cards = [card1]
10
+ list
11
+ end
12
+
13
+ let(:board) do
14
+ board = OpenStruct.new
15
+ board.name = 'Board'
16
+ board.lists = [list]
17
+ board
18
+ end
19
+
20
+ let(:board_builder) { TrelloFs::BoardBuilder.new(TestRepository.new, board) }
21
+
22
+ context '#readme_content' do
23
+ subject { board_builder.readme_content }
24
+
25
+ it { should include '(List_Name/README.md' }
26
+ it { should include '(List_Name/Card_1.md' }
27
+ end
28
+ end
@@ -0,0 +1,60 @@
1
+ require 'spec_helper'
2
+
3
+ describe TrelloFs::CardBuilder do
4
+
5
+ let(:card) do
6
+ card = OpenStruct.new(name: 'Card Name', desc: 'Card Description',
7
+ labels: [], attachments: [])
8
+
9
+ 3.times do |i|
10
+ card.labels << OpenStruct.new(name: "Label #{i}")
11
+ end
12
+ card
13
+ end
14
+
15
+ let(:list) do
16
+ list = OpenStruct.new
17
+ list.name = 'List Name'
18
+ list
19
+ end
20
+
21
+ let(:board) do
22
+ board = OpenStruct.new
23
+ board.name = 'Board'
24
+ board
25
+ end
26
+
27
+ let(:board_builder) { TrelloFs::BoardBuilder.new(TestRepository.new, board) }
28
+ let(:list_builder) { TrelloFs::ListBuilder.new(board_builder, list) }
29
+ let(:card_builder) { TrelloFs::CardBuilder.new(list_builder, card) }
30
+
31
+ subject { card_builder }
32
+
33
+ describe '#content' do
34
+ subject { card_builder.content(['Attachments/file.pdf', 'Attachments/picture.png']) }
35
+
36
+ it { should include 'Card Name' }
37
+ it { should include 'Card Description' }
38
+ it { should include 'Label 1' }
39
+ it { should include 'Label 2' }
40
+ it { should include 'List Name' }
41
+ it { should include '[file.pdf' }
42
+ it { should include '![picture.png]' }
43
+ end
44
+
45
+ describe '#path' do
46
+ it 'returns the correct path' do
47
+ expected_path = File.join(TestRepository.path, 'List_Name/Card_Name.md')
48
+ expect(subject.path).to eq expected_path
49
+ end
50
+ end
51
+
52
+ describe '#build' do
53
+ it 'creates a file with the content' do
54
+ subject.build
55
+
56
+ expect(File).to exist subject.path
57
+ expect(File.read(subject.path)).to eq subject.content
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+
3
+ describe TrelloFs::LabelBuilder do
4
+
5
+ let(:board) { OpenStruct.new(name: 'Board Name') }
6
+ let(:label) do
7
+ cards = [
8
+ OpenStruct.new(
9
+ name: 'Card 1',
10
+ list: OpenStruct.new(
11
+ name: 'List Name',
12
+ board: board
13
+ )
14
+ )
15
+ ]
16
+ OpenStruct.new name: 'Label Name', cards: cards
17
+ end
18
+
19
+ let(:builder) { TrelloFs::LabelBuilder.new(
20
+ TrelloFs::LabelsBuilder.new(TestRepository.new, board),
21
+ label) }
22
+
23
+ describe '#path' do
24
+ subject { builder.path }
25
+
26
+ it { should include 'Labels' }
27
+ it { should include 'Label_Name.md' }
28
+ end
29
+
30
+ describe '#content' do
31
+ subject { builder.content }
32
+
33
+ it { should include 'Label Name' }
34
+ it { should include 'Card 1' }
35
+ end
36
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe TrelloFs::ListBuilder do
4
+
5
+ let(:list) do
6
+ list = OpenStruct.new
7
+ list.name = 'List Name'
8
+ card1, card2 = OpenStruct.new, OpenStruct.new
9
+ card1.name, card2.name = 'Card 1', 'Card 2'
10
+ list.cards = [card1, card2]
11
+ list
12
+ end
13
+
14
+ let(:board) do
15
+ board = OpenStruct.new
16
+ board.name = 'Board'
17
+ board
18
+ end
19
+
20
+ let(:board_builder) { TrelloFs::BoardBuilder.new(TestRepository.new, board) }
21
+ let(:list_builder) { TrelloFs::ListBuilder.new(board_builder, list) }
22
+
23
+ subject { list_builder }
24
+
25
+ describe '#readme_content' do
26
+ subject { list_builder.readme_content }
27
+
28
+ it { should include 'List Name' }
29
+ it { should include '(Card_1.md' }
30
+ it { should include '(Card_2.md' }
31
+ end
32
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ describe TrelloFs::Repository do
4
+ describe '#initialize' do
5
+ it 'raises an error if there are wrong arguments' do
6
+ expect { subject.new({}) }.to raise_error
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe TrelloFs::StringToFileName do
4
+ subject { TrelloFs::StringToFileName }
5
+
6
+ describe '.convert' do
7
+ it 'is unique for different strings' do
8
+ expect(subject.convert('one')).not_to eq subject.convert('two')
9
+ end
10
+
11
+ it 'is the same for the same strings' do
12
+ expect(subject.convert('one')).to eq subject.convert('one')
13
+ end
14
+
15
+ it 'replaces slashes with dashes' do
16
+ expect(subject.convert('a file/path')).to eq 'a_filepath'
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,144 @@
1
+ require 'spec_helper'
2
+
3
+ describe TrelloFs::TrelloApi do
4
+
5
+ let(:trello_api) { TrelloFs::TrelloApi.new(TestRepository.new) }
6
+
7
+ before :each do
8
+ allow(trello_api).to receive(:download_board_json) { response_body }
9
+ end
10
+
11
+ describe '#board' do
12
+ let(:board) { trello_api.board }
13
+ it { expect(board.name).to eq 'Board Name' }
14
+ it { expect(board.desc).to eq 'Board Description' }
15
+ it { expect(board.organization_name).to eq 'Matus PhD' }
16
+ it { expect(board.lists.size).to eq 1 }
17
+ it { expect(board.attachments.size).to eq 1 }
18
+
19
+ let(:list) { board.lists.first }
20
+ it { expect(list.name).to eq 'List Name' }
21
+ it { expect(list.cards.size).to eq 1 }
22
+
23
+ let(:card) { list.cards.first }
24
+ it { expect(card.name).to eq 'Card Name' }
25
+ it { expect(card.desc).to eq 'Card Description' }
26
+ it { expect(card.checklists.size).to eq 1 }
27
+
28
+ let(:checklist) { card.checklists.first }
29
+ it { expect(checklist.name).to eq 'Checklist' }
30
+ it { expect(checklist.items.size).to eq 1 }
31
+
32
+ let(:checklist_item) { checklist.items.first }
33
+ it { expect(checklist_item.name).to eq 'Checklist Item 1' }
34
+ it { expect(checklist_item.state).to eq 'incomplete' }
35
+ end
36
+
37
+ def response_body
38
+ {
39
+ "id" => "2174981360244",
40
+ "name" => "Board Name",
41
+ "desc" => "Board Description",
42
+ "descData" => nil,
43
+ "closed" => false,
44
+ "idOrganization" => nil,
45
+ "pinned" => false,
46
+ "url" => "https://trello.com/b/Wccvd/board",
47
+ "shortUrl" => "https://trello.com/b/Wccvd",
48
+ "organization" => {
49
+ "id" => "264631916292bb8",
50
+ "name" => "matusphd",
51
+ "displayName" => "Matus PhD"
52
+ },
53
+ "prefs" => {
54
+ },
55
+ "labelNames" => {
56
+ "green" => "", "yellow" => "", "orange" => "", "red" => "", "purple" => "", "blue" => "", "sky" => "", "lime" => "", "pink" => "", "black" => ""
57
+ },
58
+ "labels" => [
59
+ {
60
+ "id" => "546da5df74d650d56751d2f7",
61
+ "idBoard" => "546da5dfc9c189f852060244",
62
+ "name" => "Label 1",
63
+ "color" => "green",
64
+ "uses" => 1
65
+ }
66
+ ],
67
+ "cards" => [
68
+ {
69
+ "id" => "546da5f05906d2a063bbea85",
70
+ "checkItemStates" => [],
71
+ "closed" => false,
72
+ "dateLastActivity" => "2014-11-20T08:28:18.936Z",
73
+ "desc" => "Card Description",
74
+ "descData" => nil,
75
+ "email" => nil,
76
+ "idBoard" => "546da5dfc9c189f852060244",
77
+ "idList" => "546da5e83fa3907212a5eed1",
78
+ "idMembersVoted" => [],
79
+ "idShort" => 1,
80
+ "idAttachmentCover" => nil,
81
+ "manualCoverAttachment" => false,
82
+ "idLabels" => [
83
+ "546da5df74d650d56751d2f7"
84
+ ],
85
+ "name" => "Card Name",
86
+ "labels" => [
87
+ {
88
+ "id" => "546da5df74d650d56751d2f7",
89
+ "idBoard" => "546da5dfc9c189f852060244",
90
+ "name" => "Label 1",
91
+ "color" => "green",
92
+ "uses" => 1
93
+ }
94
+ ],
95
+ "shortUrl" => "https://trello.com/c/il3oSldG",
96
+ "subscribed" => false,
97
+ "url" => "https://trello.com/c/il3oSldG/1-20-11-2014",
98
+ "checklists" => [
99
+ {
100
+ "id" => "546da60b9446036c5a6241bd",
101
+ "name" => "Checklist",
102
+ "idBoard" => "546da5dfc9c189f852060244",
103
+ "idCard" => "546da5f05906d2a063bbea85",
104
+ "pos" => 16384,
105
+ "checkItems" => [
106
+ {
107
+ "id" => "546da6182183e3d2a1a0e4ab",
108
+ "name" => "Checklist Item 1",
109
+ "nameData" => nil,
110
+ "pos" => 17229,
111
+ "state" => "incomplete"
112
+ }
113
+ ]
114
+ }
115
+ ],
116
+ "attachments" => [
117
+ {
118
+ "bytes" => 262233,
119
+ "date" => "2015-02-21T17:00:54.423Z",
120
+ "edgeColor" => nil,
121
+ "idMember" => "ead2c755d8a670dac6d",
122
+ "isUpload" => true,
123
+ "mimeType" => nil,
124
+ "name" => "main.pdf",
125
+ "previews" => [],
126
+ "url" => "https://trello-attachments.s3.amazonaws.com/546da9f852060244/54a85/19/main.pdf",
127
+ "id" => "70816dbd5085cee"
128
+ }
129
+ ]
130
+ }
131
+ ],
132
+ "lists" => [
133
+ {
134
+ "id" => "546da5e83fa3907212a5eed1",
135
+ "name" => "List Name",
136
+ "closed" => false,
137
+ "idBoard" => "546da5dfc9c189f852060244",
138
+ "pos" => 65535,
139
+ "subscribed" => false
140
+ }
141
+ ]
142
+ }
143
+ end
144
+ end
data/trello-fs.gemspec ADDED
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'trello-fs/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "trello-fs"
8
+ spec.version = TrelloFs::VERSION
9
+ spec.authors = ["Matúš Tomlein"]
10
+ spec.email = ["matus@tomlein.org"]
11
+ spec.summary = %q{A utility for archiving Trello boards into Git repositories.}
12
+ spec.description = %q{}
13
+ spec.homepage = "https://github.com/matus_tomlein/trello-fs"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.6"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "rspec", "~> 3.0"
24
+ end
metadata ADDED
@@ -0,0 +1,170 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: trello-fs
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Matúš Tomlein
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-02-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ description: ''
56
+ email:
57
+ - matus@tomlein.org
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - ".gitignore"
63
+ - Gemfile
64
+ - README.md
65
+ - examples/demo_board.rb
66
+ - examples/demo_board/A_List_of_Cards/README.md
67
+ - examples/demo_board/A_List_of_Cards/TrelloFs_Features.md
68
+ - examples/demo_board/A_List_of_Cards/TrelloFs_Installation.md
69
+ - examples/demo_board/A_Second_List_of_Cards/A_card_with_an_image.md
70
+ - examples/demo_board/A_Second_List_of_Cards/README.md
71
+ - examples/demo_board/A_Second_List_of_Cards/This_one_has_a_puppy.md
72
+ - examples/demo_board/Attachments/A_card_with_an_image/cats-cute-cat-animal-cute-grass-photo.jpg
73
+ - examples/demo_board/Attachments/This_one_has_a_puppy/Puppy_2.jpg
74
+ - examples/demo_board/Home
75
+ - examples/demo_board/Labels/cats.md
76
+ - examples/demo_board/Labels/images.md
77
+ - examples/demo_board/Labels/no_name.md
78
+ - examples/demo_board/Labels/puppies.md
79
+ - examples/demo_board/Labels/readme.md
80
+ - examples/demo_board/README.md
81
+ - examples/welcome_board.rb
82
+ - examples/welcome_board/Advanced/Get_the_apps_for_iOS_Android_and_Windows_8.md
83
+ - examples/welcome_board/Advanced/Need_help.md
84
+ - examples/welcome_board/Advanced/README.md
85
+ - examples/welcome_board/Advanced/Use_as_many_boards_as_you_want.md
86
+ - examples/welcome_board/Advanced/Want_tips_usage_examples_or_API_info.md
87
+ - examples/welcome_board/Advanced/Want_to_use_keyboard_shortcuts_We_have_them.md
88
+ - examples/welcome_board/Advanced/Want_updates_on_new_features.md
89
+ - examples/welcome_board/Attachments/You_can_attach_pictures_and_files/taco.png
90
+ - examples/welcome_board/Basics/Click_on_a_card_to_see_whats_behind_it.md
91
+ - examples/welcome_board/Basics/README.md
92
+ - examples/welcome_board/Basics/This_is_a_card.md
93
+ - examples/welcome_board/Basics/Welcome_to_Trello.md
94
+ - examples/welcome_board/Basics/You_can_attach_pictures_and_files.md
95
+ - examples/welcome_board/Basics/any_kind_of_hyperlink_.md
96
+ - examples/welcome_board/Basics/or_checklists.md
97
+ - examples/welcome_board/Home
98
+ - examples/welcome_board/Intermediate/Drag_people_onto_a_card_to_indicate_that_theyre_responsible_for_it.md
99
+ - examples/welcome_board/Intermediate/Finished_with_a_card_Archive_it.md
100
+ - examples/welcome_board/Intermediate/Invite_your_team_to_this_board_using_the_Add_Members_button.md
101
+ - examples/welcome_board/Intermediate/Make_as_many_lists_as_you_need.md
102
+ - examples/welcome_board/Intermediate/README.md
103
+ - examples/welcome_board/Intermediate/Try_dragging_cards_anywhere.md
104
+ - examples/welcome_board/Intermediate/Use_color-coded_labels_for_organization.md
105
+ - examples/welcome_board/Intermediate/You_can_change_the_board_background.md
106
+ - examples/welcome_board/Labels/no_name.md
107
+ - examples/welcome_board/Labels/red_one.md
108
+ - examples/welcome_board/README.md
109
+ - lib/trello-fs.rb
110
+ - lib/trello-fs/attachment_builder.rb
111
+ - lib/trello-fs/attachment_cleaner.rb
112
+ - lib/trello-fs/board_builder.rb
113
+ - lib/trello-fs/builder.rb
114
+ - lib/trello-fs/card_builder.rb
115
+ - lib/trello-fs/label_builder.rb
116
+ - lib/trello-fs/labels_builder.rb
117
+ - lib/trello-fs/list_builder.rb
118
+ - lib/trello-fs/repository.rb
119
+ - lib/trello-fs/repository_cleaner.rb
120
+ - lib/trello-fs/string_to_file_name.rb
121
+ - lib/trello-fs/trello_api.rb
122
+ - lib/trello-fs/version.rb
123
+ - spec/helpers/test_repository.rb
124
+ - spec/spec_helper.rb
125
+ - spec/trello-fs/attachment_builder_spec.rb
126
+ - spec/trello-fs/attachment_cleaner_spec.rb
127
+ - spec/trello-fs/board_builder_spec.rb
128
+ - spec/trello-fs/card_builder_spec.rb
129
+ - spec/trello-fs/label_builder_spec.rb
130
+ - spec/trello-fs/list_builder_spec.rb
131
+ - spec/trello-fs/repository_spec.rb
132
+ - spec/trello-fs/string_to_file_name_spec.rb
133
+ - spec/trello-fs/trello_api_spec.rb
134
+ - trello-fs.gemspec
135
+ homepage: https://github.com/matus_tomlein/trello-fs
136
+ licenses:
137
+ - MIT
138
+ metadata: {}
139
+ post_install_message:
140
+ rdoc_options: []
141
+ require_paths:
142
+ - lib
143
+ required_ruby_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ required_rubygems_version: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ requirements: []
154
+ rubyforge_project:
155
+ rubygems_version: 2.2.2
156
+ signing_key:
157
+ specification_version: 4
158
+ summary: A utility for archiving Trello boards into Git repositories.
159
+ test_files:
160
+ - spec/helpers/test_repository.rb
161
+ - spec/spec_helper.rb
162
+ - spec/trello-fs/attachment_builder_spec.rb
163
+ - spec/trello-fs/attachment_cleaner_spec.rb
164
+ - spec/trello-fs/board_builder_spec.rb
165
+ - spec/trello-fs/card_builder_spec.rb
166
+ - spec/trello-fs/label_builder_spec.rb
167
+ - spec/trello-fs/list_builder_spec.rb
168
+ - spec/trello-fs/repository_spec.rb
169
+ - spec/trello-fs/string_to_file_name_spec.rb
170
+ - spec/trello-fs/trello_api_spec.rb