modulizer 0.1.0 → 0.1.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/.gitignore +1 -1
- data/exe/modulizer +21 -4
- data/lib/modulizer.rb +15 -14
- data/lib/modulizer/stylebuilder.rb +31 -0
- data/lib/modulizer/version.rb +1 -1
- data/modulizer.gemspec +3 -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: 5d021a23274e7d5ad73e2503e527c4645c1e5503
|
4
|
+
data.tar.gz: c3abe7234e1843404398649c1d4dacd2f24b4983
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 32703f525fd8f845767c4eeb739515866d64b1ceb72f4a5c9b65352b2f689fdfb4b2662a13ea4a4e64cf4f2e99d395116053a48b7f0bb99f91d1e4b576ee9428
|
7
|
+
data.tar.gz: 580d6b677b6a69a83999aa1dd7aebaed0291933a3ce7580ebb855349ec38c31219c4c1b4413c07ae476fcedb90676ebd17230d6d433a136bddffeeeb7944e7ae
|
data/.gitignore
CHANGED
data/exe/modulizer
CHANGED
@@ -9,12 +9,23 @@ require 'optparse'
|
|
9
9
|
|
10
10
|
options = {}
|
11
11
|
OptionParser.new do |opts|
|
12
|
-
opts.banner = "
|
12
|
+
opts.banner = """
|
13
|
+
Modulizer: a ruby gem that modulize the web pages
|
14
|
+
author: dave wu (eyaswoo@163.com)
|
15
|
+
Sept. 2016 MIT
|
13
16
|
|
14
|
-
|
17
|
+
Usage:
|
18
|
+
$> modulizer [options]
|
19
|
+
"""
|
20
|
+
|
21
|
+
opts.on("-e", "--entry ENTRY_FILE", "input file, normally html") do |e|
|
15
22
|
options[:input] = e
|
16
23
|
end
|
17
24
|
|
25
|
+
opts.on("-o", "--output OUTPUT_FILE", "output file, normally js. if not provided, output to stdout") do |o|
|
26
|
+
options[:output] = o
|
27
|
+
end
|
28
|
+
|
18
29
|
opts.on("-h", "--help", "Prints this help") do
|
19
30
|
puts opts
|
20
31
|
exit
|
@@ -22,6 +33,12 @@ OptionParser.new do |opts|
|
|
22
33
|
end.parse!
|
23
34
|
|
24
35
|
mod_file = options[:input]
|
25
|
-
raise "
|
36
|
+
raise "valid input module file is required" unless mod_file
|
37
|
+
|
38
|
+
result = Modulizer::Dummy.compile mod_file
|
26
39
|
|
27
|
-
|
40
|
+
if options[:output].nil?
|
41
|
+
puts result
|
42
|
+
else
|
43
|
+
File.write(options[:output], result)
|
44
|
+
end
|
data/lib/modulizer.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "modulizer/version"
|
2
|
+
require "modulizer/stylebuilder"
|
2
3
|
|
3
4
|
module Modulizer
|
4
5
|
class Dummy
|
@@ -15,25 +16,25 @@ module Modulizer
|
|
15
16
|
template_mode = read_attributes template[1]
|
16
17
|
|
17
18
|
script_content = escape_js_variable_string script[2]
|
18
|
-
style_content = escape_js_variable_string style[2]
|
19
|
+
style_content = escape_js_variable_string(StyleBuilder.build(mod_name, style[2], style_mode))
|
19
20
|
template_content = escape_js_variable_string template[2]
|
20
21
|
|
21
|
-
|
22
|
-
(function(window,$){
|
23
|
-
var script =
|
24
|
-
'<script>#{script_content}</script>';
|
22
|
+
"""/* generated js file for module:#{mod_name} */
|
23
|
+
(function(window,$){
|
24
|
+
var script =
|
25
|
+
'<script>#{script_content}</script>';
|
25
26
|
|
26
|
-
var template =
|
27
|
-
'#{template_content}';
|
27
|
+
var template =
|
28
|
+
'#{template_content}';
|
28
29
|
|
29
|
-
var style =
|
30
|
-
'<style>#{style_content}</style>';
|
30
|
+
var style =
|
31
|
+
'<style>#{style_content}</style>';
|
31
32
|
|
32
|
-
$(function(){
|
33
|
-
|
34
|
-
});
|
35
|
-
})(window, jQuery);
|
36
|
-
"""
|
33
|
+
$(function(){
|
34
|
+
$('div##{mod_name}').html(style + template + script);
|
35
|
+
});
|
36
|
+
})(window, jQuery);
|
37
|
+
"""
|
37
38
|
end
|
38
39
|
|
39
40
|
private
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Modulizer
|
2
|
+
class StyleBuilder
|
3
|
+
def self.build(mod_name, raw_content, mode = {})
|
4
|
+
result = "\n"
|
5
|
+
style_items = raw_content.scan /(.*?){(.*?)}/m
|
6
|
+
|
7
|
+
style_items.each do |s|
|
8
|
+
selectors = s[0].strip.delete("\n")
|
9
|
+
principles = s[1].strip.delete("\n")
|
10
|
+
|
11
|
+
if mode["scoped"] == true
|
12
|
+
new_selectors = ""
|
13
|
+
selectors.split(',').each do |s|
|
14
|
+
new_selectors += "div##{mod_name} #{s.strip}, "
|
15
|
+
end
|
16
|
+
new_selectors.strip!
|
17
|
+
new_selectors = new_selectors[0...-1] if new_selectors[-1] == ','
|
18
|
+
selectors = new_selectors
|
19
|
+
end
|
20
|
+
|
21
|
+
new_principles = ""
|
22
|
+
principles.split(";").each do |p|
|
23
|
+
new_principles += "#{p.strip}; "
|
24
|
+
end
|
25
|
+
|
26
|
+
result += "#{selectors} {#{new_principles.strip}}\n"
|
27
|
+
end
|
28
|
+
result
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/modulizer/version.rb
CHANGED
data/modulizer.gemspec
CHANGED
@@ -8,8 +8,9 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = Modulizer::VERSION
|
9
9
|
spec.authors = ["dave"]
|
10
10
|
spec.email = ["eyaswoo@163.com"]
|
11
|
-
spec.summary = "
|
12
|
-
spec.description = "
|
11
|
+
spec.summary = "a ruby gem that modulize the web pages"
|
12
|
+
spec.description = "One easy way to develop web applications with isolated and reusable web page modules." +
|
13
|
+
"For more detailed information, please refer to https://github.com/straightdave/modulizer"
|
13
14
|
spec.homepage = "https://github.com/straightdave/modulizer"
|
14
15
|
spec.license = "MIT"
|
15
16
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: modulizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dave
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,8 +52,8 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
|
-
description:
|
56
|
-
page modules
|
55
|
+
description: One easy way to develop web applications with isolated and reusable web
|
56
|
+
page modules.For more detailed information, please refer to https://github.com/straightdave/modulizer
|
57
57
|
email:
|
58
58
|
- eyaswoo@163.com
|
59
59
|
executables:
|
@@ -73,6 +73,7 @@ files:
|
|
73
73
|
- bin/setup
|
74
74
|
- exe/modulizer
|
75
75
|
- lib/modulizer.rb
|
76
|
+
- lib/modulizer/stylebuilder.rb
|
76
77
|
- lib/modulizer/version.rb
|
77
78
|
- modulizer.gemspec
|
78
79
|
homepage: https://github.com/straightdave/modulizer
|
@@ -98,5 +99,5 @@ rubyforge_project:
|
|
98
99
|
rubygems_version: 2.6.3
|
99
100
|
signing_key:
|
100
101
|
specification_version: 4
|
101
|
-
summary:
|
102
|
+
summary: a ruby gem that modulize the web pages
|
102
103
|
test_files: []
|