pave 0.13.0 → 0.14.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +17 -7
- data/bin/pave +9 -7
- data/lib/pave/concrete.rb +2 -2
- data/lib/pave/theme.rb +3 -2
- data/lib/pave/version.rb +1 -1
- data/lib/pave/virtual_host.rb +32 -46
- data/templates/themes/blank/default.php +3 -3
- data/templates/themes/blank/elements/footer.php +3 -3
- data/templates/themes/blank/elements/header.php +5 -5
- data/templates/themes/blank/includes/view_helpers.php +45 -3
- data/templates/themes/blank/view.php +5 -5
- 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: 6423c30e10bd3cce7b5c9553be520a618a3b1dbc
|
4
|
+
data.tar.gz: 4d8f1ceccab04847564725e83db66cff7b998904
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c6f5c361651019a1f86b4753e6359a5ba1c8d1840eccca9ab27139fd73272acf6564c9031471b4bc1a9292ff7492af6f46fb738cff19c89e279244c2762572a2
|
7
|
+
data.tar.gz: 51d878220d60ea3dab49d55a3ad4e719d99f56311f025dd9b1b1557dc79e2ad8aed398028ae11b913f2427a07e2161f687f0e3ffe82486fcaf4d7bd54237bbfd
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -24,7 +24,7 @@ This:
|
|
24
24
|
4. Adds a `.gitignore` and `.keep`s
|
25
25
|
5. Attempts to create a virtual host `mywebsite.site`
|
26
26
|
|
27
|
-
##
|
27
|
+
## Deployment
|
28
28
|
|
29
29
|
$ pave deploy:setup
|
30
30
|
|
@@ -40,9 +40,9 @@ Deploys feature-branch to staging remote.
|
|
40
40
|
|
41
41
|
## Database
|
42
42
|
|
43
|
-
$ pave db:create mydatabase
|
43
|
+
$ pave db:create [mydatabase]
|
44
44
|
|
45
|
-
Creates a local MySQL database called `mydatabase
|
45
|
+
Creates a local MySQL database called `mydatabase`. Omitting the database name will create a database with the same name as the current directory.
|
46
46
|
|
47
47
|
$ pave db:push
|
48
48
|
|
@@ -70,13 +70,13 @@ Pulls the remote `files/*` folder and replaces your local version.
|
|
70
70
|
|
71
71
|
*TODO:* Pulls newer remote files and pushes newer local files. Ignores cache and tmp files.
|
72
72
|
|
73
|
-
## Virtual
|
73
|
+
## Virtual Host
|
74
74
|
|
75
|
-
$ sudo pave vh:create myhost.site
|
75
|
+
$ sudo pave vh:create [myhost.site]
|
76
76
|
|
77
|
-
Sets up an Apache virtual host in the current directory on `myhost.site`.
|
77
|
+
Sets up an Apache virtual host in the current directory on `myhost.site`. Omitting the hostname argument will create a virtual host with the same name as the current directory (i.e. `myapp.site` if the current directory is `myapp`).
|
78
78
|
|
79
|
-
$ sudo pave vh:remove myhost.site
|
79
|
+
$ sudo pave vh:remove [myhost.site]
|
80
80
|
|
81
81
|
Removes myhost.site virtual host.
|
82
82
|
|
@@ -92,6 +92,16 @@ Restores your previously backed up virtual host file.
|
|
92
92
|
|
93
93
|
Restarts Apache.
|
94
94
|
|
95
|
+
## Themes
|
96
|
+
|
97
|
+
$ pave g:theme [mytheme]
|
98
|
+
|
99
|
+
Generates a theme in with the name `mytheme` in the `theme` directory. Omitting the theme name will create a theme with the same name as the current directory.
|
100
|
+
|
101
|
+
$ pave watch [browser] [mytheme]
|
102
|
+
|
103
|
+
Watches for changes in the `mytheme` directory. Compiles SASS and CoffeeScript files when they change and reloads the browser. The default the browser is Chrome but Safari and Firefox are also supported. A theme with the same name as the current directory is assumed unless a theme name is specified.
|
104
|
+
|
95
105
|
## Help
|
96
106
|
|
97
107
|
$ pave help
|
data/bin/pave
CHANGED
@@ -77,7 +77,8 @@ command :"virtualhost:create" do |c|
|
|
77
77
|
c.description = "Setup virtual host for Concrete5 project."
|
78
78
|
c.action do |args|
|
79
79
|
host = args.first || "#{File.basename(Dir.pwd)}.site"
|
80
|
-
|
80
|
+
dir = args[1] || Dir.pwd
|
81
|
+
Pave::VirtualHost.new(host, dir).create_vhost
|
81
82
|
end
|
82
83
|
end
|
83
84
|
alias_command :"vh:create", :"virtualhost:create"
|
@@ -87,7 +88,8 @@ command :"virtualhost:remove" do |c|
|
|
87
88
|
c.description = "Delete virtual host."
|
88
89
|
c.action do |args|
|
89
90
|
host = args.first || "#{File.basename(Dir.pwd)}.site"
|
90
|
-
|
91
|
+
dir = args[1] || Dir.pwd
|
92
|
+
Pave::VirtualHost.new(host, dir).remove_vhost
|
91
93
|
end
|
92
94
|
end
|
93
95
|
alias_command :"vh:remove", :"virtualhost:remove"
|
@@ -98,7 +100,7 @@ command :"virtualhost:backup" do |c|
|
|
98
100
|
c.syntax = "pave virtualhost:backup"
|
99
101
|
c.description = "Back up virtual hosts file. Restore with `pave virtualhost:restore`."
|
100
102
|
c.action do
|
101
|
-
Pave::VirtualHost.
|
103
|
+
Pave::VirtualHost.backup_vhost
|
102
104
|
end
|
103
105
|
end
|
104
106
|
alias_command :"vh:backup", :"virtualhost:backup"
|
@@ -107,7 +109,7 @@ command :"virtualhost:restore" do |c|
|
|
107
109
|
c.syntax = "pave virtualhost:restore"
|
108
110
|
c.description = "Restore previously backed up virtual hosts file."
|
109
111
|
c.action do
|
110
|
-
Pave::VirtualHost.
|
112
|
+
Pave::VirtualHost.restore_vhost
|
111
113
|
end
|
112
114
|
end
|
113
115
|
alias_command :"vh:restore", :"virtualhost:restore"
|
@@ -116,7 +118,7 @@ command :"virtualhost:restart" do |c|
|
|
116
118
|
c.syntax = "pave virtualhost:restart"
|
117
119
|
c.description = "Restarts apache."
|
118
120
|
c.action do
|
119
|
-
Pave::VirtualHost.
|
121
|
+
Pave::VirtualHost.restart_apache
|
120
122
|
end
|
121
123
|
end
|
122
124
|
alias_command :"vh:restart", :"virtualhost:restart"
|
@@ -242,7 +244,7 @@ end
|
|
242
244
|
|
243
245
|
command :"generate:theme" do |c|
|
244
246
|
c.syntax = "pave generate:theme THEME_NAME"
|
245
|
-
c.description = "Set up a blank theme with
|
247
|
+
c.description = "Set up a blank theme with Sass and CoffeeScript support."
|
246
248
|
c.action do |args|
|
247
249
|
name = args.first || "#{File.basename(Dir.pwd)}"
|
248
250
|
Pave::Theme.create(name)
|
@@ -252,7 +254,7 @@ alias_command :"g:theme", :"generate:theme"
|
|
252
254
|
|
253
255
|
command :watch do |c|
|
254
256
|
c.syntax = "pave watch BROWSER"
|
255
|
-
c.description = "Watch for
|
257
|
+
c.description = "Watch for Sass and CoffeeScript changes."
|
256
258
|
c.action do |args|
|
257
259
|
browser = args.first || "chrome"
|
258
260
|
name = args.last || "#{File.basename(Dir.pwd)}"
|
data/lib/pave/concrete.rb
CHANGED
@@ -86,10 +86,10 @@ HD
|
|
86
86
|
|
87
87
|
def create_virtual_host
|
88
88
|
say "* Setting up virtual host..."
|
89
|
-
if sh("sudo pave vh:create #{name}.site") == 0
|
89
|
+
if sh("sudo pave vh:create #{name}.site #{Dir.pwd}/#{name}") == 0
|
90
90
|
say "Successfully setup virtual host #{name}.site."
|
91
91
|
else
|
92
|
-
say "Virtual host not set up. Run `pave vh:create #{name}.site` to create it."
|
92
|
+
say "Virtual host not set up. Run `pave vh:create #{name}.site ./#{name}` to create it."
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
data/lib/pave/theme.rb
CHANGED
@@ -36,7 +36,7 @@ module Pave
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def install_bitters
|
39
|
-
say "Installing Bitters"
|
39
|
+
say "Installing Bitters..."
|
40
40
|
sh "gem install bitters"
|
41
41
|
sh "cd themes/#{self.name}/css/ && bitters install && cd -"
|
42
42
|
end
|
@@ -59,8 +59,9 @@ module Pave
|
|
59
59
|
install_neat
|
60
60
|
install_bitters
|
61
61
|
create_project_css_folders
|
62
|
+
say "Docs for Bourbon: http://bourbon.io/docs/"
|
62
63
|
say "Docs for Neat: http://neat.bourbon.io/"
|
63
|
-
say "Docs for Bitters:
|
64
|
+
say "Docs for Bitters: http://bitters.bourbon.io/"
|
64
65
|
say ""
|
65
66
|
say "Theme installed. Run `pave watch` to generate css from your sass files."
|
66
67
|
end
|
data/lib/pave/version.rb
CHANGED
data/lib/pave/virtual_host.rb
CHANGED
@@ -4,34 +4,40 @@ module Pave
|
|
4
4
|
class VirtualHost
|
5
5
|
include Pave::Shell
|
6
6
|
|
7
|
-
attr_accessor :hostname
|
7
|
+
attr_accessor :hostname, :directory
|
8
8
|
|
9
|
-
|
9
|
+
VHOST_CONF_FILE = "/etc/apache2/extra/httpd-vhosts.conf".freeze
|
10
|
+
VHOST_CONF_FILE_BACKUP = "#{VHOST_CONF_FILE}.backup".freeze
|
11
|
+
HOSTS_FILE = "/etc/hosts".freeze
|
12
|
+
HOSTS_FILE_BACKUP = "#{HOSTS_FILE}.backup".freeze
|
13
|
+
|
14
|
+
def initialize(host, dir)
|
10
15
|
@hostname = host
|
16
|
+
@directory = dir
|
11
17
|
end
|
12
18
|
|
13
|
-
def restart_apache
|
19
|
+
def self.restart_apache
|
14
20
|
`sudo apachectl restart`
|
15
21
|
say "Apache restarted."
|
16
22
|
true
|
17
23
|
end
|
18
24
|
|
19
|
-
def backup_vhost
|
20
|
-
File.delete(
|
21
|
-
FileUtils.cp
|
22
|
-
File.delete(
|
23
|
-
FileUtils.cp
|
25
|
+
def self.backup_vhost
|
26
|
+
File.delete(VHOST_CONF_FILE_BACKUP) if File.exist?(VHOST_CONF_FILE_BACKUP)
|
27
|
+
FileUtils.cp VHOST_CONF_FILE, VHOST_CONF_FILE_BACKUP
|
28
|
+
File.delete(HOSTS_FILE_BACKUP) if File.exist?(HOSTS_FILE_BACKUP)
|
29
|
+
FileUtils.cp HOSTS_FILE, HOSTS_FILE_BACKUP
|
24
30
|
say "Backed up vhosts conf and hosts file. Use `pave vh:restore` to restore them."
|
25
31
|
end
|
26
32
|
|
27
|
-
def restore_vhost
|
28
|
-
return say "Couldn't find vhosts backup." unless File.exist?(
|
29
|
-
File.delete(
|
30
|
-
FileUtils.cp
|
33
|
+
def self.restore_vhost
|
34
|
+
return say "Couldn't find vhosts backup." unless File.exist?(VHOST_CONF_FILE_BACKUP)
|
35
|
+
File.delete(VHOST_CONF_FILE)
|
36
|
+
FileUtils.cp VHOST_CONF_FILE_BACKUP, VHOST_CONF_FILE
|
31
37
|
|
32
|
-
return say "Couldn't find host file backup." unless File.exist?(
|
33
|
-
File.delete(
|
34
|
-
FileUtils.cp
|
38
|
+
return say "Couldn't find host file backup." unless File.exist?(HOSTS_FILE_BACKUP)
|
39
|
+
File.delete(HOSTS_FILE)
|
40
|
+
FileUtils.cp HOSTS_FILE_BACKUP, HOSTS_FILE
|
35
41
|
|
36
42
|
restart_apache
|
37
43
|
|
@@ -42,19 +48,19 @@ module Pave
|
|
42
48
|
return say "No virtual host backup found. Run `pave vh:backup` before adding a virtual host." unless check_backup
|
43
49
|
return say "No host name provided. Run `pave help` for more details." unless hostname.size > 0
|
44
50
|
|
45
|
-
add_vhost_to_conf && add_hosts_entry && restart_apache && say("Created virtual host for #{hostname}.")
|
51
|
+
add_vhost_to_conf && add_hosts_entry && self.class.restart_apache && say("Created virtual host for #{hostname}.")
|
46
52
|
end
|
47
53
|
|
48
54
|
def remove_vhost
|
49
55
|
return say "No virtual host backup found. Run `pave vh:backup` before adding a virtual host." unless check_backup
|
50
56
|
|
51
|
-
remove_vhost_from_conf && remove_hosts_entry && restart_apache && say("Removed virtual host for #{hostname}.")
|
57
|
+
remove_vhost_from_conf && remove_hosts_entry && self.class.restart_apache && say("Removed virtual host for #{hostname}.")
|
52
58
|
end
|
53
59
|
|
54
60
|
private
|
55
61
|
|
56
62
|
def add_hosts_entry
|
57
|
-
File.open(
|
63
|
+
File.open(HOSTS_FILE, "a") do |f|
|
58
64
|
f.puts "127.0.0.1 #{hostname}"
|
59
65
|
f.puts "fe80::1%lo0 #{hostname}"
|
60
66
|
end
|
@@ -70,14 +76,14 @@ module Pave
|
|
70
76
|
end
|
71
77
|
end
|
72
78
|
|
73
|
-
File.open(
|
79
|
+
File.open(HOSTS_FILE, "w") do |f|
|
74
80
|
f.puts host_array.compact.join("\n")
|
75
81
|
end
|
76
82
|
true
|
77
83
|
end
|
78
84
|
|
79
85
|
def add_vhost_to_conf
|
80
|
-
File.open(
|
86
|
+
File.open(VHOST_CONF_FILE, "a") do |f|
|
81
87
|
f.puts virtual_host_entry
|
82
88
|
end
|
83
89
|
true
|
@@ -93,7 +99,7 @@ module Pave
|
|
93
99
|
|
94
100
|
# Set all those lines to nil (so we can compact them later)
|
95
101
|
((vhost_line - 6)..(vhost_line + 3)).each {|i| vhost_array[i] = nil }
|
96
|
-
File.open(
|
102
|
+
File.open(VHOST_CONF_FILE, "w") do |f|
|
97
103
|
f.puts vhost_array.compact.join("\n")
|
98
104
|
end
|
99
105
|
true
|
@@ -104,47 +110,27 @@ module Pave
|
|
104
110
|
end
|
105
111
|
|
106
112
|
def check_backup
|
107
|
-
File.exist?(
|
113
|
+
File.exist?(VHOST_CONF_FILE_BACKUP)
|
108
114
|
end
|
109
115
|
|
110
116
|
def virtual_host_entry
|
111
|
-
"\n<Directory \"#{
|
117
|
+
"\n<Directory \"#{directory}\">\n" <<
|
112
118
|
" Allow From All\n" <<
|
113
119
|
" AllowOverride All\n" <<
|
114
120
|
" Options +Indexes\n" <<
|
115
121
|
"</Directory>\n" <<
|
116
122
|
"<VirtualHost *:80>\n" <<
|
117
123
|
" ServerName \"#{hostname}\"\n" <<
|
118
|
-
" DocumentRoot \"#{
|
124
|
+
" DocumentRoot \"#{directory}\"\n" <<
|
119
125
|
"</VirtualHost>\n"
|
120
126
|
end
|
121
127
|
|
122
|
-
def project_folder
|
123
|
-
Dir.pwd
|
124
|
-
end
|
125
|
-
|
126
128
|
def vhosts_file_array
|
127
|
-
File.open(
|
129
|
+
File.open(VHOST_CONF_FILE).map(&:rstrip)
|
128
130
|
end
|
129
131
|
|
130
132
|
def hosts_file_array
|
131
|
-
File.open(
|
132
|
-
end
|
133
|
-
|
134
|
-
def vhosts_conf_file
|
135
|
-
"/etc/apache2/extra/httpd-vhosts.conf"
|
136
|
-
end
|
137
|
-
|
138
|
-
def vhosts_conf_file_backup
|
139
|
-
vhosts_conf_file + ".backup"
|
140
|
-
end
|
141
|
-
|
142
|
-
def hosts_file
|
143
|
-
"/etc/hosts"
|
144
|
-
end
|
145
|
-
|
146
|
-
def hosts_file_backup
|
147
|
-
hosts_file + ".backup"
|
133
|
+
File.open(HOSTS_FILE).map(&:rstrip)
|
148
134
|
end
|
149
135
|
|
150
136
|
end
|
@@ -1,12 +1,12 @@
|
|
1
|
-
<?
|
1
|
+
<?
|
2
2
|
defined("C5_EXECUTE") or die("Access Denied.");
|
3
3
|
$this->inc("elements/header.php");
|
4
4
|
?>
|
5
5
|
|
6
6
|
<!-- block example -->
|
7
|
-
<?
|
7
|
+
<?
|
8
8
|
$a = new Area("Main");
|
9
9
|
$a->display($c);
|
10
10
|
?>
|
11
11
|
|
12
|
-
<?
|
12
|
+
<? $this->inc("elements/footer.php"); ?>
|
@@ -1,12 +1,12 @@
|
|
1
|
-
<?
|
1
|
+
<? defined("C5_EXECUTE") or die("Access Denied."); ?>
|
2
2
|
|
3
3
|
<!-- block example -->
|
4
|
-
<?
|
4
|
+
<?
|
5
5
|
$a = new GlobalArea("Footer - Meta");
|
6
6
|
$a->display($c);
|
7
7
|
?>
|
8
8
|
|
9
|
-
<?
|
9
|
+
<? Loader::element("footer_required"); ?>
|
10
10
|
<script src="<?= $this->getThemePath(); ?>/js/shared.js"></script>
|
11
11
|
<?= page_specific_scripts($c, $this) ?>
|
12
12
|
</body>
|
@@ -1,9 +1,9 @@
|
|
1
|
-
<?
|
1
|
+
<?
|
2
2
|
defined("C5_EXECUTE") or die("Access Denied.");
|
3
3
|
$this->inc("includes/view_helpers.php");
|
4
4
|
?>
|
5
5
|
<!DOCTYPE html>
|
6
|
-
<html lang="<?= LANGUAGE?>">
|
6
|
+
<html lang="<?= LANGUAGE ?>">
|
7
7
|
<head>
|
8
8
|
<?php Loader::element("header_required"); ?>
|
9
9
|
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
|
@@ -22,13 +22,13 @@
|
|
22
22
|
<?= image_tag($this, "logo.png", ["class" => "main-logo"]); ?>
|
23
23
|
|
24
24
|
<!-- block example -->
|
25
|
-
<?
|
25
|
+
<?
|
26
26
|
$a = new Area("Header");
|
27
27
|
$a->display($c);
|
28
28
|
?>
|
29
29
|
|
30
30
|
<!-- nav example -->
|
31
|
-
<?
|
31
|
+
<?
|
32
32
|
$nav = BlockType::getByHandle("autonav");
|
33
33
|
$nav->controller->orderBy = "display_asc";
|
34
34
|
$nav->controller->displayPages = "top";
|
@@ -36,4 +36,4 @@
|
|
36
36
|
$nav->controller->displaySubPageLevels = "custom";
|
37
37
|
$nav->controller->displaySubPageLevelsNum = 1;
|
38
38
|
$nav->render("templates/header_menu");
|
39
|
-
?>
|
39
|
+
?>
|
@@ -5,7 +5,7 @@
|
|
5
5
|
echo "<pre>";
|
6
6
|
if($die) {
|
7
7
|
die();
|
8
|
-
}
|
8
|
+
}
|
9
9
|
}
|
10
10
|
|
11
11
|
function is_edit_mode() {
|
@@ -40,6 +40,7 @@
|
|
40
40
|
|
41
41
|
function image_tag($t, $img, $html_options = false) {
|
42
42
|
$imgPath = ($t->getThemePath()) . "/images/";
|
43
|
+
|
43
44
|
if ($html_options) {
|
44
45
|
$options = " alt='" . explode(".", $img, 2)[0] . "'";
|
45
46
|
foreach ($html_options as $k => $v) {
|
@@ -47,8 +48,49 @@
|
|
47
48
|
}
|
48
49
|
} else {
|
49
50
|
$options = " alt='" . explode(".", $img, 2)[0] . "'";
|
50
|
-
}
|
51
|
-
|
51
|
+
}
|
52
|
+
|
53
|
+
return "<img src='" . $imgPath . $img . "'" . $options . " />";
|
54
|
+
}
|
55
|
+
|
56
|
+
function image_placeholder_tag($width, $height = false, $text = false, $html_options = false) {
|
57
|
+
$img = "http://placehold.it/" . $width . ($height ? "x" . $height : "") . ($text ? "&text=" . $text : "");
|
58
|
+
|
59
|
+
if ($html_options) {
|
60
|
+
foreach ($html_options as $k => $v) {
|
61
|
+
$options .= " " . $k . "='" . addslashes($v) . "'";
|
62
|
+
}
|
63
|
+
}
|
64
|
+
|
65
|
+
return "<img src='" . $img . "'" . $options . " />";
|
66
|
+
}
|
67
|
+
|
68
|
+
function lorem() {
|
69
|
+
// Possible arguments:
|
70
|
+
//
|
71
|
+
// (integer) - The number of paragraphs to generate.
|
72
|
+
// short, medium, long, verylong - The average length of a paragraph.
|
73
|
+
// decorate - Add bold, italic and marked text.
|
74
|
+
// link - Add links.
|
75
|
+
// ul - Add unordered lists.
|
76
|
+
// ol - Add numbered lists.
|
77
|
+
// dl - Add description lists.
|
78
|
+
// bq - Add blockquotes.
|
79
|
+
// code - Add code samples.
|
80
|
+
// headers - Add headers.
|
81
|
+
// allcaps - Use ALL CAPS.
|
82
|
+
// prude - Prude version.
|
83
|
+
// plaintext - Return plain text, no HTML.
|
84
|
+
//
|
85
|
+
// See http://loripsum.net/ for more details.
|
86
|
+
|
87
|
+
$url = "http://loripsum.net/api/";
|
88
|
+
if (func_num_args()) {
|
89
|
+
$url .= implode("/", func_get_args());
|
90
|
+
} else {
|
91
|
+
$url .= "1";
|
92
|
+
}
|
93
|
+
return file_get_contents($url);
|
52
94
|
}
|
53
95
|
|
54
96
|
function page_specific_scripts($page, $t) {
|
@@ -1,8 +1,8 @@
|
|
1
|
-
<?
|
2
|
-
|
3
|
-
|
1
|
+
<?
|
2
|
+
defined("C5_EXECUTE") or die("Access Denied.");
|
3
|
+
$this->inc("elements/header.php");
|
4
4
|
?>
|
5
5
|
|
6
|
-
|
6
|
+
<? print $innerContent; ?>
|
7
7
|
|
8
|
-
<?
|
8
|
+
<? $this->inc("elements/footer.php"); ?>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pave
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jamon Holmgren
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-05-
|
12
|
+
date: 2014-05-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|