wordless 0.0.2 → 0.1.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/.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"