wordless 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ -c
data/Gemfile.lock CHANGED
@@ -1,33 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- wordless (0.0.1)
5
- colored
4
+ wordless (0.0.2)
6
5
  thor
7
6
 
8
7
  GEM
9
8
  remote: https://rubygems.org/
10
9
  specs:
11
- aruba (0.4.11)
12
- childprocess (>= 0.2.3)
13
- cucumber (>= 1.1.1)
14
- ffi (>= 1.0.11)
15
- rspec (>= 2.7.0)
16
- builder (3.0.0)
17
- childprocess (0.3.1)
18
- ffi (~> 1.0.6)
19
- colored (1.2)
20
- cucumber (1.1.9)
21
- builder (>= 2.1.2)
22
- diff-lcs (>= 1.1.2)
23
- gherkin (~> 2.9.0)
24
- json (>= 1.4.6)
25
- term-ansicolor (>= 1.0.6)
26
10
  diff-lcs (1.1.3)
27
- ffi (1.0.11)
28
- gherkin (2.9.0)
29
- json (>= 1.4.6)
30
- json (1.6.5)
11
+ fakeweb (1.3.0)
31
12
  rspec (2.8.0)
32
13
  rspec-core (~> 2.8.0)
33
14
  rspec-expectations (~> 2.8.0)
@@ -36,14 +17,12 @@ GEM
36
17
  rspec-expectations (2.8.0)
37
18
  diff-lcs (~> 1.1.2)
38
19
  rspec-mocks (2.8.0)
39
- term-ansicolor (1.0.7)
40
20
  thor (0.14.6)
41
21
 
42
22
  PLATFORMS
43
23
  ruby
44
24
 
45
25
  DEPENDENCIES
46
- aruba
47
- cucumber
26
+ fakeweb
48
27
  rspec
49
28
  wordless!
data/README.md CHANGED
@@ -2,29 +2,45 @@
2
2
 
