wordpress_config_parser 0.9.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/.gitignore ADDED
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .idea
6
+ .yardoc
7
+ Gemfile.lock
8
+ InstalledFiles
9
+ _yardoc
10
+ coverage
11
+ doc/
12
+ lib/bundler/man
13
+ pkg
14
+ rdoc
15
+ spec/reports
16
+ test/tmp
17
+ test/version_tmp
18
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in wordpress_config_parser.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Keith Bennett
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,136 @@
1
+ # WordpressConfigParser
2
+
3
+ Reads a Wordpress configuration file (wp-config.php) and
4
+ makes its define() data values easily accessible.
5
+
6
+ This is useful, for example, in the creation of a mysqldump command
7
+ without having to store config information (especially passwords) in a second place, to avoid
8
+ wasted effort, risk of stale data, and password compromise.
9
+
10
+ The parsing algorithm is extremely primitive, but "works for me".
11
+
12
+ The WCParser constructor will handle any of the following as its argument:
13
+
14
+ * an array of lines
15
+ * a filespec of a Wordpress config file
16
+ * a filespec of a directory containing a Wordpress config file
17
+ ('wp-config.php' is assumed to be the file's name).
18
+
19
+ After instantiating a parser, you can access the variables defined
20
+ in the config file in the following ways:
21
+
22
+ ```ruby
23
+
24
+ parser = WCParser.new('/Users/me/public_html/blog')
25
+
26
+ db_name = parser.db_name
27
+ # or
28
+ db_name = parser['DB_NAME']
29
+ # or
30
+ db_name = parser[:db_name]
31
+ # or
32
+ db_name = parser.get(:db_name)
33
+ # or
34
+ db_name = parser.get('DB_NAME')
35
+ ```
36
+
37
+ Here's an example of a possibly useful script that creates a sql backup
38
+ of multiple blogs on a shared host, adds them to the git repo (of the
39
+ entire shell account), and pushes them to the origin repo:
40
+
41
+ ```ruby
42
+ #!/usr/bin/env ruby
43
+
44
+ require 'wordpress_config_parser'
45
+ require 'shellwords'
46
+
47
+
48
+ def run_command(command)
49
+ puts(command)
50
+ puts(`#{command}`)
51
+ end
52
+
53
+
54
+ home = ENV['HOME']
55
+ output_dir = File.join(home, 'sql-backups')
56
+ blognames = %w(blog1 blog2)
57
+
58
+
59
+ blognames.each do |blogname|
60
+
61
+ blog_dir = File.join(home, 'public_html', blogname)
62
+ parser = WCParser.new(blog_dir)
63
+ time_str = Time.now.strftime("%Y_%m_%d__%H%M%S")
64
+ outfilespec = File.join(output_dir, "#{blogname}-db-backup-#{time_str}.sql")
65
+
66
+ user = Shellwords.escape(parser.db_user)
67
+ password = Shellwords.escape(parser.db_password)
68
+ host = Shellwords.escape(parser.db_host)
69
+ name = Shellwords.escape(parser.db_name)
70
+
71
+
72
+ Dir.chdir(home) do # in case you have another .git dir where you are
73
+ run_command("mysqldump -u#{user} -p#{password} -h#{host} #{name} 2>&1 | tee #{outfilespec}")
74
+ run_command("git add #{outfilespec} 2>&1")
75
+ run_command("git commit -m \"Added #{outfilespec}.\"")
76
+ end
77
+ end
78
+
79
+ run_command("git push -u origin master")
80
+ ```
81
+
82
+ CAUTION:
83
+
84
+ It is assumed that the key in the config file is always, and all, upper case.
85
+ Any key passed to the get and [] methods, or as a method name, will be
86
+ converted to an upper case string for which to search in the config file.
87
+
88
+ If you use the method name approach of reading the value for a key,
89
+ then a NoMethodError will be raised if the key did not exist in the file.
90
+ If you don't want that to happen, you can use the get or [] methods instead,
91
+ as they return nil rather than raising an error. For example:
92
+
93
+ ```ruby
94
+ value = parser[:db_xyz]
95
+ # instead of
96
+ value = parser.db_xyz
97
+ ```
98
+
99
+ You can also call has_key? (with either string or symbol) to see if it's there
100
+ before trying to get it. This function is very fast, and pulls the value into
101
+ the cache if it wasn't already there, so the subsequent access to get the
102
+ actual value is very fast.
103
+
104
+ It is highly recommended to use Shellwords.escape on any values found
105
+ in the config file before passing those values to a command line.
106
+ You wouldn't want someone modifying a value to include "; rm -rf ~"!
107
+
108
+
109
+
110
+
111
+
112
+ ## Installation
113
+
114
+ Add this line to your application's Gemfile:
115
+
116
+ gem 'wordpress_config_parser'
117
+
118
+ And then execute:
119
+
120
+ $ bundle
121
+
122
+ Or install it yourself as:
123
+
124
+ $ gem install wordpress_config_parser
125
+
126
+ ## Usage
127
+
128
+ TODO: Write usage instructions here
129
+
130
+ ## Contributing
131
+
132
+ 1. Fork it
133
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
134
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
135
+ 4. Push to the branch (`git push origin my-new-feature`)
136
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
@@ -0,0 +1,3 @@
1
+ module WordpressConfigParser
2
+ VERSION = "0.9.0"
3
+ end
@@ -0,0 +1,95 @@
1
+ class WCParser
2
+
3
+ attr_accessor :lines
4
+
5
+ def initialize(filespec_or_array)
6
+
7
+ error_message = "WCParser constructor must be passed an array of lines, " +
8
+ "a config filespec, or a directory name that contains a wp-config.php file."
9
+
10
+ case filespec_or_array
11
+
12
+ when Array
13
+ @lines = filespec_or_array
14
+
15
+ when String
16
+ filespec = filespec_or_array
17
+ unless File.exists?(filespec)
18
+ raise ArgumentError.new("File/directory '#{filespec}' does not exist. #{error_message}")
19
+ end
20
+
21
+ if File.directory?(filespec)
22
+ filespec = File.join(filespec, 'wp-config.php')
23
+ unless File.exists?(filespec)
24
+ raise ArgumentError.new("File '#{filespec}' does not exist. #{error_message}")
25
+ end
26
+ end
27
+
28
+ @lines = File.readlines(filespec).map(&:chomp)
29
+
30
+ else
31
+ raise ArgumentError.new(error_message)
32
+ end
33
+
34
+ @cache = {}
35
+ end
36
+
37
+ # Ex: define('DB_NAME', 'abcdefgh_0001');
38
+ def find_def_line(token)
39
+ search_string = "define('#{token}'"
40
+ matches = lines.select { |line| line[0...search_string.size] == search_string }
41
+ matches.empty? ? nil : matches.last # last one wins
42
+ end
43
+
44
+
45
+ def extract_value_from_line(line)
46
+ # Ex: define('DB_NAME', 'abcdefgh_0001');
47
+ # Splitting by ' will leave value as array[3]
48
+ line.split("'")[3]
49
+ end
50
+
51
+ def get(token)
52
+
53
+ hash_key = token.to_s.downcase.to_sym
54
+
55
+ if @cache.has_key?(hash_key)
56
+ value = @cache[hash_key]
57
+ else
58
+ config_file_key = token.to_s.upcase
59
+ line = find_def_line(config_file_key)
60
+ value = (line.nil? ? nil : extract_value_from_line(line))
61
+ @cache[hash_key] = value # Note: cache will contain any invalid keys requested
62
+ end
63
+ value
64
+ end
65
+
66
+
67
+ def has_key?(key)
68
+ !! get(key)
69
+ end
70
+
71
+
72
+ alias [] get
73
+
74
+ # For missing methods, assume the method_name is the name or symbol
75
+ # of a defined value's key. If the key exists in the config file,
76
+ # a method is created and that value returned. Otherwise, super's
77
+ # method_missing will be called.
78
+ def method_missing(method_name, *method_args)
79
+
80
+ value = get(method_name)
81
+
82
+ if value.nil?
83
+ super.method_missing(method_name, *method_args)
84
+ else
85
+ instance_eval("""
86
+ def #{method_name.to_s.downcase}
87
+ get('#{method_name.to_s.upcase}')
88
+ end
89
+ """)
90
+ end
91
+
92
+ value
93
+ end
94
+
95
+ end
@@ -0,0 +1,9 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'wordpress_config_parser'))
2
+
3
+ require "wordpress_config_parser/version"
4
+
5
+
6
+ module WordpressConfigParser
7
+
8
+ require 'wc_parser'
9
+ end
data/make-gem.sh ADDED
@@ -0,0 +1,7 @@
1
+ gem uninstall wordpress_config_parser
2
+ rm wordpress_config_parser*gem
3
+ gem build wordpress_config_parser.gemspec
4
+ gem install wordpress_config_parser*gem
5
+
6
+ ruby -e "require 'wordpress_config_parser'; parser = WCParser.new('spec/resources'); puts parser.db_name; puts parser.db_name"
7
+
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # backup-wordpress-db.rb
4
+ #
5
+ # Calls mysqldump to create a backup of a MySQL data base
6
+ # in the form of a .sql file containing the SQL commands
7
+ # required to reconstruct it.
8
+ #
9
+ # Assumptions:
10
+ #
11
+ # 1) The directory containing the output (backup) files is in a git repo.
12
+ #
13
+ # 2) Either you have .ssh keys set up, or you're willing to
14
+ # type in your password for the git push.
15
+ #
16
+ # 3) You're storing your SQL backup files in ~/sql-backups, and
17
+ # that directory already exists.
18
+ #
19
+ # 4) The blogs are all under the $HOME/public_html directory.
20
+ #
21
+ # 5) There are no changes git added when you run this script.
22
+ # Otherwise, those changes will be included in the commit,
23
+ # without any commit message to describe them.
24
+
25
+ require 'wordpress_config_reader'
26
+ require 'shellwords'
27
+
28
+ if ARGV.empty?
29
+ puts "Syntax is backup-wordpress.rb blog_dir_name_1 [...blog_dir_name_n]."
30
+ exit -1
31
+ end
32
+
33
+
34
+ def run_command(command)
35
+ puts(command)
36
+ puts(`#{command}`)
37
+ end
38
+
39
+
40
+ home = ENV['HOME']
41
+ output_dir = File.join(home, 'sql-backups')
42
+ blognames = ARGV
43
+
44
+ blognames.each do |blogname|
45
+
46
+ blog_dir = File.join(home, 'public_html', blogname)
47
+ reader = WCReader.new(blog_dir)
48
+ outfilespec = File.join(output_dir, "#{blogname}-db-backup.sql")
49
+
50
+ user = Shellwords.escape(reader.db_user)
51
+ password = Shellwords.escape(reader.db_password)
52
+ host = Shellwords.escape(reader.db_host)
53
+ name = Shellwords.escape(reader.db_name)
54
+
55
+
56
+ Dir.chdir(output_dir) do # make sure we're in the right repo
57
+ run_command("mysqldump -u#{user} -p#{password} -h#{host} #{name} 2>&1 | tee #{outfilespec}")
58
+ run_command("git add #{outfilespec} 2>&1")
59
+ end
60
+ end
61
+
62
+
63
+ run_command("git commit -m \"Updated SQL backups for blogs: #{blognames.join(', ')}.\"")
64
+ run_command("git push -u origin master")
@@ -0,0 +1,94 @@
1
+ <?php
2
+ /**
3
+ !!! DO NOT MODIFY THIS FILE!!!!
4
+ !!! FILE CONTENT IS ASSUMED BY UNIT TESTS !!!
5
+
6
+ * The base configurations of the WordPress.
7
+ *
8
+ * This file has the following configurations: MySQL settings, Table Prefix,
9
+ * Secret Keys, WordPress Language, and ABSPATH. You can find more information
10
+ * by visiting {@link http://codex.wordpress.org/Editing_wp-config.php Editing
11
+ * wp-config.php} Codex page. You can get the MySQL settings from your web host.
12
+ *
13
+ * This file is used by the wp-config.php creation script during the
14
+ * installation. You don't have to use the web site, you can just copy this file
15
+ * to "wp-config.php" and fill in the values.
16
+ *
17
+ * @package WordPress
18
+ */
19
+
20
+ // ** MySQL settings - You can get this info from your web host ** //
21
+ /** The name of the database for WordPress */
22
+ define('DB_NAME', 'mysite_wrd1');
23
+ define('DB_NAME', 'mysite_wrd2');
24
+
25
+ /** MySQL database username */
26
+ define('DB_USER', 'mysite_user');
27
+
28
+ /** MySQL database password */
29
+ define('DB_PASSWORD', 'gobbledygook');
30
+
31
+ /** MySQL hostname */
32
+ define('DB_HOST', 'localhost');
33
+
34
+ /** Database Charset to use in creating database tables. */
35
+ define('DB_CHARSET', 'utf8');
36
+
37
+ /** The Database Collate type. Don't change this if in doubt. */
38
+ define('DB_COLLATE', '');
39
+
40
+ /**#@+
41
+ * Authentication Unique Keys and Salts.
42
+ *
43
+ * Change these to different unique phrases!
44
+ * You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
45
+ * You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
46
+ *
47
+ * @since 2.6.0
48
+ */
49
+ define('AUTH_KEY', '1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
50
+ define('SECURE_AUTH_KEY', '2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
51
+ define('LOGGED_IN_KEY', '3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
52
+ define('NONCE_KEY', '4xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
53
+ define('AUTH_SALT', '5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
54
+ define('SECURE_AUTH_SALT', '6xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
55
+ define('LOGGED_IN_SALT', '7xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
56
+ define('NONCE_SALT', '8xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
57
+
58
+ /**#@-*/
59
+
60
+ /**
61
+ * WordPress Database Table prefix.
62
+ *
63
+ * You can have multiple installations in one database if you give each a unique
64
+ * prefix. Only numbers, letters, and underscores please!
65
+ */
66
+ $table_prefix = 'wp_';
67
+
68
+ /**
69
+ * WordPress Localized Language, defaults to English.
70
+ *
71
+ * Change this to localize WordPress. A corresponding MO file for the chosen
72
+ * language must be installed to wp-content/languages. For example, install
73
+ * de_DE.mo to wp-content/languages and set WPLANG to 'de_DE' to enable German
74
+ * language support.
75
+ */
76
+ define('WPLANG', '');
77
+
78
+ /**
79
+ * For developers: WordPress debugging mode.
80
+ *
81
+ * Change this to true to enable the display of notices during development.
82
+ * It is strongly recommended that plugin and theme developers use WP_DEBUG
83
+ * in their development environments.
84
+ */
85
+ define('WP_DEBUG', false);
86
+
87
+ /* That's all, stop editing! Happy blogging. */
88
+
89
+ /** Absolute path to the WordPress directory. */
90
+ if ( !defined('ABSPATH') )
91
+ define('ABSPATH', dirname(__FILE__) . '/');
92
+
93
+ /** Sets up WordPress vars and included files. */
94
+ require_once(ABSPATH . 'wp-settings.php');
@@ -0,0 +1,4 @@
1
+ require 'rspec'
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib', 'wordpress_config_parser'))
4
+
@@ -0,0 +1,82 @@
1
+ require_relative '../spec_helper'
2
+ require 'wc_parser'
3
+ require 'tempfile'
4
+
5
+ describe WCParser do
6
+
7
+
8
+ let(:sample_lines) { %w(abc 789) }
9
+ let(:sample_dirspec) { File.expand_path(File.join(File.dirname(__FILE__), '..', 'resources')) }
10
+ let(:sample_filespec) { File.join(sample_dirspec, 'wp-config.php') }
11
+ let(:sample_parser) { WCParser.new(sample_filespec) }
12
+
13
+ it "should initialize correctly when calling create_with_lines" do
14
+ parser = WCParser.new(sample_lines)
15
+ parser.lines.should == sample_lines
16
+ end
17
+
18
+ it "parser.lines should be an array when instantiating with a filespec" do
19
+ sample_parser.lines.should be_a Array
20
+ end
21
+
22
+ it "parser.lines should equal the initial array when calling create_with_filespec" do
23
+ parser = WCParser.new(sample_filespec)
24
+ parser.lines.should == File.readlines(sample_filespec).map(&:chomp)
25
+ end
26
+
27
+ it "should correctly extract the value from a config line" do
28
+ config_line = "define('DB_NAME', 'abcdefgh_0001');"
29
+ sample_parser.extract_value_from_line(config_line).should == 'abcdefgh_0001'
30
+ end
31
+
32
+ it "should extract the correct line when > 1 matches are present" do
33
+ line = sample_parser.find_def_line('DB_NAME')
34
+ value = sample_parser.extract_value_from_line(line)
35
+ value.should == 'mysite_wrd2'
36
+ end
37
+
38
+ it "(get) should get the correct value" do
39
+ sample_parser.get('DB_NAME').should == 'mysite_wrd2'
40
+ end
41
+
42
+ it "[] operator should get the correct value" do
43
+ sample_parser['DB_NAME'].should == 'mysite_wrd2'
44
+ end
45
+
46
+ it "should correctly generate a new method when receiving a property in lower case" do
47
+ sample_parser.db_name.should == 'mysite_wrd2'
48
+ end
49
+
50
+ it "should correctly create a mysqladmin dump command with parameters from the file" do
51
+ db_name = sample_parser.db_name
52
+ db_password = sample_parser.db_password
53
+ db_hostname = sample_parser.db_host
54
+ db_user = sample_parser.db_user
55
+
56
+ # mysqldump -u#{userid} -p#{password} -h#{hostname} #{database_name} 2>&1 > #{outfilespec}`
57
+ command = "mysqldump -u#{db_user} -p#{db_password} -h#{db_hostname} #{db_name}"
58
+ expected = "mysqldump -umysite_user -pgobbledygook -hlocalhost mysite_wrd2"
59
+ command.should == expected
60
+ end
61
+
62
+ it "should correctly return true for has_key?(:db_name) and has_key?('DB_NAME')" do
63
+ (sample_parser.has_key?(:db_name) && sample_parser.has_key?('DB_NAME')).should be_true
64
+ end
65
+
66
+ it "should correctly return false for has_key?(:zyx) and has_key?('ZYX')" do
67
+ (sample_parser.has_key?(:zyx) || sample_parser.has_key?('ZYX')).should be_false
68
+ end
69
+
70
+ it "should throw an ArgumentError if a bad file is provided" do
71
+ lambda { WCParser.new('/:!@#$%^&') }.should raise_error(ArgumentError)
72
+ end
73
+
74
+ it "should throw an ArgumentError if a something other than a string or array is provided" do
75
+ lambda { WCParser.new(123) }.should raise_error(ArgumentError)
76
+ end
77
+
78
+ it "should throw a NoMethodError if a method is called for which there is no key" do
79
+ lambda { sample_parser.foo }.should raise_error(NoMethodError)
80
+ end
81
+
82
+ end
@@ -0,0 +1,17 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/wordpress_config_parser/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Keith Bennett"]
6
+ gem.email = ["keithrbennett@gmail.com"]
7
+ gem.description = %q{Gets values defined in Wordpress wp-config.php file.}
8
+ gem.summary = %q{Gets values defined in Wordpress wp-config.php file.}
9
+ gem.homepage = "https://github.com/keithrbennett/wordpress_config_parser"
10
+
11
+ gem.files = `git ls-files`.split($\)
12
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
+ gem.name = "wordpress_config_parser"
15
+ gem.require_paths = ["lib"]
16
+ gem.version = WordpressConfigParser::VERSION
17
+ end
metadata ADDED
@@ -0,0 +1,62 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wordpress_config_parser
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Keith Bennett
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-09-21 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Gets values defined in Wordpress wp-config.php file.
15
+ email:
16
+ - keithrbennett@gmail.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - .gitignore
22
+ - Gemfile
23
+ - LICENSE
24
+ - README.md
25
+ - Rakefile
26
+ - lib/wordpress_config_parser.rb
27
+ - lib/wordpress_config_parser/version.rb
28
+ - lib/wordpress_config_parser/wc_parser.rb
29
+ - make-gem.sh
30
+ - sample_scripts/backup-wordpress-db.rb
31
+ - spec/resources/wp-config.php
32
+ - spec/spec_helper.rb
33
+ - spec/wordpress_config_reader/wc_reader_spec.rb
34
+ - wordpress_config_parser.gemspec
35
+ homepage: https://github.com/keithrbennett/wordpress_config_parser
36
+ licenses: []
37
+ post_install_message:
38
+ rdoc_options: []
39
+ require_paths:
40
+ - lib
41
+ required_ruby_version: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ required_rubygems_version: !ruby/object:Gem::Requirement
48
+ none: false
49
+ requirements:
50
+ - - ! '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ requirements: []
54
+ rubyforge_project:
55
+ rubygems_version: 1.8.21
56
+ signing_key:
57
+ specification_version: 3
58
+ summary: Gets values defined in Wordpress wp-config.php file.
59
+ test_files:
60
+ - spec/resources/wp-config.php
61
+ - spec/spec_helper.rb
62
+ - spec/wordpress_config_reader/wc_reader_spec.rb