xml_file_renamer 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/bin/xml_file_renamer +2 -1
- data/lib/xml_file_renamer.rb +31 -6
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: abc8f48c224700cfbbc57548842dcead6441c9e6
|
4
|
+
data.tar.gz: 008f6de205746b8787b7c3d95b1c291b26e8fe97
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa69655120b5d0c40af8c9f5c6f98bef9c9bf77c83f3a4e9103d2859d59ee4a5bd4feabaa635f1193b4e7467dc57517c622b42a7d57bdd6c4086b01ac9bc0a34
|
7
|
+
data.tar.gz: 57877bfc7039da6962d8c50e7179c7b20b05fd7f0f20c81675e4d1c69013e4444137a6ccc5e819b81af644fbd6b58b57b204de6109b4d90bf306d70c114921fe
|
data/README.md
CHANGED
@@ -34,7 +34,7 @@ This is a Ruby class that allows you to rename your XML files based on content i
|
|
34
34
|
|
35
35
|
Copy example XML files provided by the gem:
|
36
36
|
|
37
|
-
$ cp -r `which xml_file_renamer`/../../gems/xml_file_renamer-0.0.
|
37
|
+
$ cp -r `which xml_file_renamer`/../../gems/xml_file_renamer-0.0.7/example_xml_files ~/Documents/example_xml_files
|
38
38
|
|
39
39
|
Run the command on a single file:
|
40
40
|
|
data/bin/xml_file_renamer
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require 'xml_file_renamer'
|
4
|
-
xfr = XMLFileRenamer.new(ARGV[0], ARGV[1])
|
4
|
+
xfr = XMLFileRenamer.new(ARGV[0], ARGV[1], ARGV[2])
|
5
5
|
xfr.print_origin_directory
|
6
6
|
xfr.print_export_directory
|
7
7
|
xfr.print_css_selector
|
8
|
+
xfr.print_case_option
|
8
9
|
xfr.rename
|
data/lib/xml_file_renamer.rb
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
require 'nokogiri'
|
2
|
+
require 'active_support/all'
|
2
3
|
|
3
4
|
class XMLFileRenamer
|
4
|
-
attr_reader :source_data, :css_selector, :
|
5
|
-
:origin_directory, :export_directory,
|
5
|
+
attr_reader :source_data, :css_selector, :case_option,
|
6
|
+
:xml_document, :origin_directory, :export_directory,
|
6
7
|
:new_file_name, :destination_file_name
|
7
8
|
|
8
|
-
def initialize(source_data, css_selector)
|
9
|
+
def initialize(source_data, css_selector, case_option = nil)
|
9
10
|
@source_data = source_data
|
10
11
|
@css_selector = css_selector
|
12
|
+
@case_option = case_option
|
11
13
|
|
12
14
|
set_origin_directory
|
13
15
|
set_export_directory
|
@@ -28,10 +30,21 @@ class XMLFileRenamer
|
|
28
30
|
css_selector
|
29
31
|
end
|
30
32
|
|
33
|
+
def print_case_option
|
34
|
+
puts '**** Case Option: ' + case_option if case_option != nil
|
35
|
+
case_option
|
36
|
+
end
|
37
|
+
|
38
|
+
def print_file_name
|
39
|
+
puts '**** New File Name: ' + new_file_name
|
40
|
+
end
|
41
|
+
|
42
|
+
|
31
43
|
def rename
|
32
44
|
new_file = if (!File.directory? source_data) && (File.exist? source_data)
|
33
45
|
open_xml_file
|
34
46
|
query_xml_file
|
47
|
+
convert_case
|
35
48
|
export_xml_file
|
36
49
|
end
|
37
50
|
|
@@ -40,7 +53,7 @@ class XMLFileRenamer
|
|
40
53
|
Dir.chdir(source_data) do
|
41
54
|
all_regular_files_in_directory = Dir.glob('*.*')
|
42
55
|
all_regular_files_in_directory.each do |file_name|
|
43
|
-
xml_file_renamer = XMLFileRenamer.new(file_name, css_selector)
|
56
|
+
xml_file_renamer = XMLFileRenamer.new(file_name, css_selector, case_option)
|
44
57
|
new_files << xml_file_renamer.rename
|
45
58
|
end
|
46
59
|
end
|
@@ -73,9 +86,21 @@ class XMLFileRenamer
|
|
73
86
|
|
74
87
|
def query_xml_file
|
75
88
|
xml_query_by_css = xml_document.css(css_selector)
|
76
|
-
|
77
89
|
@new_file_name = xml_query_by_css.text.strip
|
78
|
-
|
90
|
+
end
|
91
|
+
|
92
|
+
def convert_case
|
93
|
+
@new_file_name = if case_option == 'lower_case'
|
94
|
+
@new_file_name.downcase
|
95
|
+
elsif case_option == 'upper_case'
|
96
|
+
@new_file_name.upcase
|
97
|
+
elsif case_option == 'title_case'
|
98
|
+
@new_file_name.titlecase
|
99
|
+
elsif case_option == 'camel_case'
|
100
|
+
@new_file_name.split.join.camelcase
|
101
|
+
elsif case_option == 'snake_case'
|
102
|
+
@new_file_name.titleize.split.join.underscore
|
103
|
+
end
|
79
104
|
end
|
80
105
|
|
81
106
|
#This method should be split into making a directory and exporting a file
|