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 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: