weaver 0.1.1 → 0.1.2
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 +6 -0
- data/data/weaver/css/style.css +20 -0
- data/lib/weaver/version.rb +1 -1
- data/lib/weaver.rb +155 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5fb88bbdd8624d97afab791ff118c6461699f359
|
4
|
+
data.tar.gz: 4330ca52a3fcbcd1727aa9c9aeb169642afb97af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2493b277a39f98427cf2628c517953e148b2700f737b2b575e53204723e24e093a3d818f616d6df59e362eb4d6772f283771f34af7f4e430e3169dbb42ba25c
|
7
|
+
data.tar.gz: d75e1b1738d73920d1910cebf491a4f38efa5890bba014902b0d59f2f19aec47e856aa1304ba250c5d1001d560dbcf1415a4ea353963a8cf697be82d73af41b7
|
data/bin/weaver
CHANGED
@@ -35,6 +35,11 @@ class Website < Sinatra::Base
|
|
35
35
|
|
36
36
|
|
37
37
|
get '/*' do
|
38
|
+
|
39
|
+
if params[:splat].first.start_with? "images/"
|
40
|
+
return send_file(params[:splat].first, :disposition => 'inline')
|
41
|
+
end
|
42
|
+
|
38
43
|
viewname = params[:splat].first
|
39
44
|
result = getWeavefile viewname
|
40
45
|
viewFile = result[:viewFile]
|
@@ -65,6 +70,7 @@ def build!
|
|
65
70
|
buildDir = "#{Dir.pwd}/build"
|
66
71
|
FileUtils::rm_rf buildDir
|
67
72
|
FileUtils.cp_r(Gem.datadir("weaver"), buildDir)
|
73
|
+
FileUtils.cp_r("images", buildDir)
|
68
74
|
|
69
75
|
files = Dir["source/**/*.weave"]
|
70
76
|
files.each do |file|
|
data/data/weaver/css/style.css
CHANGED
@@ -5029,3 +5029,23 @@ body.skin-3 {
|
|
5029
5029
|
display: none;
|
5030
5030
|
}
|
5031
5031
|
}
|
5032
|
+
|
5033
|
+
.crossfade {
|
5034
|
+
position:relative;
|
5035
|
+
max-width:100%;
|
5036
|
+
margin:0 auto;
|
5037
|
+
}
|
5038
|
+
|
5039
|
+
.crossfade img {
|
5040
|
+
position:absolute;
|
5041
|
+
max-width:100%;
|
5042
|
+
left:0;
|
5043
|
+
-webkit-transition: opacity 1s ease-in-out;
|
5044
|
+
-moz-transition: opacity 1s ease-in-out;
|
5045
|
+
-o-transition: opacity 1s ease-in-out;
|
5046
|
+
transition: opacity 1s ease-in-out;
|
5047
|
+
}
|
5048
|
+
|
5049
|
+
.crossfade img.top:hover {
|
5050
|
+
opacity:0;
|
5051
|
+
}
|
data/lib/weaver/version.rb
CHANGED
data/lib/weaver.rb
CHANGED
@@ -25,7 +25,11 @@ module Weaver
|
|
25
25
|
end
|
26
26
|
|
27
27
|
if !inner
|
28
|
-
|
28
|
+
|
29
|
+
options = args[0] || []
|
30
|
+
opts = options.map { |key,value| "#{key}=\"#{value}\"" }.join " "
|
31
|
+
|
32
|
+
tag = "<#{name} #{opts} />"
|
29
33
|
elsif args.length == 0
|
30
34
|
tag = "<#{name}>#{inner}</#{name}>"
|
31
35
|
elsif args.length == 1 and args[0].is_a? Hash
|
@@ -59,6 +63,17 @@ module Weaver
|
|
59
63
|
end
|
60
64
|
end
|
61
65
|
|
66
|
+
def image(name, options={})
|
67
|
+
img class: "img-responsive #{options[:class]}", src: "/images/#{name}"
|
68
|
+
end
|
69
|
+
|
70
|
+
def crossfade_image(image_normal, image_hover)
|
71
|
+
div class: "crossfade" do
|
72
|
+
image image_hover, class: "bottom"
|
73
|
+
image image_normal, class: "top"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
62
77
|
def breadcrumb(patharray)
|
63
78
|
ol class: "breadcrumb" do
|
64
79
|
patharray.each do |path|
|
@@ -96,10 +111,147 @@ module Weaver
|
|
96
111
|
@inner_content << acc.generate
|
97
112
|
end
|
98
113
|
|
99
|
-
def widget(&block)
|
100
|
-
|
114
|
+
def widget(options={}, &block)
|
115
|
+
#gray-bg
|
116
|
+
#white-bg
|
117
|
+
#navy-bg
|
118
|
+
#blue-bg
|
119
|
+
#lazur-bg
|
120
|
+
#yellow-bg
|
121
|
+
#red-bg
|
122
|
+
#black-bg
|
123
|
+
|
124
|
+
color = "#{options[:color]}-bg" || "navy-bg"
|
125
|
+
|
126
|
+
div :class => "widget style1 #{color}", &block
|
101
127
|
end
|
102
128
|
|
129
|
+
def row(options={}, &block)
|
130
|
+
r = Row.new(@anchors, options)
|
131
|
+
r.instance_eval(&block)
|
132
|
+
|
133
|
+
@inner_content << <<-ENDROW
|
134
|
+
<div class="row">
|
135
|
+
#{r.generate}
|
136
|
+
</div>
|
137
|
+
ENDROW
|
138
|
+
end
|
139
|
+
|
140
|
+
def jumbotron(&block)
|
141
|
+
div :class => "jumbotron", &block
|
142
|
+
end
|
143
|
+
|
144
|
+
def _button(options={})
|
145
|
+
|
146
|
+
anIcon = options[:icon]
|
147
|
+
title = options[:title]
|
148
|
+
|
149
|
+
if title.is_a? Hash
|
150
|
+
options.merge! title
|
151
|
+
title = anIcon
|
152
|
+
anIcon = nil
|
153
|
+
|
154
|
+
end
|
155
|
+
|
156
|
+
style = options[:style] || :primary
|
157
|
+
size = "btn-#{options[:size]}" if options[:size]
|
158
|
+
block = "btn-block" if options[:block]
|
159
|
+
outline = "btn-outline" if options[:outline]
|
160
|
+
dim = "dim" if options[:threedee]
|
161
|
+
dim = "dim btn-large-dim" if options[:bigthreedee]
|
162
|
+
dim = "btn-rounded" if options[:rounded]
|
163
|
+
dim = "btn-circle" if options[:circle]
|
164
|
+
|
165
|
+
buttonOptions = {
|
166
|
+
:type => "button",
|
167
|
+
:class => "btn btn-#{style} #{size} #{block} #{outline} #{dim}"
|
168
|
+
}
|
169
|
+
|
170
|
+
type = :button
|
171
|
+
|
172
|
+
buttonOptions[:"data-toggle"] = "button" if options[:toggle]
|
173
|
+
type = :a if options[:toggle]
|
174
|
+
|
175
|
+
|
176
|
+
method_missing type, buttonOptions do
|
177
|
+
if title.is_a? Symbol
|
178
|
+
icon title
|
179
|
+
else
|
180
|
+
icon anIcon if anIcon
|
181
|
+
text " " if anIcon
|
182
|
+
text title
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
def button(anIcon, title, options={})
|
188
|
+
options[:icon] = anIcon
|
189
|
+
options[:title] = title
|
190
|
+
_button(options)
|
191
|
+
end
|
192
|
+
|
193
|
+
def block_button(anIcon, title, options={})
|
194
|
+
options[:block] = true
|
195
|
+
options[:icon] = anIcon
|
196
|
+
options[:title] = title
|
197
|
+
_button(options)
|
198
|
+
end
|
199
|
+
|
200
|
+
def outline_button(anIcon, title, options={})
|
201
|
+
options[:outline] = true
|
202
|
+
options[:icon] = anIcon
|
203
|
+
options[:title] = title
|
204
|
+
_button(options)
|
205
|
+
end
|
206
|
+
|
207
|
+
def big_button(anIcon, title, options={})
|
208
|
+
options[:size] = :lg
|
209
|
+
options[:icon] = anIcon
|
210
|
+
options[:title] = title
|
211
|
+
_button(options)
|
212
|
+
end
|
213
|
+
|
214
|
+
def small_button(anIcon, title, options={})
|
215
|
+
options[:size] = :sm
|
216
|
+
options[:icon] = anIcon
|
217
|
+
options[:title] = title
|
218
|
+
_button(options)
|
219
|
+
end
|
220
|
+
|
221
|
+
def tiny_button(anIcon, title, options={})
|
222
|
+
options[:size] = :xs
|
223
|
+
options[:icon] = anIcon
|
224
|
+
options[:title] = title
|
225
|
+
_button(options)
|
226
|
+
end
|
227
|
+
|
228
|
+
def embossed_button(anIcon, title, options={})
|
229
|
+
options[:threedee] = true
|
230
|
+
options[:icon] = anIcon
|
231
|
+
options[:title] = title
|
232
|
+
_button(options)
|
233
|
+
end
|
234
|
+
|
235
|
+
def big_embossed_button(anIcon, title, options={})
|
236
|
+
options[:bigthreedee] = true
|
237
|
+
options[:icon] = anIcon
|
238
|
+
options[:title] = title
|
239
|
+
_button(options)
|
240
|
+
end
|
241
|
+
|
242
|
+
def rounded_button(anIcon, title, options={})
|
243
|
+
options[:rounded] = true
|
244
|
+
options[:icon] = anIcon
|
245
|
+
options[:title] = title
|
246
|
+
_button(options)
|
247
|
+
end
|
248
|
+
|
249
|
+
def circle_button(anIcon, title, options={})
|
250
|
+
options[:circle] = true
|
251
|
+
options[:icon] = anIcon
|
252
|
+
options[:title] = title
|
253
|
+
_button(options)
|
254
|
+
end
|
103
255
|
|
104
256
|
def table_from_hashes(hashes)
|
105
257
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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.2
|
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-07
|
11
|
+
date: 2015-08-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sinatra
|