wpcli 0.1.5 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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