wordpress-wxr 0.5.1 → 0.5.2

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: 3c5e16b294da4728d76fa47baee46e566bf23195
4
- data.tar.gz: 0431ee90ef5b1b761a75e1e51315fe5e9ede9fb2
3
+ metadata.gz: ca849d840d5742c4224586ca255abcabccc5d68a
4
+ data.tar.gz: 008077700d75be02a58e6f65d9906d4700f13151
5
5
  SHA512:
6
- metadata.gz: f509724ad79ea8cf7ced17ba5132a690f642dea628b84cb35514252e5126e92bf8d30dacf0a3c172fc4518a09cbee5f8733a4f0513bbef827674835573e7327a
7
- data.tar.gz: ae0ce521288379b3b26e09696f298be9fcea986f41040c3cecc22228c0dc9f8f10af48c4020973e6641de4c2964f0f7593b98d0962ca4356b753ef730f6dc129
6
+ metadata.gz: 4f647aa4f3a5fb7b75dc362c26a4082df2311b20832e18943f3f0a6fcc937fd7b83e6210d82bdf75d12302fd558d700d9a355e7b571f697f4d5ece68963bf1b0
7
+ data.tar.gz: 8c210f3f26a04cec693c681591bd577e1574a48904c856858da1f36f93b16d2792576924ab761cc023370cf8f057b12c2c87c2d94bd774335e49cecaf84d8b23
@@ -6,6 +6,7 @@ require 'wordpress/wxr/categories'
6
6
  require 'wordpress/wxr/pages'
7
7
  require 'wordpress/wxr/posts'
8
8
  require 'wordpress/wxr/tags'
9
+ require 'wordpress/wxr/directory_listings'
9
10
  require 'wordpress/wxr/version'
10
11
 
11
12
  module Wordpress
@@ -46,5 +47,9 @@ module Wordpress
46
47
  def tags
47
48
  Tags.new(document, self)
48
49
  end
50
+
51
+ def directory_listings
52
+ DirectoryListings.new(document, self)
53
+ end
49
54
  end
50
55
  end
@@ -0,0 +1,104 @@
1
+ require 'wordpress/wxr/item'
2
+ require 'php-serialize'
3
+
4
+ module Wordpress
5
+ class WXR
6
+ class DirectoryListing < Item
7
+ def content
8
+ node.xpath("//wp:postmeta[wp:meta_key = 'company_details_0_company_bio']").at_xpath('wp:meta_value').text
9
+ end
10
+
11
+ def directory_name
12
+ node.xpath("//wp:postmeta[wp:meta_key = 'directory_type']").at_xpath('wp:meta_value').text
13
+ end
14
+
15
+ def contact_name
16
+ node.xpath("//wp:postmeta[wp:meta_key = 'contact_details_0_contact_name']").at_xpath('wp:meta_value').text
17
+ end
18
+
19
+ def contact_email
20
+ node.xpath("//wp:postmeta[wp:meta_key = 'contact_details_0_email']").at_xpath('wp:meta_value').text
21
+ end
22
+
23
+ def contact_phone
24
+ node.xpath("//wp:postmeta[wp:meta_key = 'contact_details_0_phone']").at_xpath('wp:meta_value').text
25
+ end
26
+
27
+ def country
28
+ unserialize('company_details_0_country_of_origin', 'country_name')
29
+ end
30
+
31
+ def state
32
+ unserialize('company_details_0_country_of_origin', 'state_name')
33
+ end
34
+
35
+ def city
36
+ unserialize('company_details_0_country_of_origin', 'city_name')
37
+ end
38
+
39
+ def website
40
+ node.xpath("//wp:postmeta[wp:meta_key = 'company_details_0_company_website']").at_xpath('wp:meta_value').text
41
+ end
42
+
43
+ def years_established
44
+ node.xpath("//wp:postmeta[wp:meta_key = 'company_details_0_number_of_years_established']").at_xpath('wp:meta_value').text
45
+ end
46
+
47
+ def founder
48
+ node.xpath("//wp:postmeta[wp:meta_key = 'company_details_0_founder']").at_xpath('wp:meta_value').text
49
+ end
50
+
51
+ def ceo
52
+ node.xpath("//wp:postmeta[wp:meta_key = 'company_details_0_ceo']").at_xpath('wp:meta_value').text
53
+ end
54
+
55
+ def coo
56
+ node.xpath("//wp:postmeta[wp:meta_key = 'company_details_0_coo']").at_xpath('wp:meta_value').text
57
+ end
58
+
59
+ def cto
60
+ node.xpath("//wp:postmeta[wp:meta_key = 'company_details_0_cto']").at_xpath('wp:meta_value').text
61
+ end
62
+
63
+ def cfo
64
+ node.xpath("//wp:postmeta[wp:meta_key = 'company_details_0_cfo']").at_xpath('wp:meta_value').text
65
+ end
66
+
67
+ def annual_revenues
68
+ node.xpath("//wp:postmeta[wp:meta_key = 'company_details_0_annual_revenues']").at_xpath('wp:meta_value').text
69
+ end
70
+
71
+ def market_segment
72
+ node.xpath("//wp:postmeta[wp:meta_key = 'company_details_0_portal_market_segment']").at_xpath('wp:meta_value').text
73
+ end
74
+
75
+ def business_model
76
+ node.xpath("//wp:postmeta[wp:meta_key = 'company_details_0_portal_business_model']").at_xpath('wp:meta_value').text
77
+ end
78
+
79
+ def market_coverage
80
+ node.xpath("//wp:postmeta[wp:meta_key = 'company_details_0_portal_market_coverage']").at_xpath('wp:meta_value').text
81
+ end
82
+
83
+ def average_monthly_traffic
84
+ node.xpath("//wp:postmeta[wp:meta_key = 'company_details_0_average_monthly_traffic']").at_xpath('wp:meta_value').text
85
+ end
86
+
87
+ def data_source
88
+ node.xpath("//wp:postmeta[wp:meta_key = 'company_details_0_data_source']").at_xpath('wp:meta_value').text
89
+ end
90
+
91
+ def technology_platform
92
+ node.xpath("//wp:postmeta[wp:meta_key = 'company_details_0_technology_platform']").at_xpath('wp:meta_value').text
93
+ end
94
+
95
+ private
96
+
97
+ def unserialize(xml_field_name, key)
98
+ serialized_php = node.xpath("//wp:postmeta[wp:meta_key = '#{xml_field_name}']").at_xpath('wp:meta_value').text
99
+ unserialized_php = PHP.unserialize(serialized_php)
100
+ !!unserialized_php[key] && !unserialized_php[key].empty? ? unserialized_php[key] : ''
101
+ end
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,31 @@
1
+ require 'wordpress/wxr/directory_listing'
2
+
3
+ module Wordpress
4
+ class WXR
5
+ class DirectoryListings
6
+ include Enumerable
7
+
8
+ attr_reader :document, :wxr
9
+ private :document, :wxr
10
+
11
+ def initialize(document, wxr)
12
+ @document = document
13
+ @wxr = wxr
14
+ end
15
+
16
+ def each
17
+ return enum_for(:each) unless block_given?
18
+
19
+ nodes.each do |node|
20
+ yield DirectoryListing.new(node, wxr)
21
+ end
22
+ end
23
+
24
+ private
25
+
26
+ def nodes
27
+ document.xpath("//item[wp:post_type = 'directory']")
28
+ end
29
+ end
30
+ end
31
+ end
@@ -1,5 +1,5 @@
1
1
  module Wordpress
2
2
  class WXR
3
- VERSION = '0.5.1'.freeze
3
+ VERSION = '0.5.2'.freeze
4
4
  end
5
5
  end
@@ -24,4 +24,5 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.add_runtime_dependency 'mail', '~> 2.5.4'
26
26
  spec.add_runtime_dependency 'nokogiri'
27
+ spec.add_runtime_dependency 'php-serialize'
27
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wordpress-wxr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - ePublishing, inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-30 00:00:00.000000000 Z
11
+ date: 2018-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: php-serialize
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  description:
84
98
  email:
85
99
  - development@ePublishing.com
@@ -104,6 +118,8 @@ files:
104
118
  - lib/wordpress/wxr/categories.rb
105
119
  - lib/wordpress/wxr/category.rb
106
120
  - lib/wordpress/wxr/comment.rb
121
+ - lib/wordpress/wxr/directory_listing.rb
122
+ - lib/wordpress/wxr/directory_listings.rb
107
123
  - lib/wordpress/wxr/element.rb
108
124
  - lib/wordpress/wxr/item.rb
109
125
  - lib/wordpress/wxr/page.rb
@@ -134,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
150
  version: '0'
135
151
  requirements: []
136
152
  rubyforge_project:
137
- rubygems_version: 2.2.5
153
+ rubygems_version: 2.2.3
138
154
  signing_key:
139
155
  specification_version: 4
140
156
  summary: Parse a WordPress XML file into separate Ruby objects.