xml_file_renamer 0.0.1
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 +7 -0
- data/bin/xml_file_renamer +4 -0
- data/lib/xml_file_renamer.rb +84 -0
- metadata +61 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 44235233e1002186532e25daf3a5405318b8fd2b
|
4
|
+
data.tar.gz: 66f10ec69616fceac29a5cf7aa594fc14896aa83
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6c9591e924e699309c45c3da6e4bea337fc6cf35985f1974b1068bd50ed1f0d75020522a91cd69141d31a2f7d6d73c8786d65082cdcd3abf9e1ad923443f3561
|
7
|
+
data.tar.gz: be1a0d2143187e8cbdeaa93aa8f88341e2589fc04e675ee035c44d81a3fc90da5dccd2aba408ba34e4bd0cca14fe76d01b420f2de25a48613cf751c0000760bb
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
|
3
|
+
|
4
|
+
class XMLFileRenamer
|
5
|
+
attr_reader :source_data, :css_selector, :xml_document,
|
6
|
+
:origin_directory, :export_directory,
|
7
|
+
:new_file_name, :destination_file_name
|
8
|
+
|
9
|
+
def initialize(source_data, css_selector)
|
10
|
+
@source_data = source_data
|
11
|
+
@css_selector = css_selector
|
12
|
+
end
|
13
|
+
|
14
|
+
def rename
|
15
|
+
set_origin_directory
|
16
|
+
print_origin_directory
|
17
|
+
set_export_directory
|
18
|
+
print_export_directory
|
19
|
+
print_css_selector
|
20
|
+
|
21
|
+
if (!File.directory? @source_data) && (File.exist? @source_data)
|
22
|
+
open_xml_file
|
23
|
+
query_xml_file
|
24
|
+
export_xml_file
|
25
|
+
end
|
26
|
+
|
27
|
+
if File.directory? @source_data
|
28
|
+
Dir.chdir(@source_data) do
|
29
|
+
all_regular_files_in_directory = Dir.glob('*.*')
|
30
|
+
all_regular_files_in_directory.each do |file_name|
|
31
|
+
xml_file_renamer = XMLFileRenamer.new(file_name, @css_selector)
|
32
|
+
xml_file_renamer.rename
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
def set_origin_directory
|
40
|
+
@origin_directory = Dir.pwd
|
41
|
+
end
|
42
|
+
|
43
|
+
def print_origin_directory
|
44
|
+
puts '**** Origin Directory: ' + @origin_directory
|
45
|
+
end
|
46
|
+
|
47
|
+
def print_css_selector
|
48
|
+
puts '**** CSS selector: ' + @css_selector
|
49
|
+
end
|
50
|
+
|
51
|
+
def set_export_directory
|
52
|
+
# Specify export directory:
|
53
|
+
@export_directory = @origin_directory + '/export_folder'
|
54
|
+
end
|
55
|
+
|
56
|
+
def print_export_directory
|
57
|
+
puts '**** Export Directory: ' + @export_directory
|
58
|
+
end
|
59
|
+
|
60
|
+
def open_xml_file
|
61
|
+
# Read in the file and get new file name:
|
62
|
+
puts '**** Source File: ' + @source_data
|
63
|
+
@xml_document = Nokogiri::XML(open(@source_data))
|
64
|
+
end
|
65
|
+
|
66
|
+
def query_xml_file
|
67
|
+
xml_query_by_css = @xml_document.css(@css_selector)
|
68
|
+
|
69
|
+
@new_file_name = xml_query_by_css.text.strip
|
70
|
+
puts '**** New File Name: ' + @new_file_name
|
71
|
+
end
|
72
|
+
|
73
|
+
#This method should be split into making a directory and exporting a file
|
74
|
+
def export_xml_file
|
75
|
+
@destination_file_name = @export_directory + '/' + @new_file_name.to_s + '.xml'
|
76
|
+
|
77
|
+
FileUtils.mkdir_p @export_directory
|
78
|
+
FileUtils.copy_file(@source_data, @destination_file_name)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
|
83
|
+
# Checkout the public repo at:
|
84
|
+
# https://github.com/sealocal/xml_file_renamer
|
metadata
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: xml_file_renamer
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Mike Taylor
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-04-18 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: nokogiri
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.6.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.6.1
|
27
|
+
description: A Ruby class for renaming xml files based on content inside the XML.
|
28
|
+
email: local.mat@gmail.com
|
29
|
+
executables:
|
30
|
+
- xml_file_renamer
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- bin/xml_file_renamer
|
35
|
+
- lib/xml_file_renamer.rb
|
36
|
+
homepage: https://github.com/sealocal/xml_file_renamer
|
37
|
+
licenses:
|
38
|
+
- MIT
|
39
|
+
metadata: {}
|
40
|
+
post_install_message:
|
41
|
+
rdoc_options: []
|
42
|
+
require_paths:
|
43
|
+
- lib
|
44
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
requirements: []
|
55
|
+
rubyforge_project:
|
56
|
+
rubygems_version: 2.2.1
|
57
|
+
signing_key:
|
58
|
+
specification_version: 4
|
59
|
+
summary: Rename XML files.
|
60
|
+
test_files: []
|
61
|
+
has_rdoc:
|