3
3
  A command line tool to help manage your [Wordless](http://welaika.github.com/wordless/)-based WordPress sites.
4
4
 
5
- WARNING: This gem is in early development and barely does anything useful yet.
6
-
7
5
  ## Installation
8
6
 
9
- $ gem install wordless
7
+ gem install wordless
10
8
 
11
9
  ## Usage
12
10
 
13
- `wordless help` shows some help.
14
- `wordless wp mysite` creates a `mysite` directory and installs the latest stable release of WordPress.
15
- `wordless wp --locale=fr_FR --bare` installs the French version of WordPress, and removes default plugins and themes.
16
- `wordless install` installs the Wordless plugin in the current WordPress installation as a git submodule.
11
+ Create a new Wordless-enabled WordPress site in directory `mysite`. This downloads the latest stable release of WordPress (you can also specify a locale):
12
+
13
+ wordless new mysite
14
+ wordless new mysite --locale=fr_FR
15
+
16
+ If you already have WordPress installed, you can install the Wordless plugin (this currently installs from the master branch on GitHub):
17
+
18
+ wordless install
19
+
20
+ Once Wordless is installed, you can create a new Wordless theme:
21
+
22
+ wordless theme mytheme
23
+
24
+ You can also simply install the latest stable release of WordPress, with an optional locale:
25
+
26
+ wordless wp mysite
27
+ wordless wp mysite --locale=fr_FR
28
+
29
+ Get some help:
30
+
31
+ wordless help
17
32
 
18
33
  ## Caveats
19
34
 
20
35
  - If you attempt to download a WordPress localization that's outdated, the latest English version will be downloaded instead.
21
- - Currently, the Wordless plugin is installed as a git submodule, so your WordPress directory must be a git repo.
22
- - The Cucumber features run very slowly because they actually download WordPress and the Wordless plugin. I haven’t figured out how to properly stub the downloads.
36
+ - Only tested on Mac OS X
37
+ - Specs that test installation of the plugin actually download the plugin from GitHub. This makes the specs a bit slow to run.
23
38
 
24
39
  ## Contributing
25
40
 
26
41
  1. Fork it
27
42
  2. Create your feature branch (`git checkout -b my-new-feature`)
28
- 3. Commit your changes (`git commit -am 'Added some feature'`)
29
- 4. Push to the branch (`git push origin my-new-feature`)
30
- 5. Create new Pull Request
43
+ 3. Add some specs
44
+ 4. Commit your changes (`git commit -am 'Added some feature'`)
45
+ 5. Push to the branch (`git push origin my-new-feature`)
46
+ 6. Create new Pull Request
data/lib/wordless/cli.rb CHANGED
@@ -1,10 +1,29 @@
1
1
  require 'thor'
2
+ # require 'thor/shell/basic'
2
3
  require 'net/http'
3
- require 'colored'
4
4
  require 'rbconfig'
5
+ require 'tempfile'
6
+ require 'wordless/cli_helper'
5
7
 
6
8
  module Wordless
7
9
  class CLI < Thor
10
+ include Thor::Actions
11
+ include Wordless::CLIHelper
12
+
13
+ no_tasks do
14
+ def wordless_repo
15
+ 'git://github.com/welaika/wordless.git'
16
+ end
17
+ end
18
+
19
+ desc "new NAME", "download WordPress in directory NAME, install the Wordless plugin and create a Wordless theme"
20
+ method_option :locale, :aliases => "-l", :desc => "WordPress locale (default is en_US)"
21
+ def new(name)
22
+ invoke('wp', [name], :bare => true, :locale => options['locale'])
23
+ Dir.chdir(name)
24
+ Wordless::CLI.new.invoke(:install)
25
+ invoke('theme', [name])
26
+ end
8
27
 
9
28
  desc "wp DIR_NAME", "download the latest stable version of WordPress in a new directory DIR_NAME (default is wordpress)"
10
29
  method_option :locale, :aliases => "-l", :desc => "WordPress locale (default is en_US)"
@@ -14,16 +33,26 @@ module Wordless
14
33
  downloaded_file = Tempfile.new('wordpress')
15
34
  begin
16
35
  puts "Downloading WordPress #{version} (#{locale})..."
17
- `curl #{download_url} > #{downloaded_file.path} && unzip #{downloaded_file.path} -d #{dir_name}`
36
+
37
+ unless download(download_url, downloaded_file.path)
38
+ error "Couldn't download WordPress."
39
+ return
40
+ end
41
+
42
+ unless unzip(downloaded_file.path, dir_name)
43
+ error "Couldn't unzip WordPress."
44
+ return
45
+ end
46
+
18
47
  subdirectory = Dir["#{dir_name}/*/"].first # This is probably 'wordpress', but don't assume
19
48
  FileUtils.mv Dir["#{subdirectory}*"], dir_name # Remove unnecessary directory level
20
- FileUtils.rmdir subdirectory
49
+ Dir.delete subdirectory
21
50
  ensure
22
51
  downloaded_file.close
23
52
  downloaded_file.unlink
24
53
  end
25
54
 
26
- puts %Q{Installed WordPress in directory "#{dir_name}".}.green
55
+ success %Q{Installed WordPress in directory "#{dir_name}".}
27
56
 
28
57
  if options[:bare]
29
58
  dirs = %w(themes plugins).map {|d| "#{dir_name}/wp-content/#{d}"}
@@ -32,50 +61,53 @@ module Wordless
32
61
  dirs.each do |dir|
33
62
  FileUtils.cp "#{dir_name}/wp-content/index.php", dir
34
63
  end
35
- puts "Removed default themes and plugins.".green
64
+ success "Removed default themes and plugins."
36
65
  end
37
66
 
38
- # http://stackoverflow.com/questions/4597490/platform-independent-way-of-detecting-if-git-is-installed
39
- void = RbConfig::CONFIG['host_os'] =~ /msdos|mswin|djgpp|mingw/ ? 'NUL' : '/dev/null'
40
67
  if git_installed?
41
- if system 'git init'
42
- puts "Initialized git repository.".green
68
+ if run "cd #{dir_name} && git init", :verbose => false, :capture => true
69
+ success "Initialized git repository."
43
70
  else
44
- puts "Couldn't initialize git repository.".red
71
+ error "Couldn't initialize git repository."
45
72
  end
46
73
  else
47
- puts "Didn't initialize git repository because git isn't installed.".yellow
74
+ warning "Didn't initialize git repository because git isn't installed."
48
75
  end
49
76
  end
50
77
 
51
- desc "new [NAME]", "download WordPress in directory [NAME], install the Wordless plugin and create a Wordless theme"
52
- method_option :locale, :aliases => "-l", :desc => "WordPress locale (default is en_US)"
53
- def new(name)
54
- # upcoming
55
- end
56
-
57
- desc "install", "install the Wordless plugin into an existing WordPress installation as a git submodule"
78
+ desc "install", "install the Wordless plugin into an existing WordPress installation"
58
79
  def install
59
80
  unless git_installed?
60
- puts "Git is not available. Please install git.".red
81
+ error "Git is not available. Please install git."
61
82
  return
62
83
  end
63
84
 
64
85
  unless File.directory? 'wp-content/plugins'
65
- puts "Directory 'wp-content/plugins' not found. Make sure you're at the root level of a WordPress installation.".red
86
+ error "Directory 'wp-content/plugins' not found. Make sure you're at the root level of a WordPress installation."
66
87
  return
67
88
  end
68
89
 
69
- if system "git submodule add git://github.com/welaika/wordless.git wp-content/plugins/wordless && git submodule init && git submodule update"
70
- puts "Installed Wordless plugin.".green
90
+ if add_git_repo wordless_repo, 'wp-content/plugins/wordless'
91
+ success "Installed Wordless plugin."
92
+ else
93
+ error "There was an error installing the Wordless plugin."
71
94
  end
72
95
  end
73
96
 
74
- private
75
-
76
- def git_installed?
77
- void = RbConfig::CONFIG['host_os'] =~ /msdos|mswin|djgpp|mingw/ ? 'NUL' : '/dev/null'
78
- system "git --version >>#{void} 2>&1"
97
+ desc "theme NAME", "create a new Wordless theme NAME"
98
+ def theme(name)
99
+ unless File.directory? 'wp-content/themes'
100
+ error "Directory 'wp-content/themes' not found. Make sure you're at the root level of a WordPress installation."
101
+ return
102
+ end
103
+
104
+ # Run PHP helper script
105
+ if system "php #{File.join(File.expand_path(File.dirname(__FILE__)), 'theme_builder.php')} #{name}"
106
+ success "Created a new Wordless theme in 'wp-content/themes/#{name}'"
107
+ else
108
+ error "Couldn't create Wordless theme."
109
+ return
110
+ end
79
111
  end
80
112
  end
81
113
  end
@@ -0,0 +1,42 @@
1
+ require 'open-uri'
2
+
3
+ module Wordless
4
+ module CLIHelper
5
+ def error(message)
6
+ say message, :red
7
+ end
8
+
9
+ def success(message)
10
+ say message, :green
11
+ end
12
+
13
+ def warning(message)
14
+ say message, :yellow
15
+ end
16
+
17
+ def download(url, destination)
18
+ begin
19
+ f = open(destination, "wb")
20
+ f.write(open(url).read) ? true : false
21
+ rescue
22
+ false
23
+ ensure
24
+ f.close
25
+ end
26
+ end
27
+
28
+ def unzip(file, destination)
29
+ run "unzip #{file} -d #{destination}", :verbose => false, :capture => true
30
+ end
31
+
32
+ def git_installed?
33
+ # http://stackoverflow.com/questions/4597490/platform-independent-way-of-detecting-if-git-is-installed
34
+ void = RbConfig::CONFIG['host_os'] =~ /msdos|mswin|djgpp|mingw/ ? 'NUL' : '/dev/null'
35
+ system "git --version >>#{void} 2>&1"
36
+ end
37
+
38
+ def add_git_repo(repo, destination)
39
+ run "git clone #{repo} #{destination}", :verbose => false, :capture => true
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,20 @@
1
+ <?php
2
+
3
+ $current_dir = getcwd();
4
+ $plugin_dir = "$current_dir/wp-content/plugins/wordless";
5
+
6
+ require_once "$plugin_dir/wordless/wordless.php";
7
+ require_once Wordless::join_paths($plugin_dir, "wordless", "theme_builder.php");
8
+
9
+ $theme_name = $argv[1] ? $argv[1] : 'wordless';
10
+ $permissions = substr(sprintf('%o', fileperms($plugin_dir)), -4);
11
+
12
+ # Required WordPress function
13
+ function get_template_directory() {
14
+ return Wordless::join_paths($current_dir, "wp-content", "themes", "whatever");
15
+ }
16
+
17
+ $builder = new WordlessThemeBuilder($theme_name, $theme_name, intval($permissions, 8));
18
+ $builder->build();
19
+
20
+ ?>
@@ -1,3 +1,3 @@
1
1
  module Wordless
2
- VERSION = "0.0.2"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -0,0 +1,68 @@
1
+ require 'spec_helper'
2
+
3
+ describe Wordless::CLIHelper do
4
+ # def shell
5
+ # @shell ||= Thor::Shell::Basic.new
6
+ # end
7
+
8
+ before :each do
9
+ @cli = Wordless::CLI.new
10
+ end
11
+
12
+ context "::download" do
13
+ before(:each) do
14
+ @tempfile = Tempfile.new("download_test")
15
+ @valid_url = "http://www.example.com/test"
16
+ FakeWeb.register_uri(:get, @valid_url, :body => "Download test")
17
+ end
18
+
19
+ it "downloads a file to the specified location" do
20
+ @cli.download(@valid_url, @tempfile.path)
21
+ open(@tempfile.path).read.should eq("Download test")
22
+ end
23
+
24
+ it "returns true on success" do
25
+ @cli.download(@valid_url, @tempfile.path).should eq true
26
+ end
27
+
28
+ it "returns false on failure" do
29
+ @cli.download("http://an.invalid.url", @tempfile.path).should eq false
30
+ end
31
+
32
+ after(:each) do
33
+ @tempfile.close!
34
+ end
35
+ end
36
+
37
+ context "::unzip" do
38
+ it "unzips a file" do
39
+ @cli.unzip(File.expand_path('spec/fixtures/zipped_file.zip'), 'tmp/unzip')
40
+ File.exists?('tmp/unzip/zipped_file').should be true
41
+ end
42
+
43
+ after(:each) do
44
+ FileUtils.rm_rf('tmp/unzip') if File.directory? 'tmp/unzip'
45
+ end
46
+ end
47
+
48
+ context "::error" do
49
+ it "displays an error" do
50
+ $stdout.should_receive(:puts).with("\e[31mI am an error\e[0m")
51
+ @cli.error("I am an error")
52
+ end
53
+ end
54
+
55
+ context "::success" do
56
+ it "displays a success message" do
57
+ $stdout.should_receive(:puts).with("\e[32mI am a success message\e[0m")
58
+ @cli.success("I am a success message")
59
+ end
60
+ end
61
+
62
+ context "::warning" do
63
+ it "displays a warning" do
64
+ $stdout.should_receive(:puts).with("\e[33mI am a warning\e[0m")
65
+ @cli.warning("I am a warning")
66
+ end
67
+ end
68
+ end
data/spec/cli_spec.rb ADDED
@@ -0,0 +1,112 @@
1
+ require 'spec_helper'
2
+
3
+ describe Wordless::CLI do
4
+ before :each do
5
+ # $stdout = StringIO.new
6
+ @original_wd = Dir.pwd
7
+ wp_api_response = <<-eof
8
+ upgrade
9
+ http://wordpress.org/download/
10
+ http://wordpress.org/wordpress-3.3.1.zip
11
+ 3.3.1
12
+ en_US
13
+ 5.2.4
14
+ 5.0
15
+ eof
16
+ FakeWeb.register_uri(:get, %r|http://api.wordpress.org/core/version-check/1.5/.*|, :body => wp_api_response)
17
+ FakeWeb.register_uri(:get, "http://wordpress.org/wordpress-3.3.1.zip", :body => File.expand_path('spec/fixtures/wordpress_stub.zip'))
18
+ Dir.chdir('tmp')
19
+ end
20
+
21
+ context "#new" do
22
+ it "downloads a copy of WordPress, installs Wordless and creates a theme" do
23
+ Wordless::CLI.start ['new', 'myapp']
24
+ File.exists?('wp-content/index.php').should eq true
25
+ (File.exists?('wp-content/plugins/plugin.php') || File.directory?('wp-content/themes/theme')).should eq false
26
+ File.directory?('wp-content/plugins/wordless').should eq true
27
+ File.directory?('wp-content/themes/myapp').should eq true
28
+ File.exists?('wp-content/themes/myapp/index.php').should eq true
29
+ end
30
+ end
31
+
32
+ context "#wp" do
33
+ context "with no arguments" do
34
+ it "downloads a copy of WordPress" do
35
+ Wordless::CLI.start ['wp']
36
+ File.exists?('wordpress/wp-content/index.php').should eq true
37
+ end
38
+
39
+ it "initializes a git repository" do
40
+ Wordless::CLI.start ['wp']
41
+ File.directory?('wordpress/.git').should eq true
42
+ end
43
+
44
+ it "doesn't leave a stray 'wordpress' directory" do
45
+ Wordless::CLI.start ['wp']
46
+ File.directory?('wordpress/wordpress').should eq false
47
+ end
48
+ end
49
+
50
+ context "with a custom directory name" do
51
+ it "downloads a copy of WordPress in directory 'myapp'" do
52
+ Wordless::CLI.start ['wp', 'myapp']
53
+ File.exists?('myapp/wp-content/index.php').should eq true
54
+ end
55
+ end
56
+
57
+ context "with the 'bare' option" do
58
+ it "downloads a copy of WordPress and removes default plugins and themes" do
59
+ Wordless::CLI.start ['wp', '--bare']
60
+ (File.exists?('wordpress/wp-content/plugins/plugin.php') || File.directory?('wordpress/wp-content/themes/theme')).should eq false
61
+ end
62
+ end
63
+ end
64
+
65
+ context "#install" do
66
+ context "with a valid WordPress installation" do
67
+ it "installs the Wordless plugin" do
68
+ Wordless::CLI.start ['wp']
69
+ Dir.chdir 'wordpress'
70
+ Wordless::CLI.start ['install']
71
+ File.directory?('wp-content/plugins/wordless').should eq true
72
+ end
73
+ end
74
+
75
+ context "without a valid WordPress installation" do
76
+ it "fails to install the Wordless plugin" do
77
+ content = capture(:stdout) { Wordless::CLI.start ['install'] }
78
+ content.should =~ %r|Directory 'wp-content/plugins' not found|
79
+ end
80
+ end
81
+ end
82
+
83
+ context "#theme" do
84
+ context "with a valid WordPress installation and the Wordless plugin" do
85
+ before :each do
86
+ Wordless::CLI.start ['wp']
87
+ Dir.chdir 'wordpress'
88
+ Wordless::CLI.start ['install']
89
+ end
90
+
91
+ it "creates a Wordless theme" do
92
+ Wordless::CLI.start ['theme', 'mytheme']
93
+ File.directory?('wp-content/themes/mytheme').should eq true
94
+ File.exists?('wp-content/themes/mytheme/index.php').should eq true
95
+ end
96
+ end
97
+
98
+ context "without a valid WordPress installation" do
99
+ it "fails to create a Wordless theme" do
100
+ content = capture(:stdout) { Wordless::CLI.start ['theme', 'mytheme'] }
101
+ content.should =~ %r|Directory 'wp-content/themes' not found|
102
+ end
103
+ end
104
+ end
105
+
106
+ after :each do
107
+ Dir.chdir(@original_wd)
108
+ %w(tmp/wordpress tmp/myapp).each do |dir|
109
+ FileUtils.rm_rf(dir) if File.directory? dir
110
+ end
111
+ end
112
+ end
Binary file
Binary file
@@ -0,0 +1,41 @@
1
+ require 'wordless/cli'
2
+ require 'fakeweb'
3
+ require 'thor'
4
+
5
+ # Set shell to basic
6
+ # $0 = "thor"
7
+ # $thor_runner = true
8
+ # ARGV.clear
9
+ # Thor::Base.shell = Thor::Shell::Basic
10
+
11
+ RSpec.configure do |config|
12
+ FakeWeb.allow_net_connect = false
13
+
14
+ $stdout = StringIO.new
15
+
16
+ # Stub Wordless::CLI#wordless_repo to avoid hitting the network when testing Wordless installation
17
+ # FIXME - Need to be able to selectively stub this
18
+ # config.before(:each, :stub_wordless_install => true) do
19
+ # module Wordless
20
+ # class CLI
21
+ # no_tasks do
22
+ # def wordless_repo
23
+ # File.expand_path(File.join(File.dirname(__FILE__), 'fixtures', 'wordless_stub'))
24
+ # end
25
+ # end
26
+ # end
27
+ # end
28
+ # end
29
+
30
+ def capture(stream)
31
+ begin
32
+ stream = stream.to_s
33
+ eval "$#{stream} = StringIO.new"
34
+ yield
35
+ result = eval("$#{stream}").string
36
+ ensure
37
+ eval("$#{stream} = #{stream.upcase}")
38
+ end
39
+ result
40
+ end
41
+ end
data/wordless.gemspec CHANGED
@@ -9,11 +9,9 @@ Gem::Specification.new do |gem|
9
9
  gem.homepage = "http://github.com/etienne/wordless_gem"
10
10
 
11
11
  gem.add_dependency "thor"
12
- gem.add_dependency "colored"
13
12
 
14
13
  gem.add_development_dependency 'rspec'
15
- gem.add_development_dependency "cucumber"
16
- gem.add_development_dependency "aruba"
14
+ gem.add_development_dependency 'fakeweb'
17
15
 
18
16
  gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
17
  gem.files = `git ls-files`.split("\n")
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.0.2
4
+ version: 0.1.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-03-13 00:00:00.000000000 Z
12
+ date: 2012-03-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
16
- requirement: &70210065590180 !ruby/object:Gem::Requirement
16
+ requirement: &70226020702320 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,32 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70210065590180
25
- - !ruby/object:Gem::Dependency
26
- name: colored
27
- requirement: &70210065589560 !ruby/object:Gem::Requirement
28
- none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
32
- version: '0'
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: *70210065589560
24
+ version_requirements: *70226020702320
36
25
  - !ruby/object:Gem::Dependency
37
26
  name: rspec
38
- requirement: &70210065588060 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
43
- version: '0'
44
- type: :development
45
- prerelease: false
46
- version_requirements: *70210065588060
47
- - !ruby/object:Gem::Dependency
48
- name: cucumber
49
- requirement: &70210065587480 !ruby/object:Gem::Requirement
27
+ requirement: &70226020701760 !ruby/object:Gem::Requirement
50
28
  none: false
51
29
  requirements:
52
30
  - - ! '>='
@@ -54,10 +32,10 @@ dependencies:
54
32
  version: '0'
55
33
  type: :development
56
34
  prerelease: false
57
- version_requirements: *70210065587480
35
+ version_requirements: *70226020701760
58
36
  - !ruby/object:Gem::Dependency
59
- name: aruba
60
- requirement: &70210065586840 !ruby/object:Gem::Requirement
37
+ name: fakeweb
38
+ requirement: &70226020701200 !ruby/object:Gem::Requirement
61
39
  none: false
62
40
  requirements:
63
41
  - - ! '>='
@@ -65,7 +43,7 @@ dependencies:
65
43
  version: '0'
66
44
  type: :development
67
45
  prerelease: false
68
- version_requirements: *70210065586840
46
+ version_requirements: *70226020701200
69
47
  description: Wordless
70
48
  email:
71
49
  - etienne@molotov.ca
@@ -75,21 +53,23 @@ extensions: []
75
53
  extra_rdoc_files: []
76
54
  files:
77
55
  - .gitignore
56
+ - .rspec
78
57
  - Gemfile
79
58
  - Gemfile.lock
80
59
  - LICENSE
81
60
  - README.md
82
61
  - Rakefile
83
62
  - bin/wordless
84
- - features/step_definitions/wordless_steps.rb
85
- - features/step_definitions/wordpress_steps.rb
86
- - features/support/env.rb
87
- - features/support/hooks.rb
88
- - features/wordless.feature
89
- - features/wordpress.feature
90
63
  - lib/wordless.rb
91
64
  - lib/wordless/cli.rb
65
+ - lib/wordless/cli_helper.rb
66
+ - lib/wordless/theme_builder.php
92
67
  - lib/wordless/version.rb
68
+ - spec/cli_helper_spec.rb
69
+ - spec/cli_spec.rb
70
+ - spec/fixtures/wordpress_stub.zip
71
+ - spec/fixtures/zipped_file.zip
72
+ - spec/spec_helper.rb
93
73
  - wordless.gemspec
94
74
  homepage: http://github.com/etienne/wordless_gem
95
75
  licenses: []
@@ -116,9 +96,8 @@ signing_key:
116
96
  specification_version: 3
117
97
  summary: Manage Wordless themes.
118
98
  test_files:
119
- - features/step_definitions/wordless_steps.rb
120
- - features/step_definitions/wordpress_steps.rb
121
- - features/support/env.rb
122
- - features/support/hooks.rb
123
- - features/wordless.feature
124
- - features/wordpress.feature
99
+ - spec/cli_helper_spec.rb
100
+ - spec/cli_spec.rb
101
+ - spec/fixtures/wordpress_stub.zip
102
+ - spec/fixtures/zipped_file.zip
103
+ - spec/spec_helper.rb
@@ -1,18 +0,0 @@
1
- Then /^the Wordless plugin should be installed$/ do
2
- plugin_root = 'wp-content/plugins/wordless'
3
- steps %Q{
4
- Then the following files should exist:
5
- | #{plugin_root}/wordless.php |
6
- | #{plugin_root}/wordless/wordless.php |
7
- }
8
- end
9
-
10
- Then /^a Wordless theme called "([^"]*)" should exist$/ do |name|
11
- theme_root = "wp-content/themes/#{name}"
12
- steps %Q{
13
- Then the following files should exist:
14
- | #{theme_root}/index.php |
15
- | #{theme_root}/style.css |
16
- | #{theme_root}/config/initializers/wordless_preferences.php |
17
- }
18
- end
@@ -1,20 +0,0 @@
1
- Given /^WordPress is already installed$/ do
2
- in_current_dir do
3
- `git init`
4
- end
5
- create_dir('wp-content/plugins') # Will do for now
6
- end
7
-
8
- Then /^a WordPress installation should exist in directory "([^"]*)"$/ do |dir|
9
- steps %Q{
10
- Then the following files should exist:
11
- | #{dir}/index.php |
12
- | #{dir}/wp-activate.php |
13
- | #{dir}/wp-config-sample.php |
14
- | #{dir}/wp-settings.php |
15
- Then the following directories should exist:
16
- | #{dir}/wp-content |
17
- | #{dir}/wp-admin |
18
- | #{dir}/wp-includes |
19
- }
20
- end
@@ -1,3 +0,0 @@
1
- require 'aruba/cucumber'
2
-
3
- ENV['PATH'] = "#{File.expand_path(File.dirname(__FILE__) + '/../../bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
@@ -1,4 +0,0 @@
1
- Before('@long') do
2
- @aruba_io_wait_seconds = 30 # Allow WordPress to download
3
- end
4
-
@@ -1,7 +0,0 @@
1
- Feature: Manage Wordless-based sites
2
-
3
- @long
4
- Scenario: Install Wordless into an existing WordPress installation
5
- Given WordPress is already installed
6
- When I run `wordless install`
7
- Then the Wordless plugin should be installed
@@ -1,6 +0,0 @@
1
- Feature: Install WordPress
2
-
3
- @long
4
- Scenario: Create a plain new WordPress site
5
- When I run `wordless wp`
6
- Then a WordPress installation should exist in directory "wordpress"