html_mockup 0.6.3 → 0.6.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/CHANGELOG.md +28 -0
- data/MIT_LICENSE +20 -0
- data/Rakefile +4 -0
- data/html_mockup.gemspec +31 -0
- data/lib/html_mockup/release/finalizers/dir.rb +5 -4
- data/lib/html_mockup/release/finalizers/rsync.rb +70 -0
- data/test/Mockupfile-syntax.rb +85 -0
- data/test/generator-subcommand.rb +54 -0
- data/test/unit/release/cleaner_test.rb +42 -0
- data/test/unit/release/processors/require_js_test.rb +62 -0
- metadata +27 -11
data/.gitignore
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## Version 0.6.4
|
4
|
+
* Add RsyncFinalizer to automatically upload your mockup
|
5
|
+
|
6
|
+
## Version 0.6.3
|
7
|
+
* Add license to gemspec
|
8
|
+
* Fix default_template in gem
|
9
|
+
* Add option to allow for resolving urls in custom attributes in the extractor (via `release.extract(options_hash)`)
|
10
|
+
* Add more unified interface to finalizers and processors
|
11
|
+
* Fix error if node can't be found in Processors::Requirejs
|
12
|
+
|
13
|
+
## Version 0.6.2
|
14
|
+
* Improved cleaner with more robust tests
|
15
|
+
|
16
|
+
## Version 0.6.1
|
17
|
+
* Correctly pass file and linenumber to Mockupfile evaluation
|
18
|
+
* Add the tilt gem as a requirement (needed for injectors in release)
|
19
|
+
* Make the cleaner also remove directories, also make it more safe (it will never delete stuff above the build_path)
|
20
|
+
|
21
|
+
## Version 0.6.0
|
22
|
+
* Pass command line options to underlying objets
|
23
|
+
* Update docs
|
24
|
+
* The different Processors, injections and cleanups are run in order as specified. Finalizers will always be run last in their own order.
|
25
|
+
* Replace CLI "generate" command with "new" subcommand and add support for remote git skeletons based on Thor templating.
|
26
|
+
* Add most simple mockup directory as default_template
|
27
|
+
* Requirejs processor updated so it will search for a global r.js command, a local npm r.js command and a vendored r.js command
|
28
|
+
* Minor fixes and changes
|
data/MIT_LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2009 Flurin Egger, DigitPaint (http://www.digitpaint.nl)
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
ADDED
data/html_mockup.gemspec
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = "html_mockup"
|
5
|
+
s.version = "0.6.4"
|
6
|
+
|
7
|
+
s.authors = ["Flurin Egger", "Edwin van der Graaf"]
|
8
|
+
s.email = ["info@digitpaint.nl", "flurin@digitpaint.nl"]
|
9
|
+
s.homepage = "http://github.com/digitpaint/html_mockup"
|
10
|
+
s.summary = "HTML Mockup is a set of tools to create self-containing HTML mockups."
|
11
|
+
s.licenses = ["MIT"]
|
12
|
+
|
13
|
+
s.date = Time.now.strftime("%Y-%m-%d")
|
14
|
+
|
15
|
+
s.files = `git ls-files`.split("\n")
|
16
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
|
+
s.require_paths = ["lib"]
|
19
|
+
|
20
|
+
s.extra_rdoc_files = [
|
21
|
+
"README.rdoc"
|
22
|
+
]
|
23
|
+
|
24
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
25
|
+
|
26
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
27
|
+
|
28
|
+
s.add_dependency("thor", ["~> 0.16.0"])
|
29
|
+
s.add_dependency("rack", [">= 1.0.0"])
|
30
|
+
s.add_dependency("tilt", [">= 0"])
|
31
|
+
end
|
@@ -1,10 +1,11 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
|
3
|
-
# Finalizes the release into a directory in target_path
|
4
|
-
#
|
5
|
-
# The directory name will have the format PREFIX-VERSION
|
6
|
-
#
|
7
3
|
module HtmlMockup::Release::Finalizers
|
4
|
+
|
5
|
+
# Finalizes the release into a directory in target_path
|
6
|
+
#
|
7
|
+
# The directory name will have the format PREFIX-VERSION
|
8
|
+
#
|
8
9
|
class Dir < Base
|
9
10
|
# @option options :prefix Prefix to put before the version (default = "html")
|
10
11
|
def call(release, options = {})
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'shellwords'
|
2
|
+
|
3
|
+
module HtmlMockup::Release::Finalizers
|
4
|
+
|
5
|
+
# Finalizes the release by uploading your mockup with rsync to a remote server
|
6
|
+
#
|
7
|
+
# @see RsyncFinalizer#initialize for options
|
8
|
+
#
|
9
|
+
class Rsync < Base
|
10
|
+
|
11
|
+
# @param Hash options The options
|
12
|
+
#
|
13
|
+
# @option options String :rsync The Rsync command to run (default is "rsync")
|
14
|
+
# @option options String :remote_path The remote path to upload to
|
15
|
+
# @option options String :host The remote host to upload to
|
16
|
+
# @option options String :username The remote username to upload to
|
17
|
+
def initialize(options = {})
|
18
|
+
@options = {
|
19
|
+
:rsync => "rsync",
|
20
|
+
:remote_path => "",
|
21
|
+
:host => "",
|
22
|
+
:username => ""
|
23
|
+
}.update(options)
|
24
|
+
end
|
25
|
+
|
26
|
+
def call(release, options = {})
|
27
|
+
options = @options.dup.update(options)
|
28
|
+
|
29
|
+
# Validate options
|
30
|
+
validate_options!(release, options)
|
31
|
+
|
32
|
+
begin
|
33
|
+
`#{@options[:rsync]} --version`
|
34
|
+
rescue Errno::ENOENT
|
35
|
+
raise RuntimeError, "Could not find rsync in #{@options[:rsync].inspect}"
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
local_path = release.build_path.to_s
|
40
|
+
remote_path = options[:remote_path]
|
41
|
+
|
42
|
+
local_path += "/" unless local_path =~ /\/\Z/
|
43
|
+
remote_path += "/" unless remote_path =~ /\/\Z/
|
44
|
+
|
45
|
+
release.log(self, "Starting upload of #{(release.build_path + "*")} to #{options[:host]}")
|
46
|
+
|
47
|
+
command = "#{options[:rsync]} -az #{Shellwords.escape(local_path)} #{Shellwords.escape(options[:username])}@#{Shellwords.escape(options[:host])}:#{Shellwords.escape(remote_path)}"
|
48
|
+
|
49
|
+
# Run r.js optimizer
|
50
|
+
output = `#{command}`
|
51
|
+
|
52
|
+
# Check if r.js succeeded
|
53
|
+
unless $?.success?
|
54
|
+
raise RuntimeError, "Rsync failed.\noutput:\n #{output}"
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
protected
|
60
|
+
|
61
|
+
def validate_options!(release, options)
|
62
|
+
must_have_keys = [:remote_path, :host, :username]
|
63
|
+
if (options.keys & must_have_keys).size != must_have_keys.size
|
64
|
+
release.log(self, "You must specify these options: #{(must_have_keys - options.keys).inspect}")
|
65
|
+
raise "Missing keys: #{(must_have_keys - options.keys).inspect}"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
# Example idea for a Mockupfile, a lot of this has to have a sensible default.
|
2
|
+
|
3
|
+
Sass::Plugin.options[:style] = :expanded
|
4
|
+
Sass::Plugin.options[:template_location] = "./html/stylesheets"
|
5
|
+
Sass::Plugin.options[:css_location] = "./html/stylesheets"
|
6
|
+
|
7
|
+
# These are defaults, but can be set here
|
8
|
+
# mockup.project.html_path = mockup.project.path + "html"
|
9
|
+
# mockup.project.partial_path = mockup.project.path + "partials"
|
10
|
+
|
11
|
+
mockup.serve(config) do |server|
|
12
|
+
server.use :sass
|
13
|
+
end
|
14
|
+
|
15
|
+
mockup.release(config) do |release|
|
16
|
+
|
17
|
+
release.target_path # The target path where releases are put
|
18
|
+
release.build_path # The path where the release gets built
|
19
|
+
release.source_path # The source for this mockup
|
20
|
+
|
21
|
+
# Extract mockup
|
22
|
+
# Pass custom config to the extractor, this is optional
|
23
|
+
# release.extract :url_attributes => %w{src href action data-main}
|
24
|
+
|
25
|
+
# Get git version
|
26
|
+
release.scm.previous # Get the previous version SCM op (looks for tags)
|
27
|
+
release.scm.version # Get the git version
|
28
|
+
release.scm.date # Get the git date
|
29
|
+
|
30
|
+
# Create custom banner
|
31
|
+
release.banner do
|
32
|
+
"bla bla bla"
|
33
|
+
end
|
34
|
+
|
35
|
+
# The default banner looks like this:
|
36
|
+
#
|
37
|
+
# =======================
|
38
|
+
# = Version : v1.0.0 =
|
39
|
+
# = Date : 2012-06-20 =
|
40
|
+
# =======================
|
41
|
+
|
42
|
+
# Sassify CSS (this are the defaults too), all options except form :match and :skip are passed to Sass.compile_file
|
43
|
+
# release.use :sass, :match => ["stylesheets/**/*.scss"], :skip => [/_.*\.scss\Z/], :style => :expanded
|
44
|
+
# The previous statement is the same as:
|
45
|
+
release.use :sass
|
46
|
+
|
47
|
+
# Run requirejs optimizer
|
48
|
+
# release.use :requirejs, {
|
49
|
+
# :build_files => {"javascripts/site.build.js" => "javascripts"},
|
50
|
+
# :rjs => release.source_path + "../vendor/requirejs/r.js",
|
51
|
+
# :node => "node"
|
52
|
+
# }
|
53
|
+
release.use :requirejs
|
54
|
+
|
55
|
+
# Minify, will not minify anything above the :delimiter
|
56
|
+
# release.use :yuicompressor, {
|
57
|
+
# :match => ["**/*.{css,js}"],
|
58
|
+
# :skip => [/javascripts\/vendor\/.*\.js\Z/, /_doc\/.*/],
|
59
|
+
# :delimiter => Regexp.escape("/* -------------------------------------------------------------------------------- */")
|
60
|
+
# }
|
61
|
+
# The previous statement is the same as:
|
62
|
+
release.use :yuicompressor
|
63
|
+
|
64
|
+
|
65
|
+
# Inject VERSION / DATE (i.e. in TOC)
|
66
|
+
r.inject({"[VERSION]" => release.scm.version, "[DATE]" => release.scm.date.strftime("%Y-%m-%d")}, :into => %w{_doc/toc.html})
|
67
|
+
|
68
|
+
# Inject Banners on everything matching the regexp in all .css files
|
69
|
+
# The banner will be commented as CSS.
|
70
|
+
release.inject({ /\/\*\s*\[BANNER\]\s*\*\// => r.banner(:comment => :css)}, :into => %w{**/*.css})
|
71
|
+
|
72
|
+
# Inject CHANGELOG
|
73
|
+
release.inject({"[CHANGELOG]" => {:file => "../CHANGELOG", :processor => 'md'}}, :into => %w{_doc/changelog.html})
|
74
|
+
|
75
|
+
# Inject NOTES
|
76
|
+
release.inject({"[NOTES]" => {:file => "../NOTES.md", :processor => 'md'}}, :into => %w{_doc/notes.html})
|
77
|
+
|
78
|
+
# Cleanup on the build
|
79
|
+
release.cleanup "**/.DS_Store"
|
80
|
+
|
81
|
+
# Finalize the release
|
82
|
+
# This is the default finalizer so not required
|
83
|
+
# release.finalize :dir
|
84
|
+
|
85
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# This testfile is just a small testcase on how
|
4
|
+
# to do something with nested generators. It's
|
5
|
+
# just some basics and needs to be explored further.
|
6
|
+
|
7
|
+
# What we need for/from a generator:
|
8
|
+
# - It needs to be registered in our Generators::Generate class
|
9
|
+
# - It needs to be automatically loaded from:
|
10
|
+
# - The mockup: <root>/generators/<name>/<name>_generator.rb
|
11
|
+
# - The gem
|
12
|
+
# - Other gems which have been manually required (?)
|
13
|
+
# - It needs to have access to the current Mockup::Project instance
|
14
|
+
# - It needs to have the following file structure:
|
15
|
+
# - <name>
|
16
|
+
# - <name>_generator.rb
|
17
|
+
# - ...support files...
|
18
|
+
|
19
|
+
require 'rubygems'
|
20
|
+
require 'thor'
|
21
|
+
require 'thor/group'
|
22
|
+
|
23
|
+
|
24
|
+
module Generators
|
25
|
+
class Generate < Thor
|
26
|
+
end
|
27
|
+
|
28
|
+
class GeneratorBase < Thor::Group
|
29
|
+
def self.inherited(sub)
|
30
|
+
name = sub.to_s.sub(/Generator$/, "").sub(/^Generators::/,"").downcase
|
31
|
+
Generate.register sub, name, name, "Run #{name}"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
class ThingGenerator < GeneratorBase
|
36
|
+
def done
|
37
|
+
puts "Yep, done the thing"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
class BlingGenerator < GeneratorBase
|
42
|
+
def done
|
43
|
+
puts "Here is some bling!"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
module CLI
|
49
|
+
class Base < Thor
|
50
|
+
register Generators::Generate, "generate", "generate [COMMAND]", "Run a generator"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
CLI::Base.start
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require "./lib/html_mockup/release.rb"
|
2
|
+
require "./lib/html_mockup/release/cleaner.rb"
|
3
|
+
require "test/unit"
|
4
|
+
|
5
|
+
class CleanerTest < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def test_only_clean_inside_build_path_relative
|
8
|
+
path = "processors"
|
9
|
+
cleaner = HtmlMockup::Release::Cleaner.new(path)
|
10
|
+
inside_build_path = cleaner.send :is_inside_build_path, File.dirname(__FILE__), path
|
11
|
+
|
12
|
+
assert(inside_build_path, "Only delete content inside build_path")
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_only_clean_inside_build_path_absolute
|
16
|
+
path = Pathname.new(File.dirname(__FILE__) + "/processors").realpath.to_s
|
17
|
+
cleaner = HtmlMockup::Release::Cleaner.new(path)
|
18
|
+
inside_build_path = cleaner.send :is_inside_build_path, File.dirname(__FILE__), path
|
19
|
+
|
20
|
+
assert(inside_build_path, "Only delete content inside build_path")
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
def test_dont_clean_outside_build_path
|
25
|
+
path = "../../../lib"
|
26
|
+
cleaner = HtmlMockup::Release::Cleaner.new(path)
|
27
|
+
|
28
|
+
assert_raise RuntimeError do
|
29
|
+
inside_build_path = cleaner.send :is_inside_build_path, File.dirname(__FILE__), path
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_dont_fail_on_nonexistent_files
|
35
|
+
path = "bla"
|
36
|
+
cleaner = HtmlMockup::Release::Cleaner.new(path)
|
37
|
+
|
38
|
+
assert !cleaner.send(:is_inside_build_path, File.dirname(__FILE__), path), "Failed on nonexistent directories/files"
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require "./lib/html_mockup/release.rb"
|
2
|
+
require "./lib/html_mockup/release/processors/requirejs"
|
3
|
+
require "test/unit"
|
4
|
+
|
5
|
+
class RequireJsTest < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def test_require_js_default_fallback
|
8
|
+
# When the user points the requirejs processer to a wrong file
|
9
|
+
# it should throw an RunTimeError
|
10
|
+
options = {:rjs => "s.js"}
|
11
|
+
requirejs_processor = HtmlMockup::Release::Processors::Requirejs.new(options)
|
12
|
+
rjs = options[:rjs]
|
13
|
+
|
14
|
+
rjs_command = ''
|
15
|
+
|
16
|
+
assert_raise RuntimeError do
|
17
|
+
# The file does is there - it's this one, so it should raise
|
18
|
+
rjs_command = requirejs_processor.rjs_check
|
19
|
+
end
|
20
|
+
|
21
|
+
# No command string is returned
|
22
|
+
assert_equal rjs_command, ""
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_require_js_bin
|
27
|
+
# When no default require.js path is given we expect it to be r.js availble in $PATH
|
28
|
+
requirejs_processor = HtmlMockup::Release::Processors::Requirejs.new
|
29
|
+
rjs = "r.js" # Default r.js by npm
|
30
|
+
|
31
|
+
begin
|
32
|
+
`#{rjs} -v`
|
33
|
+
rescue Errno::ENOENT
|
34
|
+
assert_raise RuntimeError do
|
35
|
+
requirejs_processor.rjs_check
|
36
|
+
end
|
37
|
+
else
|
38
|
+
assert_equal requirejs_processor.rjs_check, rjs
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_require_js_lib
|
44
|
+
# Just point options[:rjs] to a file to look if its there,
|
45
|
+
# the user is expected to point to a correct r.js file if he
|
46
|
+
# doesn't want to use the r.js shipped with npm
|
47
|
+
options = {:rjs => __FILE__}
|
48
|
+
requirejs_processor = HtmlMockup::Release::Processors::Requirejs.new(options)
|
49
|
+
rjs = options[:rjs]
|
50
|
+
|
51
|
+
rjs_command = ''
|
52
|
+
|
53
|
+
assert_nothing_raised RuntimeError do
|
54
|
+
# The file is there - it's this one in fact, so it shouldn't raise
|
55
|
+
rjs_command = requirejs_processor.rjs_check
|
56
|
+
end
|
57
|
+
|
58
|
+
assert_equal rjs_command, "node #{rjs}"
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: html_mockup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-11-
|
13
|
+
date: 2012-11-28 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: thor
|
17
|
-
requirement: &
|
17
|
+
requirement: &70163962703500 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 0.16.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70163962703500
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: rack
|
28
|
-
requirement: &
|
28
|
+
requirement: &70163962703020 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 1.0.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70163962703020
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: tilt
|
39
|
-
requirement: &
|
39
|
+
requirement: &70163962702540 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,15 +44,22 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70163962702540
|
48
48
|
description:
|
49
|
-
email:
|
49
|
+
email:
|
50
|
+
- info@digitpaint.nl
|
51
|
+
- flurin@digitpaint.nl
|
50
52
|
executables:
|
51
53
|
- mockup
|
52
54
|
extensions: []
|
53
55
|
extra_rdoc_files:
|
54
56
|
- README.rdoc
|
55
57
|
files:
|
58
|
+
- .gitignore
|
59
|
+
- CHANGELOG.md
|
60
|
+
- MIT_LICENSE
|
61
|
+
- README.rdoc
|
62
|
+
- Rakefile
|
56
63
|
- bin/mockup
|
57
64
|
- examples/default_template/.gitignore
|
58
65
|
- examples/default_template/CHANGELOG
|
@@ -60,6 +67,7 @@ files:
|
|
60
67
|
- examples/default_template/Mockupfile
|
61
68
|
- examples/default_template/html/.empty_directory
|
62
69
|
- examples/default_template/partials/.empty_directory
|
70
|
+
- html_mockup.gemspec
|
63
71
|
- lib/html_mockup/cli.rb
|
64
72
|
- lib/html_mockup/extractor.rb
|
65
73
|
- lib/html_mockup/generators.rb
|
@@ -73,6 +81,7 @@ files:
|
|
73
81
|
- lib/html_mockup/release/cleaner.rb
|
74
82
|
- lib/html_mockup/release/finalizers.rb
|
75
83
|
- lib/html_mockup/release/finalizers/dir.rb
|
84
|
+
- lib/html_mockup/release/finalizers/rsync.rb
|
76
85
|
- lib/html_mockup/release/finalizers/zip.rb
|
77
86
|
- lib/html_mockup/release/injector.rb
|
78
87
|
- lib/html_mockup/release/processors.rb
|
@@ -84,7 +93,10 @@ files:
|
|
84
93
|
- lib/html_mockup/server.rb
|
85
94
|
- lib/html_mockup/template.rb
|
86
95
|
- lib/html_mockup/w3c_validator.rb
|
87
|
-
-
|
96
|
+
- test/Mockupfile-syntax.rb
|
97
|
+
- test/generator-subcommand.rb
|
98
|
+
- test/unit/release/cleaner_test.rb
|
99
|
+
- test/unit/release/processors/require_js_test.rb
|
88
100
|
homepage: http://github.com/digitpaint/html_mockup
|
89
101
|
licenses:
|
90
102
|
- MIT
|
@@ -111,4 +123,8 @@ rubygems_version: 1.8.15
|
|
111
123
|
signing_key:
|
112
124
|
specification_version: 3
|
113
125
|
summary: HTML Mockup is a set of tools to create self-containing HTML mockups.
|
114
|
-
test_files:
|
126
|
+
test_files:
|
127
|
+
- test/Mockupfile-syntax.rb
|
128
|
+
- test/generator-subcommand.rb
|
129
|
+
- test/unit/release/cleaner_test.rb
|
130
|
+
- test/unit/release/processors/require_js_test.rb
|