webify_ruby 0.0.8 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.rdoc +5 -0
- data/lib/webify_ruby.rb +1 -0
- data/lib/webify_ruby/convert.rb +25 -9
- data/lib/webify_ruby/html.rb +192 -0
- data/lib/webify_ruby/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3508f82d818a9cd27c1739a92005ba15c17a3fe6
|
4
|
+
data.tar.gz: 69caea4901abffba0610032e1493c7a7f69a1485
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 42fdf9121ba47b5c56c4f4574eaef776bb0268136aac680ce44e794aefd53b1d78692a32297d9f796f296065ac9e649e1035d9b21b15dba05c6015f5c040aabf
|
7
|
+
data.tar.gz: 3b178ef09a97e7c3bc0c97b33e5a9d6c47a77acc20c53c4db964d43ce57f3c4cd7482acc4bb1c7695cc500d3f7108de9501df88d0450e3cc45006288cb365d40
|
data/README.rdoc
CHANGED
@@ -15,6 +15,11 @@
|
|
15
15
|
Version 0.0.6 :: Gagra
|
16
16
|
Version 0.0.7 :: Sochi
|
17
17
|
Version 0.0.8 :: Poti
|
18
|
+
Version 0.1.0 :: Kaspi
|
19
|
+
|
20
|
+
== Generated HTML preview
|
21
|
+
|
22
|
+
{rdoc-image:http://dachi-gh.github.io/webify_ruby/preview.png}[http://dachi-gh.github.io/webify_ruby/preview.png]
|
18
23
|
|
19
24
|
== Usage
|
20
25
|
|
data/lib/webify_ruby.rb
CHANGED
data/lib/webify_ruby/convert.rb
CHANGED
@@ -38,26 +38,29 @@ module WebifyRuby
|
|
38
38
|
|
39
39
|
# Public: Initialize a Convertion of font-file.
|
40
40
|
#
|
41
|
-
# file
|
42
|
-
# :dir
|
43
|
-
# :css
|
44
|
-
#
|
45
|
-
#
|
46
|
-
#
|
47
|
-
# :link_to
|
41
|
+
# file - A String containing relative or full path of file to convert.
|
42
|
+
# :dir - A String indicating to the desired to save converted files (optional).
|
43
|
+
# :css - A String or Boolean value indicating a desired CSS behavior.
|
44
|
+
# If present, it can be either directory path in String or Boolean.
|
45
|
+
# If value is set to true, then a stylesheet file won't be created,
|
46
|
+
# but code will become accessible as :styles attribute (optional).
|
47
|
+
# :link_to - A String notation indicating how to prefix a font url in CSS (optional).
|
48
48
|
# :unique_id - A custom identifier which will separate different fonts (optional).
|
49
|
+
# :html - If present, it will create an HTML file in the given directory.
|
50
|
+
# Note: CSS has to be set to generate a file too. (optional).
|
49
51
|
#
|
50
52
|
# Returns nothing.
|
51
53
|
# Raises Errno::ENOENT if the inputted file cannot be found.
|
52
54
|
# Raises Error if the inputted font file is not withing valid extensions.
|
53
55
|
# Raises Error::ENOENT if the directory of inputted file is not accessible.
|
54
|
-
def initialize(file, dir: nil, css: nil, link_to: nil, unique_id: nil)
|
55
|
-
[file, dir, css, link_to, unique_id]
|
56
|
+
def initialize(file, dir: nil, css: nil, link_to: nil, unique_id: nil, html: nil)
|
57
|
+
[file, dir, css, link_to, unique_id, html]
|
56
58
|
|
57
59
|
@desired_dir = dir
|
58
60
|
@css = css
|
59
61
|
@link_to = link_to
|
60
62
|
@unique_id = unique_id
|
63
|
+
@html = html
|
61
64
|
|
62
65
|
raise Errno::ENOENT, "The font file '#{file}' does not exist" unless File.exists?(file)
|
63
66
|
@original_file = file
|
@@ -90,6 +93,7 @@ module WebifyRuby
|
|
90
93
|
end
|
91
94
|
|
92
95
|
generate_css unless @css.nil?
|
96
|
+
generate_html unless @css_file.nil? or @html.nil?
|
93
97
|
end
|
94
98
|
|
95
99
|
# Internal: Know files that have been touched by running binary command.
|
@@ -128,6 +132,18 @@ module WebifyRuby
|
|
128
132
|
|
129
133
|
@css_file = css.write @css if should_write_css?
|
130
134
|
end
|
135
|
+
|
136
|
+
# Internal: Work with Html class and make a HTML5 Doc.
|
137
|
+
# Create a file under given directory.
|
138
|
+
# This method should not execute if there is no css file.
|
139
|
+
#
|
140
|
+
# Returns the HTML filepath or nothing.
|
141
|
+
def generate_html
|
142
|
+
return false if @css_file.nil? or @html.nil?
|
143
|
+
|
144
|
+
html = WebifyRuby::Html.new(@css_file, @html)
|
145
|
+
@html_file = html.result
|
146
|
+
end
|
131
147
|
|
132
148
|
protected
|
133
149
|
|
@@ -0,0 +1,192 @@
|
|
1
|
+
require 'erb'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'pathname'
|
4
|
+
|
5
|
+
module WebifyRuby
|
6
|
+
# Public: You can set a custom HTML template by using this method.
|
7
|
+
def self.html_doc=(str)
|
8
|
+
@html_doc = str
|
9
|
+
end
|
10
|
+
|
11
|
+
# Public: You can get a current HTML template that is used by the module.
|
12
|
+
def self.html_doc
|
13
|
+
return @html_doc if @html_doc
|
14
|
+
@html_doc = WebifyRuby::html_doc_default
|
15
|
+
end
|
16
|
+
|
17
|
+
# Internal: HTML template that is used in in generated .html file by default.
|
18
|
+
html_doc_default = <<-HTML.gsub /^\s*/, ''
|
19
|
+
<!DOCTYPE html>
|
20
|
+
<html lang="en">
|
21
|
+
<head>
|
22
|
+
<meta charset="utf-8">
|
23
|
+
<title><%=@font_name%> - WebifyRuby</title>
|
24
|
+
<link rel="stylesheet" type="text/css" href="<%=@css_file%>">
|
25
|
+
<style>
|
26
|
+
::-moz-selection {
|
27
|
+
background: #b3d4fc;
|
28
|
+
text-shadow: none;
|
29
|
+
}
|
30
|
+
|
31
|
+
::selection {
|
32
|
+
background: #b3d4fc;
|
33
|
+
text-shadow: none;
|
34
|
+
}
|
35
|
+
|
36
|
+
html {
|
37
|
+
padding: 30px 10px;
|
38
|
+
font-size: 20px;
|
39
|
+
line-height: 1.4;
|
40
|
+
color: #737373;
|
41
|
+
-webkit-text-size-adjust: 100%;
|
42
|
+
-ms-text-size-adjust: 100%;
|
43
|
+
|
44
|
+
background-color: #fff;
|
45
|
+
background-image:
|
46
|
+
linear-gradient(90deg, transparent 79px, #737373 79px, #737373 81px, transparent 81px),
|
47
|
+
linear-gradient(#eee .1em, transparent .1em);
|
48
|
+
background-size: 100% 1.2em;
|
49
|
+
|
50
|
+
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
51
|
+
}
|
52
|
+
|
53
|
+
a:link,a:visited,a:hover,a:active {
|
54
|
+
color:inherit;
|
55
|
+
text-decoration:none;
|
56
|
+
}
|
57
|
+
|
58
|
+
body {
|
59
|
+
max-width: 750px;
|
60
|
+
_width: 750px;
|
61
|
+
padding: 30px 20px 50px;
|
62
|
+
margin: 0 auto;
|
63
|
+
}
|
64
|
+
|
65
|
+
h1 {
|
66
|
+
margin: 5px 10px;
|
67
|
+
font-size: 40px;
|
68
|
+
text-align: center;
|
69
|
+
}
|
70
|
+
|
71
|
+
h1 span {
|
72
|
+
color: #bbb;
|
73
|
+
}
|
74
|
+
|
75
|
+
h3 {
|
76
|
+
margin: 1.5em 0 0.5em;
|
77
|
+
}
|
78
|
+
|
79
|
+
p {
|
80
|
+
margin: 0.5em 0;
|
81
|
+
}
|
82
|
+
|
83
|
+
ul {
|
84
|
+
margin: 1em 0;
|
85
|
+
list-style:none;
|
86
|
+
font-family:<%=@font_name%>;
|
87
|
+
border:1px solid #ccc;
|
88
|
+
padding:15px;
|
89
|
+
background: #fff;
|
90
|
+
}
|
91
|
+
|
92
|
+
ul li {
|
93
|
+
display:inline-block;
|
94
|
+
height:50px;
|
95
|
+
width:50px;;
|
96
|
+
text-align:center;
|
97
|
+
line-height:50px;
|
98
|
+
margin:10px;
|
99
|
+
background: #fff;
|
100
|
+
}
|
101
|
+
|
102
|
+
.container {
|
103
|
+
max-width: 700px;
|
104
|
+
_width: 700px;
|
105
|
+
margin: 0 auto;
|
106
|
+
}
|
107
|
+
|
108
|
+
input::-moz-focus-inner {
|
109
|
+
padding: 0;
|
110
|
+
border: 0;
|
111
|
+
}
|
112
|
+
</style>
|
113
|
+
</head>
|
114
|
+
<body>
|
115
|
+
<a href="https://github.com/dachi-gh/webify_ruby"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://github-camo.global.ssl.fastly.net/38ef81f8aca64bb9a64448d0d70f1308ef5341ab/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6461726b626c75655f3132313632312e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"></a>
|
116
|
+
|
117
|
+
<div class="container">
|
118
|
+
<h1><a href="https://github.com/dachi-gh/webify_ruby">WebifyRuby <span>Gem</span></a></h1>
|
119
|
+
<p>
|
120
|
+
<strong><%=Time.now%></strong>
|
121
|
+
</p>
|
122
|
+
<p>
|
123
|
+
<strong><%=@font_name%></strong>
|
124
|
+
</p>
|
125
|
+
<p>The result looks like this:</p>
|
126
|
+
<ul>
|
127
|
+
<%("a".."z").each do |l|%>
|
128
|
+
<li><%=l.upcase%> <%=l%></li>
|
129
|
+
<%end%>
|
130
|
+
</ul>
|
131
|
+
<p>
|
132
|
+
<small>Github page: <a href="https://github.com/dachi-gh/webify_ruby">https://github.com/dachi-gh/webify_ruby</a></small>
|
133
|
+
</p>
|
134
|
+
</div>
|
135
|
+
</body>
|
136
|
+
</html>
|
137
|
+
HTML
|
138
|
+
|
139
|
+
# Public: Html class of the module which is to generate code,
|
140
|
+
# and write to the specified directory's .html file.
|
141
|
+
class Html
|
142
|
+
# Public: Returns the String file for created css stylesheet.
|
143
|
+
attr_reader :css_file
|
144
|
+
# Internal: Returns the String name of the directory where .html file will exist.
|
145
|
+
attr_reader :html_dir
|
146
|
+
# Internal: Returns the String font name that was converted.
|
147
|
+
attr_reader :font_name
|
148
|
+
# Internal: Returns the String directory path where a .html.
|
149
|
+
attr_reader :html_file
|
150
|
+
# Internal: Returns the Fixnum length of a file.
|
151
|
+
attr_reader :output
|
152
|
+
# Internal: Returns the String representation of HTML file.
|
153
|
+
attr_reader :result
|
154
|
+
|
155
|
+
# Public: Initialize a HTML generation.
|
156
|
+
#
|
157
|
+
# css_file - A String filepath to the generated CSS.
|
158
|
+
# html_dir - A String path to the directory where file will be created.
|
159
|
+
#
|
160
|
+
# Returns the String HTML document code.
|
161
|
+
def initialize(css_file, html_dir)
|
162
|
+
@css_file = css_file
|
163
|
+
@html_dir = html_dir
|
164
|
+
@font_name = File.basename(@css_file, ".*")
|
165
|
+
|
166
|
+
make_html
|
167
|
+
write
|
168
|
+
end
|
169
|
+
|
170
|
+
# Internal: (Re-)Create a HTML file and write code there.
|
171
|
+
#
|
172
|
+
# Returns the HTML filepath just created.
|
173
|
+
def write
|
174
|
+
@dir = FileUtils.mkdir_p @html_dir unless File.directory? @html_dir
|
175
|
+
@html_file = File.join(@html_dir, @font_name + '.html')
|
176
|
+
|
177
|
+
File.delete(@html_file) if File.exist?(@html_file)
|
178
|
+
@output = File.open(@html_file, 'w') { |file| file.write(@result) }
|
179
|
+
@html_file
|
180
|
+
end
|
181
|
+
|
182
|
+
private
|
183
|
+
|
184
|
+
# Public: Use template to fill placeholders with relevant values.
|
185
|
+
#
|
186
|
+
# Returns the String containing a HTML document code.
|
187
|
+
def make_html
|
188
|
+
template = ERB.new WebifyRuby::html_doc
|
189
|
+
@result = template.result binding
|
190
|
+
end
|
191
|
+
end
|
192
|
+
end
|
data/lib/webify_ruby/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webify_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dachi Natsvlishvili
|
@@ -111,6 +111,7 @@ files:
|
|
111
111
|
- lib/webify_ruby/convert.rb
|
112
112
|
- lib/webify_ruby/css.rb
|
113
113
|
- lib/webify_ruby/errors.rb
|
114
|
+
- lib/webify_ruby/html.rb
|
114
115
|
- lib/webify_ruby/railtie.rb
|
115
116
|
- lib/webify_ruby/tasks.rb
|
116
117
|
- lib/webify_ruby/version.rb
|