weaver 0.1.5 → 0.1.6
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/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
|