trekyll 0.2.1 → 0.3.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.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/lib/trekyll/customfieldsmanager.rb +75 -0
- data/lib/trekyll/trello_get.rb +12 -80
- data/lib/trekyll/version.rb +1 -1
- data/trekyll.gemspec +2 -2
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 943e9309aa462c9c9421eec588ac5cf964eac7f4
|
4
|
+
data.tar.gz: 1ad1b597edd5e38230c1e07f14710fa3532ecf9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 115f5d2cbe801db9c83ecbb621137631f0a0f1b266b464ca9941063c8fa2c8ac5f3a22a11d072eea4ee82f170c042fa82ab2ff5246c54874fe75d25ad90608aa
|
7
|
+
data.tar.gz: 7753f8023ffecd5a8b30b07abda23928136920acc7234d79c13021425d7666b3109ff6401300f56a0b01562cc35395f27408995495d976cd37b8fb093cf0c561
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Welcome to Trekyll. Trekyll is Jekyll plugin which enables you to use Trello board as CMS backend.
|
4
4
|
|
5
|
-
*Note: Currently tested with Jekyll 3.
|
5
|
+
*Note: Currently tested with Jekyll 3.8.4 and custom Jekyll themes
|
6
6
|
|
7
7
|
## Installation:
|
8
8
|
|
@@ -14,7 +14,7 @@ Copy this code and save it as "Gemfile":
|
|
14
14
|
source "https://rubygems.org"
|
15
15
|
ruby RUBY_VERSION
|
16
16
|
|
17
|
-
gem "jekyll", "3.
|
17
|
+
gem "jekyll", "3.8.4"
|
18
18
|
|
19
19
|
group :jekyll_plugins do
|
20
20
|
gem "jekyll-feed", "~> 0.6"
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'trello'
|
2
|
+
|
3
|
+
# @board_custom_fields are JSON "customFields" | trello-api board.custom_fields
|
4
|
+
#
|
5
|
+
# @card_field_values are JSON cards: "customFieldItems" | trello-api card.custom_field_items
|
6
|
+
#
|
7
|
+
# @lyt is layout expectation eg. page, post
|
8
|
+
#
|
9
|
+
module Trekyll
|
10
|
+
class CustomFieldsManager
|
11
|
+
|
12
|
+
def initialize
|
13
|
+
end
|
14
|
+
|
15
|
+
def get_fields_and_layout(board_custom_fields, card_field_values, lyt)
|
16
|
+
fields_list = ""
|
17
|
+
layout = lyt
|
18
|
+
fields_list = board_custom_fields.map do |field|
|
19
|
+
|
20
|
+
f_type = field.type
|
21
|
+
val = ""
|
22
|
+
# if field type is list
|
23
|
+
if f_type == 'list'
|
24
|
+
|
25
|
+
if field.name == 'layout'
|
26
|
+
card_field_values.each do |cf|
|
27
|
+
if cf.custom_field_id == field.id and cf.option_id != nil
|
28
|
+
el = field.custom_field_options.find {|element| element.id == cf.option_id}
|
29
|
+
layout = el.value["text"]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
else
|
33
|
+
|
34
|
+
card_field_values.each do |cf|
|
35
|
+
if cf.custom_field_id == field.id and cf.option_id != nil
|
36
|
+
el = field.custom_field_options.find {|element| element.id == cf.option_id}
|
37
|
+
val = el.value["text"]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
# return value if not layout
|
44
|
+
### empty layout: "" jekyll 3.8.4 bugfix
|
45
|
+
if field.name != 'layout'
|
46
|
+
"#{field.name}: \"#{val}\""
|
47
|
+
else
|
48
|
+
""
|
49
|
+
end
|
50
|
+
|
51
|
+
# if field type checkbox
|
52
|
+
elsif f_type == 'checkbox'
|
53
|
+
card_field_values.each do |cf|
|
54
|
+
if cf.custom_field_id == field.id and cf.value != nil
|
55
|
+
val = cf.value["checked"]
|
56
|
+
end
|
57
|
+
end
|
58
|
+
"#{field.name}: \"#{val}\""
|
59
|
+
|
60
|
+
# if field type text, number, date
|
61
|
+
else
|
62
|
+
card_field_values.each do |cf|
|
63
|
+
if cf.custom_field_id == field.id and cf.value != nil
|
64
|
+
val = cf.value[f_type.to_s]
|
65
|
+
end
|
66
|
+
end
|
67
|
+
"#{field.name}: \"#{val}\""
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
return fields_list , layout
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
end
|
data/lib/trekyll/trello_get.rb
CHANGED
@@ -6,6 +6,7 @@ require_relative 'configurator'
|
|
6
6
|
require_relative 'navigation_manager'
|
7
7
|
require_relative 'core_ext/string'
|
8
8
|
require_relative 'filemanager'
|
9
|
+
require_relative 'customfieldsmanager'
|
9
10
|
|
10
11
|
module Trekyll
|
11
12
|
def self.start_trekyll
|
@@ -27,6 +28,8 @@ module Trekyll
|
|
27
28
|
config.member_token = init_config.token
|
28
29
|
end
|
29
30
|
|
31
|
+
#Custom Fields Plugin Manager
|
32
|
+
cfm = CustomFieldsManager.new
|
30
33
|
|
31
34
|
# Test trello connection
|
32
35
|
user = Trello::Member.find("mucicnenad")
|
@@ -50,14 +53,9 @@ module Trekyll
|
|
50
53
|
lists = board.lists
|
51
54
|
board_custom_fields = ""
|
52
55
|
|
53
|
-
# Get board
|
54
|
-
unless board.
|
55
|
-
|
56
|
-
plugins.each do |plugin|
|
57
|
-
plugin.value.map {|k,fields|
|
58
|
-
board_custom_fields = fields
|
59
|
-
}
|
60
|
-
end
|
56
|
+
# Get board custom fields
|
57
|
+
unless board.custom_fields.nil? then
|
58
|
+
board_custom_fields = board.custom_fields
|
61
59
|
end
|
62
60
|
|
63
61
|
counter = 1
|
@@ -109,47 +107,15 @@ module Trekyll
|
|
109
107
|
puts "Page cover image: #{cover_image_url} " if cover_image_url != ""
|
110
108
|
end
|
111
109
|
|
112
|
-
|
113
|
-
# TODO: Create Module for Custom Fields: #
|
114
|
-
# get_board_fields(board) #
|
115
|
-
# get_card_fields(board_fields, card) #
|
116
|
-
# get_card_layout(board_fields, card) #
|
117
110
|
# #
|
118
|
-
#
|
119
|
-
|
120
|
-
unless card.plugin_data.nil? then
|
121
|
-
card_plugin = card.plugin_data
|
122
|
-
card_plugin.each do |plugin|
|
123
|
-
plugin.value.map {|k,v| card_field_values = v}
|
124
|
-
end
|
125
|
-
end
|
111
|
+
# cfm.get_fields_and_layout(board_fields, card_fields, layout) #
|
112
|
+
# #
|
126
113
|
|
127
114
|
# Custom fields for printing in .md file
|
128
115
|
custom_fields = ""
|
129
116
|
layout = "page"
|
130
|
-
unless card.
|
131
|
-
custom_fields = board_custom_fields.
|
132
|
-
# if field type is: text, number, checkbox, date
|
133
|
-
if (0..3) === field["t"]
|
134
|
-
"#{field["n"]}: \"#{card_field_values[field["id"]]}\""
|
135
|
-
# if field type is: dropdown list
|
136
|
-
elsif field["t"] === 4
|
137
|
-
# if field name is layout set layout variable
|
138
|
-
if field["n"] == "layout"
|
139
|
-
drpdwn_id = card_field_values[field["id"]]
|
140
|
-
hash_with_val = field["o"].find {|element| element["id"] === drpdwn_id}
|
141
|
-
if hash_with_val != nil
|
142
|
-
layout = hash_with_val["value"]
|
143
|
-
next
|
144
|
-
end
|
145
|
-
|
146
|
-
else
|
147
|
-
drpdwn_id = card_field_values[field["id"]]
|
148
|
-
hash_with_val = field["o"].find {|element| element["id"] === drpdwn_id}
|
149
|
-
"#{field["n"]}: \"#{hash_with_val["value"]}\"" if hash_with_val != nil
|
150
|
-
end
|
151
|
-
end
|
152
|
-
end
|
117
|
+
unless card.custom_field_items.nil? then
|
118
|
+
custom_fields, layout = cfm.get_fields_and_layout(board_custom_fields, card.custom_field_items, layout)
|
153
119
|
end
|
154
120
|
|
155
121
|
# Write data to a file
|
@@ -291,46 +257,12 @@ module Trekyll
|
|
291
257
|
|
292
258
|
end
|
293
259
|
|
294
|
-
# TODO: Create Module for Custom Fields: #
|
295
|
-
# get_board_fields(board) #
|
296
|
-
# get_card_fields(board_fields, card) #
|
297
|
-
# get_card_layout(board_fields, card) #
|
298
|
-
# #
|
299
|
-
# Get card plugin custom fields values (Hash)
|
300
|
-
card_field_values = ""
|
301
|
-
unless card.plugin_data.nil? then
|
302
|
-
card_plugin = card.plugin_data
|
303
|
-
card_plugin.each do |plugin|
|
304
|
-
plugin.value.map {|k,v| card_field_values = v}
|
305
|
-
end
|
306
|
-
end
|
307
260
|
|
308
261
|
# Custom fields for printing in .md file
|
309
262
|
custom_fields = ""
|
310
263
|
layout = "post"
|
311
|
-
unless card.
|
312
|
-
custom_fields = board_custom_fields.
|
313
|
-
# if field type is: text, number, checkbox, date
|
314
|
-
if (0..3) === field["t"]
|
315
|
-
"#{field["n"]}: \"#{card_field_values[field["id"]]}\""
|
316
|
-
# if field type is: dropdown list
|
317
|
-
elsif field["t"] === 4
|
318
|
-
# if field name is layout set layout variable
|
319
|
-
if field["n"] == "layout"
|
320
|
-
drpdwn_id = card_field_values[field["id"]]
|
321
|
-
hash_with_val = field["o"].find {|element| element["id"] === drpdwn_id}
|
322
|
-
if hash_with_val != nil
|
323
|
-
layout = hash_with_val["value"]
|
324
|
-
next
|
325
|
-
end
|
326
|
-
|
327
|
-
else
|
328
|
-
drpdwn_id = card_field_values[field["id"]]
|
329
|
-
hash_with_val = field["o"].find {|element| element["id"] === drpdwn_id}
|
330
|
-
"#{field["n"]}: \"#{hash_with_val["value"]}\"" if hash_with_val != nil
|
331
|
-
end
|
332
|
-
end
|
333
|
-
end
|
264
|
+
unless card.custom_field_items.nil? then
|
265
|
+
custom_fields, layout = cfm.get_fields_and_layout(board_custom_fields, card.custom_field_items, layout)
|
334
266
|
end
|
335
267
|
|
336
268
|
#get widget selector from card content and replace with liquid
|
data/lib/trekyll/version.rb
CHANGED
data/trekyll.gemspec
CHANGED
@@ -31,8 +31,8 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.require_paths = ["lib"]
|
32
32
|
|
33
33
|
# TO DO: Set ruby-trello to my github (until the changes get in 2.1.0 v)
|
34
|
-
spec.add_runtime_dependency "trelloapi",">= 0.0.0"
|
35
|
-
|
34
|
+
# spec.add_runtime_dependency "trelloapi",">= 0.0.0"
|
35
|
+
spec.add_runtime_dependency "ruby-trello",">= 2.1.0"
|
36
36
|
spec.add_runtime_dependency "indentation", "~> 0.1.1"
|
37
37
|
|
38
38
|
# spec.add_development_dependency "bundler", "~> 1.14"
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trekyll
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Canic Interactive
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-10-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: ruby-trello
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.1.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 2.1.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: indentation
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -63,6 +63,7 @@ files:
|
|
63
63
|
- lib/trekyll.rb
|
64
64
|
- lib/trekyll/configurator.rb
|
65
65
|
- lib/trekyll/core_ext/string.rb
|
66
|
+
- lib/trekyll/customfieldsmanager.rb
|
66
67
|
- lib/trekyll/filemanager.rb
|
67
68
|
- lib/trekyll/initializator.rb
|
68
69
|
- lib/trekyll/navigation_manager.rb
|