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