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 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,4 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'xml_file_renamer'
4
+ XMLFileRenamer.new(ARGV[0], ARGV[1]).rename
@@ -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: