weaver 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/weaver +23 -4
- data/lib/weaver/version.rb +1 -1
- data/lib/weaver.rb +91 -52
- data/weaver.gemspec +1 -0
- metadata +28 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d8b80348cb5de93c99164db39391927fc07c02f
|
4
|
+
data.tar.gz: 4c3d9e71c8d1c7d6dc0f22e08b0a97c1f91313a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5dd06ecd9491b151a2c1e49e9786262f3240bc3519f9c7da7e9305735c7c6d92d64c91abce67aac2aa559d4defc20aa138137c9e589a3e8f371c9d9a5d56330b
|
7
|
+
data.tar.gz: 502699eba012bbc3c80f208394396f395c1023b3177e8d5143d17358f5e8f64a69fdc3299582b37bf2ff7d10c92b2723d2b22af8b0209a3709edca732c0b5e2d
|
data/bin/weaver
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
#!/usr/bin/exec ruby
|
2
2
|
|
3
3
|
require 'weaver'
|
4
|
+
require 'trollop'
|
4
5
|
|
5
6
|
class Website < Sinatra::Base
|
6
7
|
|
@@ -55,16 +56,33 @@ class Website < Sinatra::Base
|
|
55
56
|
site.pages[path].generate(level)
|
56
57
|
|
57
58
|
else
|
59
|
+
puts "Not found: #{viewname} in #{viewFile}"
|
60
|
+
puts "Path is: #{path}"
|
58
61
|
status 404
|
59
62
|
end
|
60
63
|
else
|
64
|
+
puts "Not found: #{viewname} in #{viewFile}"
|
65
|
+
puts "Path is: #{path}"
|
61
66
|
status 404
|
62
67
|
end
|
63
68
|
end
|
64
69
|
|
65
70
|
end
|
66
71
|
|
67
|
-
def build!
|
72
|
+
def build!(args)
|
73
|
+
|
74
|
+
opts = Trollop::options do
|
75
|
+
banner <<-EOS
|
76
|
+
Generate website
|
77
|
+
|
78
|
+
Usage:
|
79
|
+
weaver build [options]
|
80
|
+
where [options] are:
|
81
|
+
EOS
|
82
|
+
|
83
|
+
opt :root, "The root URL to be used in links (e.g.) https://astrobunny.net", type: :string, default: "/"
|
84
|
+
end
|
85
|
+
|
68
86
|
puts "Building site..."
|
69
87
|
|
70
88
|
buildDir = "#{Dir.pwd}/build"
|
@@ -78,7 +96,7 @@ def build!
|
|
78
96
|
files.each do |file|
|
79
97
|
baseDir = file.chomp('.weave').chomp('index').sub(/^source\//, "")
|
80
98
|
|
81
|
-
site = Weaver::Weave.new(file)
|
99
|
+
site = Weaver::Weave.new(file, opts)
|
82
100
|
|
83
101
|
site.pages.each do |localPath, page|
|
84
102
|
resultPath = File.join(baseDir, localPath)
|
@@ -100,8 +118,9 @@ def preview!
|
|
100
118
|
Website.run!
|
101
119
|
end
|
102
120
|
|
103
|
-
|
104
|
-
|
121
|
+
command = ARGV.shift
|
122
|
+
if command == "build"
|
123
|
+
build!(ARGV)
|
105
124
|
else
|
106
125
|
preview!
|
107
126
|
end
|
data/lib/weaver/version.rb
CHANGED
data/lib/weaver.rb
CHANGED
@@ -7,9 +7,10 @@ module Weaver
|
|
7
7
|
|
8
8
|
class Elements
|
9
9
|
|
10
|
-
def initialize(anchors)
|
10
|
+
def initialize(page, anchors)
|
11
11
|
@inner_content = []
|
12
12
|
@anchors = anchors
|
13
|
+
@page = page
|
13
14
|
end
|
14
15
|
|
15
16
|
def method_missing(name, *args, &block)
|
@@ -19,7 +20,7 @@ module Weaver
|
|
19
20
|
inner = args.shift
|
20
21
|
end
|
21
22
|
if block
|
22
|
-
elem = Elements.new(@anchors)
|
23
|
+
elem = Elements.new(@page, @anchors)
|
23
24
|
elem.instance_eval(&block)
|
24
25
|
inner = elem.generate
|
25
26
|
end
|
@@ -49,7 +50,7 @@ module Weaver
|
|
49
50
|
end
|
50
51
|
|
51
52
|
def ibox(&block)
|
52
|
-
panel = Panel.new(@anchors)
|
53
|
+
panel = Panel.new(@page, @anchors)
|
53
54
|
panel.instance_eval(&block)
|
54
55
|
@inner_content << panel.generate
|
55
56
|
end
|
@@ -75,7 +76,7 @@ module Weaver
|
|
75
76
|
|
76
77
|
end
|
77
78
|
|
78
|
-
img class: "img-responsive #{options[:class]}", src: "
|
79
|
+
img class: "img-responsive #{options[:class]}", src: "#{@page.root}images/#{name}", style: style
|
79
80
|
end
|
80
81
|
|
81
82
|
def crossfade_image(image_normal, image_hover)
|
@@ -101,18 +102,40 @@ module Weaver
|
|
101
102
|
@inner_content << theText
|
102
103
|
end
|
103
104
|
|
104
|
-
def link(url, title=nil)
|
105
|
+
def link(url, title=nil, &block)
|
105
106
|
if !title
|
106
107
|
title = url
|
107
108
|
end
|
108
109
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
110
|
+
if url.start_with? "/"
|
111
|
+
url.sub!(/^\//, @page.root)
|
112
|
+
if block
|
113
|
+
a href: url, &block
|
114
|
+
else
|
115
|
+
a title, href: url
|
116
|
+
end
|
117
|
+
else
|
118
|
+
|
119
|
+
if block
|
120
|
+
a href: url, target: "_blank" do
|
121
|
+
span do
|
122
|
+
span &block
|
123
|
+
icon :external_link
|
124
|
+
end
|
125
|
+
end
|
126
|
+
else
|
127
|
+
a href: url, target: "_blank" do
|
128
|
+
span do
|
129
|
+
text title
|
130
|
+
text " "
|
131
|
+
icon :external_link
|
132
|
+
end
|
133
|
+
end
|
114
134
|
end
|
115
135
|
end
|
136
|
+
|
137
|
+
|
138
|
+
|
116
139
|
end
|
117
140
|
|
118
141
|
def accordion(&block)
|
@@ -138,7 +161,7 @@ module Weaver
|
|
138
161
|
end
|
139
162
|
|
140
163
|
def row(options={}, &block)
|
141
|
-
r = Row.new(@anchors, options)
|
164
|
+
r = Row.new(@page, @anchors, options)
|
142
165
|
r.instance_eval(&block)
|
143
166
|
|
144
167
|
@inner_content << <<-ENDROW
|
@@ -153,7 +176,7 @@ ENDROW
|
|
153
176
|
additional_style = ""
|
154
177
|
|
155
178
|
if options[:background]
|
156
|
-
additional_style += " background-image: url('
|
179
|
+
additional_style += " background-image: url('#{@page.root}images/#{options[:background]}'); background-position: center center; background-size: cover;"
|
157
180
|
end
|
158
181
|
|
159
182
|
if options[:height]
|
@@ -318,8 +341,8 @@ ENDROW
|
|
318
341
|
end
|
319
342
|
|
320
343
|
class Panel < Elements
|
321
|
-
def initialize(anchors)
|
322
|
-
super
|
344
|
+
def initialize(page, anchors)
|
345
|
+
super
|
323
346
|
@title = nil
|
324
347
|
@footer = nil
|
325
348
|
@type = :ibox
|
@@ -327,6 +350,7 @@ ENDROW
|
|
327
350
|
@body = true
|
328
351
|
@extra = nil
|
329
352
|
@min_height = nil
|
353
|
+
@page = page
|
330
354
|
end
|
331
355
|
|
332
356
|
def generate
|
@@ -352,7 +376,7 @@ ENDROW
|
|
352
376
|
classNames = types[@type]
|
353
377
|
min_height = @min_height
|
354
378
|
|
355
|
-
elem = Elements.new(@anchors)
|
379
|
+
elem = Elements.new(@page, @anchors)
|
356
380
|
|
357
381
|
elem.instance_eval do
|
358
382
|
div class: classNames[:outer] do
|
@@ -397,7 +421,7 @@ ENDROW
|
|
397
421
|
def title(title=nil, &block)
|
398
422
|
@title = title
|
399
423
|
if block
|
400
|
-
elem = Elements.new(@anchors)
|
424
|
+
elem = Elements.new(@page, @anchors)
|
401
425
|
elem.instance_eval(&block)
|
402
426
|
@title = elem.generate
|
403
427
|
end
|
@@ -405,7 +429,7 @@ ENDROW
|
|
405
429
|
|
406
430
|
def extra(&block)
|
407
431
|
if block
|
408
|
-
elem = Elements.new(@anchors)
|
432
|
+
elem = Elements.new(@page, @anchors)
|
409
433
|
elem.instance_eval(&block)
|
410
434
|
@extra = elem.generate
|
411
435
|
end
|
@@ -414,14 +438,14 @@ ENDROW
|
|
414
438
|
def footer(footer=nil, &block)
|
415
439
|
@footer = footer
|
416
440
|
if block
|
417
|
-
elem = Elements.new(@anchors)
|
441
|
+
elem = Elements.new(@page, @anchors)
|
418
442
|
elem.instance_eval(&block)
|
419
443
|
@footer = elem.generate
|
420
444
|
end
|
421
445
|
end
|
422
446
|
|
423
447
|
def tabs(&block)
|
424
|
-
tabs = Tabs.new(@anchors)
|
448
|
+
tabs = Tabs.new(@page, @anchors)
|
425
449
|
tabs.instance_eval(&block)
|
426
450
|
|
427
451
|
@tabs = tabs
|
@@ -429,11 +453,12 @@ ENDROW
|
|
429
453
|
end
|
430
454
|
|
431
455
|
class Accordion
|
432
|
-
def initialize(anchors)
|
456
|
+
def initialize(page, anchors)
|
433
457
|
@anchors = anchors
|
434
458
|
@tabs = {}
|
435
459
|
@paneltype = :panel
|
436
460
|
@is_collapsed = false
|
461
|
+
@page = page
|
437
462
|
|
438
463
|
if !@anchors["accordia"]
|
439
464
|
@anchors["accordia"] = []
|
@@ -461,7 +486,7 @@ ENDROW
|
|
461
486
|
|
462
487
|
tabArray = @anchors["tabs"]
|
463
488
|
|
464
|
-
elem = Elements.new(@anchors)
|
489
|
+
elem = Elements.new(@page, @anchors)
|
465
490
|
elem.instance_eval(&block)
|
466
491
|
|
467
492
|
tabname = "tab#{tabArray.length}"
|
@@ -476,7 +501,7 @@ ENDROW
|
|
476
501
|
end
|
477
502
|
|
478
503
|
def generate
|
479
|
-
tabbar = Elements.new(@anchors)
|
504
|
+
tabbar = Elements.new(@page, @anchors)
|
480
505
|
|
481
506
|
tabs = @tabs
|
482
507
|
paneltype = @paneltype
|
@@ -528,9 +553,10 @@ ENDROW
|
|
528
553
|
end
|
529
554
|
|
530
555
|
class Tabs
|
531
|
-
def initialize(anchors)
|
556
|
+
def initialize(page, anchors)
|
532
557
|
@anchors = anchors
|
533
558
|
@tabs = {}
|
559
|
+
@page = page
|
534
560
|
end
|
535
561
|
|
536
562
|
def tab(title, &block)
|
@@ -541,7 +567,7 @@ ENDROW
|
|
541
567
|
|
542
568
|
tabArray = @anchors["tabs"]
|
543
569
|
|
544
|
-
elem = Elements.new(@anchors)
|
570
|
+
elem = Elements.new(@page, @anchors)
|
545
571
|
elem.instance_eval(&block)
|
546
572
|
|
547
573
|
tabname = "tab#{tabArray.length}"
|
@@ -556,7 +582,7 @@ ENDROW
|
|
556
582
|
end
|
557
583
|
|
558
584
|
def generate_body
|
559
|
-
tabbar = Elements.new(@anchors)
|
585
|
+
tabbar = Elements.new(@page, @anchors)
|
560
586
|
tabs = @tabs
|
561
587
|
|
562
588
|
tabbar.instance_eval do
|
@@ -578,7 +604,7 @@ ENDROW
|
|
578
604
|
|
579
605
|
def generate_tabs
|
580
606
|
|
581
|
-
tabbar = Elements.new(@anchors)
|
607
|
+
tabbar = Elements.new(@page, @anchors)
|
582
608
|
tabs = @tabs
|
583
609
|
|
584
610
|
tabbar.instance_eval do
|
@@ -610,11 +636,16 @@ ENDROW
|
|
610
636
|
|
611
637
|
class Page
|
612
638
|
|
613
|
-
def initialize(title)
|
639
|
+
def initialize(title, options)
|
614
640
|
@title = title
|
615
641
|
@content = ""
|
616
642
|
@body_class = nil
|
617
643
|
@anchors = {}
|
644
|
+
@options = options
|
645
|
+
end
|
646
|
+
|
647
|
+
def root
|
648
|
+
return @options[:root]
|
618
649
|
end
|
619
650
|
|
620
651
|
def generate(back_folders, options={})
|
@@ -682,11 +713,12 @@ ENDROW
|
|
682
713
|
class Row
|
683
714
|
attr_accessor :extra_classes
|
684
715
|
|
685
|
-
def initialize(anchors, options)
|
716
|
+
def initialize(page, anchors, options)
|
686
717
|
@columns = []
|
687
718
|
@free = 12
|
688
719
|
@extra_classes = options[:class] || ""
|
689
720
|
@anchors = anchors
|
721
|
+
@page = page
|
690
722
|
end
|
691
723
|
|
692
724
|
def twothirds(&block)
|
@@ -736,7 +768,7 @@ ENDROW
|
|
736
768
|
|
737
769
|
def col(occupies, options={}, &block)
|
738
770
|
raise "Not enough columns!" if @free < occupies
|
739
|
-
elem = Elements.new(@anchors)
|
771
|
+
elem = Elements.new(@page, @anchors)
|
740
772
|
elem.instance_eval(&block)
|
741
773
|
|
742
774
|
@columns << { occupy: occupies, elem: elem, options: options }
|
@@ -779,7 +811,7 @@ ENDROW
|
|
779
811
|
end
|
780
812
|
|
781
813
|
class NavPage < Page
|
782
|
-
def initialize(title)
|
814
|
+
def initialize(title, options)
|
783
815
|
super
|
784
816
|
@menu = Menu.new
|
785
817
|
end
|
@@ -792,7 +824,7 @@ ENDROW
|
|
792
824
|
|
793
825
|
|
794
826
|
class SideNavPage < NavPage
|
795
|
-
def initialize(title)
|
827
|
+
def initialize(title, options)
|
796
828
|
@rows = []
|
797
829
|
super
|
798
830
|
end
|
@@ -807,7 +839,7 @@ ENDROW
|
|
807
839
|
end
|
808
840
|
|
809
841
|
def row(options={}, &block)
|
810
|
-
r = Row.new(@anchors, options)
|
842
|
+
r = Row.new(self, @anchors, options)
|
811
843
|
r.instance_eval(&block)
|
812
844
|
@rows << r
|
813
845
|
end
|
@@ -823,8 +855,7 @@ ENDROW
|
|
823
855
|
|
824
856
|
menu = @menu
|
825
857
|
|
826
|
-
|
827
|
-
navigation = Elements.new(@anchors)
|
858
|
+
navigation = Elements.new(@page, @anchors)
|
828
859
|
navigation.instance_eval do
|
829
860
|
|
830
861
|
menu.items.each do |item|
|
@@ -848,9 +879,7 @@ ENDROW
|
|
848
879
|
if inneritem.has_key?(:menu)
|
849
880
|
raise "Second level menu not supported"
|
850
881
|
else
|
851
|
-
|
852
|
-
text inneritem[:name]
|
853
|
-
end
|
882
|
+
link inneritem[:name], href:inneritem[:link]
|
854
883
|
end
|
855
884
|
end
|
856
885
|
end
|
@@ -914,7 +943,7 @@ ENDROW
|
|
914
943
|
end
|
915
944
|
|
916
945
|
class TopNavPage < NavPage
|
917
|
-
def initialize(title)
|
946
|
+
def initialize(title, options)
|
918
947
|
@rows = []
|
919
948
|
super
|
920
949
|
end
|
@@ -929,7 +958,7 @@ ENDROW
|
|
929
958
|
end
|
930
959
|
|
931
960
|
def row(options={}, &block)
|
932
|
-
r = Row.new(@anchors, options)
|
961
|
+
r = Row.new(self, @anchors, options)
|
933
962
|
r.instance_eval(&block)
|
934
963
|
@rows << r
|
935
964
|
end
|
@@ -948,7 +977,7 @@ ENDROW
|
|
948
977
|
|
949
978
|
menu = @menu
|
950
979
|
|
951
|
-
navigation = Elements.new(@anchors)
|
980
|
+
navigation = Elements.new(self, @anchors)
|
952
981
|
navigation.instance_eval do
|
953
982
|
|
954
983
|
menu.items.each do |item|
|
@@ -975,16 +1004,14 @@ ENDROW
|
|
975
1004
|
if inneritem.has_key?(:menu)
|
976
1005
|
raise "Second level menu not supported"
|
977
1006
|
else
|
978
|
-
|
979
|
-
text inneritem[:name]
|
980
|
-
end
|
1007
|
+
link inneritem[:name], href:inneritem[:link]
|
981
1008
|
end
|
982
1009
|
end
|
983
1010
|
end
|
984
1011
|
end
|
985
1012
|
end
|
986
1013
|
elsif
|
987
|
-
|
1014
|
+
link "#{item[:link]}" do
|
988
1015
|
span :class => "nav-label" do
|
989
1016
|
icon item[:icon]
|
990
1017
|
text item[:name]
|
@@ -1051,9 +1078,13 @@ ENDROW
|
|
1051
1078
|
|
1052
1079
|
|
1053
1080
|
class CenterPage < Page
|
1054
|
-
def initialize(title,
|
1055
|
-
@element =
|
1056
|
-
super
|
1081
|
+
def initialize(title, options)
|
1082
|
+
@element = Elements.new(self, {})
|
1083
|
+
super
|
1084
|
+
end
|
1085
|
+
|
1086
|
+
def element=(value)
|
1087
|
+
@element = value
|
1057
1088
|
end
|
1058
1089
|
|
1059
1090
|
def generate(level)
|
@@ -1071,28 +1102,36 @@ ENDROW
|
|
1071
1102
|
|
1072
1103
|
class Weave
|
1073
1104
|
attr_accessor :pages
|
1074
|
-
def initialize(file)
|
1105
|
+
def initialize(file, options={})
|
1075
1106
|
@pages = {}
|
1076
1107
|
@file = file
|
1108
|
+
@options = options
|
1109
|
+
|
1110
|
+
@options[:root] = @options[:root] || "/"
|
1111
|
+
@options[:root] = "#{@options[:root]}/" unless @options[:root].end_with? "/"
|
1077
1112
|
instance_eval(File.read(file), file)
|
1078
1113
|
end
|
1079
1114
|
|
1080
1115
|
def center_page(path, title, &block)
|
1081
|
-
|
1116
|
+
|
1117
|
+
p = CenterPage.new(title, @options)
|
1118
|
+
|
1119
|
+
elem = Elements.new(p, {})
|
1082
1120
|
elem.instance_eval(&block) if block
|
1083
1121
|
|
1084
|
-
p
|
1122
|
+
p.element=elem
|
1123
|
+
|
1085
1124
|
@pages[path] = p
|
1086
1125
|
end
|
1087
1126
|
|
1088
1127
|
def sidenav_page(path, title, &block)
|
1089
|
-
p = SideNavPage.new(title)
|
1128
|
+
p = SideNavPage.new(title, @options)
|
1090
1129
|
p.instance_eval(&block) if block
|
1091
1130
|
@pages[path] = p
|
1092
1131
|
end
|
1093
1132
|
|
1094
1133
|
def topnav_page(path, title, &block)
|
1095
|
-
p = TopNavPage.new(title)
|
1134
|
+
p = TopNavPage.new(title, @options)
|
1096
1135
|
p.instance_eval(&block) if block
|
1097
1136
|
@pages[path] = p
|
1098
1137
|
end
|
data/weaver.gemspec
CHANGED
metadata
CHANGED
@@ -1,55 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: weaver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Siaw
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sinatra
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: trollop
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
25
39
|
- !ruby/object:Gem::Version
|
26
40
|
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
|
-
- - ~>
|
45
|
+
- - "~>"
|
32
46
|
- !ruby/object:Gem::Version
|
33
47
|
version: '1.9'
|
34
48
|
type: :development
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
|
-
- - ~>
|
52
|
+
- - "~>"
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: '1.9'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rake
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
|
-
- - ~>
|
59
|
+
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
61
|
version: '10.0'
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
|
-
- - ~>
|
66
|
+
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '10.0'
|
55
69
|
description: Site generator with a simple DSL
|
@@ -62,9 +76,9 @@ executables:
|
|
62
76
|
extensions: []
|
63
77
|
extra_rdoc_files: []
|
64
78
|
files:
|
65
|
-
- .gitignore
|
66
|
-
- .rspec
|
67
|
-
- .travis.yml
|
79
|
+
- ".gitignore"
|
80
|
+
- ".rspec"
|
81
|
+
- ".travis.yml"
|
68
82
|
- CODE_OF_CONDUCT.md
|
69
83
|
- Gemfile
|
70
84
|
- LICENSE.txt
|
@@ -639,17 +653,17 @@ require_paths:
|
|
639
653
|
- lib
|
640
654
|
required_ruby_version: !ruby/object:Gem::Requirement
|
641
655
|
requirements:
|
642
|
-
- -
|
656
|
+
- - ">="
|
643
657
|
- !ruby/object:Gem::Version
|
644
658
|
version: '0'
|
645
659
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
646
660
|
requirements:
|
647
|
-
- -
|
661
|
+
- - ">="
|
648
662
|
- !ruby/object:Gem::Version
|
649
663
|
version: '0'
|
650
664
|
requirements: []
|
651
665
|
rubyforge_project:
|
652
|
-
rubygems_version: 2.4.
|
666
|
+
rubygems_version: 2.4.6
|
653
667
|
signing_key:
|
654
668
|
specification_version: 4
|
655
669
|
summary: Website generator
|