wordless 0.1.0 → 0.2.0
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.
- data/README.md +4 -0
- data/lib/wordless/cli.rb +13 -2
- data/lib/wordless/compile_assets.php +36 -0
- data/lib/wordless/theme_builder.php +16 -13
- data/lib/wordless/version.rb +1 -1
- data/lib/wordless/wordless_bridge.php +26 -0
- data/spec/cli_spec.rb +14 -0
- metadata +10 -8
data/README.md
CHANGED
@@ -21,6 +21,10 @@ Once Wordless is installed, you can create a new Wordless theme:
|
|
21
21
|
|
22
22
|
wordless theme mytheme
|
23
23
|
|
24
|
+
Compile your site's static assets:
|
25
|
+
|
26
|
+
wordless compile
|
27
|
+
|
24
28
|
You can also simply install the latest stable release of WordPress, with an optional locale:
|
25
29
|
|
26
30
|
wordless wp mysite
|
data/lib/wordless/cli.rb
CHANGED
@@ -10,6 +10,8 @@ module Wordless
|
|
10
10
|
include Thor::Actions
|
11
11
|
include Wordless::CLIHelper
|
12
12
|
|
13
|
+
@@lib_dir = File.expand_path(File.dirname(__FILE__))
|
14
|
+
|
13
15
|
no_tasks do
|
14
16
|
def wordless_repo
|
15
17
|
'git://github.com/welaika/wordless.git'
|
@@ -102,12 +104,21 @@ module Wordless
|
|
102
104
|
end
|
103
105
|
|
104
106
|
# Run PHP helper script
|
105
|
-
if system "php #{File.join(
|
106
|
-
success "Created a new Wordless theme in 'wp-content/themes/#{name}'"
|
107
|
+
if system "php #{File.join(@@lib_dir, 'theme_builder.php')} #{name}"
|
108
|
+
success "Created a new Wordless theme in 'wp-content/themes/#{name}'."
|
107
109
|
else
|
108
110
|
error "Couldn't create Wordless theme."
|
109
111
|
return
|
110
112
|
end
|
111
113
|
end
|
114
|
+
|
115
|
+
desc "compile", "compile static assets"
|
116
|
+
def compile
|
117
|
+
if system "php #{File.join(@@lib_dir, 'compile_assets.php')}"
|
118
|
+
success "Compiled static assets."
|
119
|
+
else
|
120
|
+
error "Couldn't compile static assets."
|
121
|
+
end
|
122
|
+
end
|
112
123
|
end
|
113
124
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
require 'wordless_bridge.php';
|
4
|
+
|
5
|
+
class CompileAssets extends WordlessBridge {
|
6
|
+
public static function start() {
|
7
|
+
parent::initialize();
|
8
|
+
|
9
|
+
// Determine theme name
|
10
|
+
foreach (scandir(self::$current_dir . '/wp-content/themes') as $theme_dir) {
|
11
|
+
if (in_array($theme_dir, array('.', '..')) && !is_dir($theme_dir)) {
|
12
|
+
continue;
|
13
|
+
}
|
14
|
+
|
15
|
+
$previous_theme_name = WordlessBridge::$theme_name;
|
16
|
+
WordlessBridge::$theme_name = $theme_dir;
|
17
|
+
if (Wordless::theme_is_wordless_compatible()) {
|
18
|
+
if (basename(self::$current_dir) == $theme_dir) {
|
19
|
+
// A theme with the same name as the site is Wordless-compatible, this is probably the one we want
|
20
|
+
break;
|
21
|
+
}
|
22
|
+
} else {
|
23
|
+
WordlessBridge::$theme_name = $previous_theme_name;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
require(get_template_directory() . '/config/initializers/wordless_preferences.php');
|
28
|
+
|
29
|
+
Wordless::register_preprocessors();
|
30
|
+
Wordless::compile_assets();
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
CompileAssets::start();
|
35
|
+
|
36
|
+
?>
|
@@ -1,20 +1,23 @@
|
|
1
1
|
<?php
|
2
2
|
|
3
|
-
|
4
|
-
$plugin_dir = "$current_dir/wp-content/plugins/wordless";
|
3
|
+
require 'wordless_bridge.php';
|
5
4
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
5
|
+
class ThemeBuilder extends WordlessBridge {
|
6
|
+
public static function start() {
|
7
|
+
global $argv, $theme_name;
|
8
|
+
|
9
|
+
parent::initialize();
|
10
|
+
|
11
|
+
require_once Wordless::join_paths(self::$plugin_dir, "wordless", "theme_builder.php");
|
12
|
+
|
13
|
+
$theme_name = $argv[1] ? $argv[1] : 'wordless';
|
14
|
+
$permissions = substr(sprintf('%o', fileperms(self::$plugin_dir)), -4);
|
15
|
+
|
16
|
+
$builder = new WordlessThemeBuilder($theme_name, $theme_name, intval($permissions, 8));
|
17
|
+
$builder->build();
|
18
|
+
}
|
15
19
|
}
|
16
20
|
|
17
|
-
|
18
|
-
$builder->build();
|
21
|
+
ThemeBuilder::start();
|
19
22
|
|
20
23
|
?>
|
data/lib/wordless/version.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
// WordPress function stubs
|
4
|
+
|
5
|
+
function get_template_directory() {
|
6
|
+
return Wordless::join_paths(getcwd(), "wp-content", "themes", WordlessBridge::$theme_name);
|
7
|
+
}
|
8
|
+
|
9
|
+
function __($string) {
|
10
|
+
return $string;
|
11
|
+
}
|
12
|
+
|
13
|
+
class WordlessBridge {
|
14
|
+
public static $current_dir;
|
15
|
+
public static $plugin_dir;
|
16
|
+
public static $theme_name = 'stub';
|
17
|
+
|
18
|
+
public static function initialize() {
|
19
|
+
self::$current_dir = getcwd();
|
20
|
+
self::$plugin_dir = self::$current_dir . '/wp-content/plugins/wordless';
|
21
|
+
|
22
|
+
require_once self::$plugin_dir . "/wordless/wordless.php";
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
?>
|
data/spec/cli_spec.rb
CHANGED
@@ -103,6 +103,20 @@ describe Wordless::CLI do
|
|
103
103
|
end
|
104
104
|
end
|
105
105
|
|
106
|
+
context "#compile", :now => true do
|
107
|
+
context "with a valid Wordless installation" do
|
108
|
+
before :each do
|
109
|
+
Wordless::CLI.start ['new', 'myapp']
|
110
|
+
end
|
111
|
+
|
112
|
+
it "compiles static assets" do
|
113
|
+
Wordless::CLI.start ['compile']
|
114
|
+
File.exists?('wp-content/themes/myapp/assets/stylesheets/screen.css').should eq true
|
115
|
+
File.exists?('wp-content/themes/myapp/assets/javascripts/application.js').should eq true
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
106
120
|
after :each do
|
107
121
|
Dir.chdir(@original_wd)
|
108
122
|
%w(tmp/wordpress tmp/myapp).each do |dir|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wordless
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-04-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
16
|
-
requirement: &
|
16
|
+
requirement: &70294941484300 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70294941484300
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &70294941483880 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70294941483880
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: fakeweb
|
38
|
-
requirement: &
|
38
|
+
requirement: &70294941483400 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70294941483400
|
47
47
|
description: Wordless
|
48
48
|
email:
|
49
49
|
- etienne@molotov.ca
|
@@ -63,8 +63,10 @@ files:
|
|
63
63
|
- lib/wordless.rb
|
64
64
|
- lib/wordless/cli.rb
|
65
65
|
- lib/wordless/cli_helper.rb
|
66
|
+
- lib/wordless/compile_assets.php
|
66
67
|
- lib/wordless/theme_builder.php
|
67
68
|
- lib/wordless/version.rb
|
69
|
+
- lib/wordless/wordless_bridge.php
|
68
70
|
- spec/cli_helper_spec.rb
|
69
71
|
- spec/cli_spec.rb
|
70
72
|
- spec/fixtures/wordpress_stub.zip
|