wpcli 0.1.5 → 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e79d2539033f6ff4a9ebff3f11514e9ef0a6a235
4
- data.tar.gz: f243137c295793ec30d0afa143718988a4af9972
3
+ metadata.gz: 7420ce749bad764f4dda2f91b153f58960e83b96
4
+ data.tar.gz: e50fd5760ae5ff81b700fce11b0a11b8e46302fd
5
5
  SHA512:
6
- metadata.gz: 578721c1e23b7c141669ad89a230f5bea346995b361bf9196f14f33dcfc6af85c0b74a4fa230cb4120be7bc802d16b8561868e61e836e5353e2726ca4b4dc8cc
7
- data.tar.gz: 9ad6e2f62fb2d8edcebe1679801bede22248673d6a4cee5f6dea1da9f86af8a13bb2c8d95bb9e080f801b10e62513288be139aa5e7ce19e7ee3ec8326539bf62
6
+ metadata.gz: 2ae33c6283a5f25718357318e4256e5cf4a6c6d7f11e35bab2c117846b0d415817a92e7b794586117fb9d98aba75b9d17895541360c6cda6eb955259d30a326e
7
+ data.tar.gz: 544697a49646184df988918d1ba4b87809e3db528925715da58b755db9daf34763057444ce9957744f64334b9bb04affc807e22479a9aa0e4ec8c54b5522ce7c
data/README.md CHANGED
@@ -8,7 +8,7 @@ Just pass commands (http://wp-cli.org/commands/) to run method and use returned
8
8
 
9
9
  Add this line to your application's Gemfile:
10
10
 
11
- gem 'wpcli', "~> 0.1.5"
11
+ gem 'wpcli', "~> 0.2.0"
12
12
 
13
13
  And then execute:
14
14
 
@@ -60,4 +60,4 @@ If you like to use client for example in command line, you can create instance w
60
60
  4. Push to the branch (`git push origin my-new-feature`)
61
61
  5. Create new Pull Request
62
62
 
63
- [![Gem Version](https://badge.fury.io/rb/wpcli.png)](http://badge.fury.io/rb/wpcli)
63
+ [![Gem Version](https://badge.fury.io/rb/wpcli.png)](http://badge.fury.io/rb/wpcli) [![Build Status](https://travis-ci.org/hasanen/wpcli.png?branch=master)](https://travis-ci.org/hasanen/wpcli)
data/Rakefile CHANGED
@@ -1 +1,4 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+ task :default => :spec
4
+ RSpec::Core::RakeTask.new
data/lib/wpcli/client.rb CHANGED
@@ -19,7 +19,16 @@ module Wpcli
19
19
  if index < first_data_row
20
20
  @columns = parse_header line, separator
21
21
  else
22
- rows << parse_line(line, separator)
22
+ if single_value_response
23
+ parsed_line = parse_line(line, separator)
24
+ value = parsed_line[:value]
25
+ unless value.nil? || value == "null"
26
+ rows << {} unless rows.size == 1
27
+ rows.first[parsed_line[:field].to_sym] = value
28
+ end
29
+ else
30
+ rows << parse_line(line, separator)
31
+ end
23
32
  end
24
33
  end
25
34
  end
@@ -29,6 +38,7 @@ module Wpcli
29
38
  def parse_header line, separator
30
39
  columns = []
31
40
  line.split(separator).each_with_index do |column, index|
41
+ detect_if_line_is_from_single_value_response column
32
42
  columns[index] = column.strip.downcase unless column.strip.empty?
33
43
  end
34
44
  columns
@@ -44,5 +54,13 @@ module Wpcli
44
54
  def starts_with_plus? line
45
55
  line.start_with? "+"
46
56
  end
57
+
58
+ def detect_if_line_is_from_single_value_response column
59
+ @single_value = column.strip.downcase == "field" unless @single_value
60
+ end
61
+
62
+ def single_value_response
63
+ @single_value
64
+ end
47
65
  end
48
66
  end
data/lib/wpcli/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Wpcli
2
- VERSION = "0.1.5"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -23,8 +23,36 @@ let(:wp_user_list_tabs_newlines) { "ID\tuser_login\tdisplay_name\tuser_email\tus
23
23
  | Contributor | contributor |
24
24
  | Subscriber | subscriber |
25
25
  +------------------+------------------------------------+
26
+ EOF
27
+ end
28
+
29
+ let(:single_user) do <<EOF
30
+ +---------------------+------------------------------------+
31
+ | Field | Value |
32
+ +---------------------+------------------------------------+
33
+ | ID | 1 |
34
+ | user_login | username |
35
+ | user_pass | hash_of_paassword |
36
+ | user_nicename | Firstname Lastname |
37
+ | user_email | |
38
+ | user_url | |
39
+ | user_registered | 2013-11-25 12:41:38 |
40
+ | user_activation_key | |
41
+ | user_status | 0 |
42
+ | display_name | Nickname |
43
+ | roles | administrator |
44
+ +---------------------+------------------------------------+
45
+ EOF
46
+ end
47
+ let(:single_user_not_found) do <<EOF
48
+ +-------+-------+
49
+ | Field | Value |
50
+ +-------+-------+
51
+ | roles | null |
52
+ +-------+-------+
26
53
  EOF
27
54
  end
55
+
28
56
  describe '.new' do
29
57
  let(:path) { "path_to_wp" }
30
58
  let(:command) { "user role" }
@@ -128,5 +156,50 @@ EOF
128
156
  end
129
157
  end
130
158
  end
159
+
160
+ context 'single user' do
161
+ before :each do
162
+ @wpcli.stub(:`).with("wp user get username").and_return(single_user)
163
+ @array = @wpcli.run "user get username"
164
+ end
165
+
166
+ describe 'returns array' do
167
+ it { @array.kind_of?(Array).should be(true) }
168
+
169
+ it 'which has one hash' do
170
+ @array.size.should eq(1)
171
+ end
172
+
173
+
174
+ it 'hash has correct columns' do
175
+ @array.first.has_key?(:ID).should be(true)
176
+ @array.first.has_key?(:user_login).should be(true)
177
+ @array.first.has_key?(:user_pass).should be(true)
178
+ @array.first.has_key?(:user_nicename).should be(true)
179
+ @array.first.has_key?(:user_email).should be(true)
180
+ @array.first.has_key?(:user_url).should be(true)
181
+ @array.first.has_key?(:user_registered).should be(true)
182
+ @array.first.has_key?(:user_activation_key).should be(true)
183
+ @array.first.has_key?(:user_status).should be(true)
184
+ @array.first.has_key?(:display_name).should be(true)
185
+ @array.first.has_key?(:roles).should be(true)
186
+ @array.first.keys.size.should eq(11)
187
+ end
188
+ end
189
+ end
190
+ context 'single user not found' do
191
+ before :each do
192
+ @wpcli.stub(:`).with("wp user get username").and_return(single_user_not_found)
193
+ @array = @wpcli.run "user get username"
194
+ end
195
+
196
+ describe 'returns array' do
197
+ it { @array.kind_of?(Array).should be(true) }
198
+
199
+ it 'which has zore hash' do
200
+ @array.size.should eq(0)
201
+ end
202
+ end
203
+ end
131
204
  end
132
205
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wpcli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joni Hasanen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-08 00:00:00.000000000 Z
11
+ date: 2014-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler