konjac 0.2.9.5 → 0.3
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.
- data/konjac.gemspec +1 -0
- data/lib/konjac.rb +0 -3
- data/lib/konjac/cli.rb +2 -2
- data/lib/konjac/exception.rb +3 -0
- data/lib/konjac/office.rb +64 -257
- data/lib/konjac/office/generic.rb +76 -0
- data/lib/konjac/office/mac.rb +11 -0
- data/lib/konjac/office/mac/excel.rb +73 -0
- data/lib/konjac/office/mac/power_point.rb +68 -0
- data/lib/konjac/office/mac/shared.rb +36 -0
- data/lib/konjac/office/mac/word.rb +114 -0
- data/lib/konjac/office/os.rb +53 -0
- data/lib/konjac/office/tag.rb +91 -0
- data/lib/konjac/office/windows.rb +11 -0
- data/lib/konjac/office/windows/excel.rb +0 -0
- data/lib/konjac/office/windows/power_point.rb +0 -0
- data/lib/konjac/office/windows/shared.rb +2 -0
- data/lib/konjac/office/windows/word.rb +0 -0
- data/lib/konjac/office/xml.rb +11 -0
- data/lib/konjac/office/xml/shared.rb +262 -0
- data/lib/konjac/version.rb +1 -1
- data/lib/locales/en.yml +1 -0
- data/lib/locales/ja.yml +1 -0
- data/spec/office/generic_spec.rb +72 -0
- data/spec/office_spec.rb +37 -0
- metadata +58 -39
- data/lib/applescripts/konjac_excel_export +0 -120
- data/lib/applescripts/konjac_excel_import +0 -112
- data/lib/applescripts/konjac_powerpoint_export +0 -116
- data/lib/applescripts/konjac_powerpoint_import +0 -109
- data/lib/applescripts/konjac_word_export +0 -110
- data/lib/applescripts/konjac_word_import +0 -139
- data/lib/konjac/os.rb +0 -51
- data/lib/konjac/tag.rb +0 -50
- data/lib/konjac/tag_manager.rb +0 -65
- data/spec/tag_spec.rb +0 -63
@@ -1,120 +0,0 @@
|
|
1
|
-
#!/usr/bin/osascript
|
2
|
-
-- round up ASCII characters used for formatting in Word
|
3
|
-
global bell
|
4
|
-
global line_feed
|
5
|
-
global form_feed
|
6
|
-
global carriage_return
|
7
|
-
global format_chars
|
8
|
-
|
9
|
-
-- strip line breaks and formatting characters
|
10
|
-
to strip_line_breaks(this_line)
|
11
|
-
try
|
12
|
-
-- remove last character until no it's no longer an excluded character
|
13
|
-
repeat while last character of this_line is in format_chars
|
14
|
-
set this_line to characters 1 thru -2 of this_line as string
|
15
|
-
end repeat
|
16
|
-
return this_line as text
|
17
|
-
on error
|
18
|
-
return ""
|
19
|
-
end try
|
20
|
-
end strip_line_breaks
|
21
|
-
|
22
|
-
to get_posix_path(mac_path)
|
23
|
-
set result to POSIX path of mac_path
|
24
|
-
end get_posix_path
|
25
|
-
|
26
|
-
to extract(filename)
|
27
|
-
tell application "Microsoft Excel"
|
28
|
-
activate
|
29
|
-
open filename
|
30
|
-
set active_workbook to active workbook
|
31
|
-
set ignored_content to {missing value, "", line_feed}
|
32
|
-
|
33
|
-
-- set tags path to full path to active workbook with a .tags extension
|
34
|
-
set workbook_path to full name of active_workbook
|
35
|
-
set tags_path to workbook_path & ".diff"
|
36
|
-
|
37
|
-
-- delete tags file if it already exists
|
38
|
-
tell application "Finder"
|
39
|
-
if exists file tags_path then
|
40
|
-
delete file tags_path
|
41
|
-
end if
|
42
|
-
end tell
|
43
|
-
|
44
|
-
-- open tags file for writing
|
45
|
-
set tags_file to open for access file tags_path with write permission
|
46
|
-
set eof of tags_file to 0
|
47
|
-
|
48
|
-
write ("--- " & my get_posix_path(workbook_path)) to tags_file
|
49
|
-
write line_feed to tags_file
|
50
|
-
write ("+++ " & my get_posix_path(workbook_path)) to tags_file
|
51
|
-
write line_feed to tags_file
|
52
|
-
|
53
|
-
-- iterate through sheets
|
54
|
-
set sheet_index to 1
|
55
|
-
set sheet_count to count of sheets in active_workbook
|
56
|
-
|
57
|
-
repeat while sheet_index is less than or equal to sheet_count
|
58
|
-
set current_range to used range of sheet sheet_index in active_workbook
|
59
|
-
|
60
|
-
-- iterate through rows
|
61
|
-
set row_index to 1
|
62
|
-
set row_count to count of rows of current_range
|
63
|
-
set column_count to count of columns of current_range
|
64
|
-
|
65
|
-
repeat while row_index is less than or equal to row_count
|
66
|
-
-- iterate through columns
|
67
|
-
set column_index to 1
|
68
|
-
|
69
|
-
repeat while column_index is less than or equal to column_count
|
70
|
-
-- get text content if it's available
|
71
|
-
set text_content to my strip_line_breaks(formula of cell column_index of row row_index of current_range) as string
|
72
|
-
|
73
|
-
-- replace "soft returns" (vertical tabs) with real returns
|
74
|
-
set old_delimiters to AppleScript's text item delimiters
|
75
|
-
set AppleScript's text item delimiters to carriage_return
|
76
|
-
set split_content to every text item of text_content
|
77
|
-
set AppleScript's text item delimiters to old_delimiters
|
78
|
-
|
79
|
-
if text_content is not in ignored_content then
|
80
|
-
write ("@@ " & sheet_index & ":" & row_index & "," & column_index & " @@") to tags_file
|
81
|
-
write line_feed to tags_file
|
82
|
-
repeat with text_line in split_content
|
83
|
-
write ("-" & text_line) to tags_file as «class utf8»
|
84
|
-
write line_feed to tags_file
|
85
|
-
end repeat
|
86
|
-
repeat with text_line in split_content
|
87
|
-
write ("+" & text_line) to tags_file as «class utf8»
|
88
|
-
write line_feed to tags_file
|
89
|
-
end repeat
|
90
|
-
end if
|
91
|
-
|
92
|
-
set column_index to (column_index + 1)
|
93
|
-
end repeat
|
94
|
-
|
95
|
-
set row_index to (row_index + 1)
|
96
|
-
end repeat
|
97
|
-
|
98
|
-
-- increment sheet index
|
99
|
-
set sheet_index to (sheet_index + 1)
|
100
|
-
end repeat
|
101
|
-
|
102
|
-
-- close everything
|
103
|
-
close access tags_file
|
104
|
-
end tell
|
105
|
-
end extract
|
106
|
-
|
107
|
-
-- initialize global variables, just formatting characters here
|
108
|
-
to init_globals()
|
109
|
-
set bell to ASCII character 7
|
110
|
-
set line_feed to ASCII character 10
|
111
|
-
set form_feed to ASCII character 12
|
112
|
-
set carriage_return to ASCII character 13
|
113
|
-
set format_chars to {bell, line_feed, form_feed, carriage_return}
|
114
|
-
end init_globals
|
115
|
-
|
116
|
-
-- main()
|
117
|
-
on run argv
|
118
|
-
init_globals()
|
119
|
-
extract(item 1 of argv)
|
120
|
-
end
|
@@ -1,112 +0,0 @@
|
|
1
|
-
#!/usr/bin/osascript
|
2
|
-
global numbers_as_text
|
3
|
-
global line_feed
|
4
|
-
global vertical_tab
|
5
|
-
global carriage_return
|
6
|
-
|
7
|
-
-- parses the headers/separators inside the tags file
|
8
|
-
to parse_header(header, begin)
|
9
|
-
set at_offset to begin
|
10
|
-
|
11
|
-
repeat while character at_offset of header is in my numbers_as_text
|
12
|
-
set at_offset to (at_offset + 1)
|
13
|
-
end repeat
|
14
|
-
|
15
|
-
return at_offset
|
16
|
-
end parse_header
|
17
|
-
|
18
|
-
to get_posix_path(mac_path)
|
19
|
-
set result to POSIX path of mac_path
|
20
|
-
end get_posix_path
|
21
|
-
|
22
|
-
to import(filename)
|
23
|
-
tell application "Microsoft Excel"
|
24
|
-
activate
|
25
|
-
open filename
|
26
|
-
set active_workbook to active workbook
|
27
|
-
set ignored_content to {missing value, "", line_feed}
|
28
|
-
|
29
|
-
-- set tags path to full path to active workbook with a .tags extension
|
30
|
-
set workbook_path to full name of active_workbook
|
31
|
-
set tags_path to workbook_path & ".diff"
|
32
|
-
|
33
|
-
-- read in tags
|
34
|
-
set tags_file to open for access file tags_path
|
35
|
-
set tags to (read tags_file for (get eof tags_file) ¬
|
36
|
-
as «class utf8» using delimiter line_feed)
|
37
|
-
set tag_index to 0
|
38
|
-
set tag_length to length of tags
|
39
|
-
close access tags_file
|
40
|
-
|
41
|
-
set text_content to ""
|
42
|
-
|
43
|
-
-- iterate through sheets
|
44
|
-
set sheet_index to 0
|
45
|
-
set prev_sheet_index to 0
|
46
|
-
set row_index to 0
|
47
|
-
set prev_row_index to 0
|
48
|
-
set column_index to 0
|
49
|
-
set prev_column_index to 0
|
50
|
-
set is_new_tag to false
|
51
|
-
|
52
|
-
repeat with current_line in tags
|
53
|
-
if current_line starts with "@@ " then
|
54
|
-
set colon_offset to my parse_header(current_line, 4)
|
55
|
-
set sheet_index to text 4 thru (colon_offset - 1) ¬
|
56
|
-
of current_line as number
|
57
|
-
set comma_offset to my parse_header(current_line, colon_offset + 1)
|
58
|
-
set row_index to text (colon_offset + 1) thru (comma_offset - 1) ¬
|
59
|
-
of current_line as number
|
60
|
-
set space_offset to my parse_header(current_line, comma_offset + 1)
|
61
|
-
set column_index to text (comma_offset + 1) thru (space_offset - 1) ¬
|
62
|
-
of current_line as number
|
63
|
-
set is_new_tag to true
|
64
|
-
else if current_line starts with "+" then
|
65
|
-
if sheet_index is not 0 then
|
66
|
-
set prev_sheet_index to sheet_index
|
67
|
-
set prev_row_index to row_index
|
68
|
-
set prev_column_index to column_index
|
69
|
-
|
70
|
-
-- handle blank lines with soft returns
|
71
|
-
if length of current_line is less than 2
|
72
|
-
set this_content to ""
|
73
|
-
else
|
74
|
-
set this_content to text 2 thru (length of current_line) ¬
|
75
|
-
of current_line
|
76
|
-
end if
|
77
|
-
|
78
|
-
-- add to text content, joining with a soft return for multiple lines
|
79
|
-
if text_content is "" then
|
80
|
-
set text_content to this_content
|
81
|
-
else
|
82
|
-
set text_content to (text_content & carriage_return & this_content)
|
83
|
-
end if
|
84
|
-
set is_new_tag to false
|
85
|
-
end if
|
86
|
-
end if
|
87
|
-
|
88
|
-
-- increment tag index
|
89
|
-
set tag_index to tag_index + 1
|
90
|
-
|
91
|
-
-- write if we've moved to a new tag or reached the end of the file
|
92
|
-
if text_content is not "" and (tag_index is tag_length or is_new_tag)
|
93
|
-
set formula of cell prev_column_index of row prev_row_index of used range of sheet prev_sheet_index of active_workbook to text_content
|
94
|
-
set text_content to ""
|
95
|
-
end if
|
96
|
-
end repeat
|
97
|
-
end tell
|
98
|
-
end import
|
99
|
-
|
100
|
-
-- initialize global variables
|
101
|
-
to init_globals()
|
102
|
-
set numbers_as_text to {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"}
|
103
|
-
set line_feed to ASCII character 10
|
104
|
-
set vertical_tab to ASCII character 11
|
105
|
-
set carriage_return to ASCII character 13
|
106
|
-
end init_globals
|
107
|
-
|
108
|
-
-- main()
|
109
|
-
on run argv
|
110
|
-
init_globals()
|
111
|
-
import(item 1 of argv)
|
112
|
-
end run
|
@@ -1,116 +0,0 @@
|
|
1
|
-
#!/usr/bin/osascript
|
2
|
-
-- round up ASCII characters used for formatting in Word
|
3
|
-
global bell
|
4
|
-
global line_feed
|
5
|
-
global form_feed
|
6
|
-
global carriage_return
|
7
|
-
global format_chars
|
8
|
-
|
9
|
-
-- strip line breaks and formatting characters
|
10
|
-
to strip_line_breaks(this_line)
|
11
|
-
try
|
12
|
-
-- remove last character until no it's no longer an excluded character
|
13
|
-
repeat while last character of this_line is in format_chars
|
14
|
-
set this_line to characters 1 thru -2 of this_line as string
|
15
|
-
end repeat
|
16
|
-
return this_line as text
|
17
|
-
on error
|
18
|
-
return ""
|
19
|
-
end try
|
20
|
-
end strip_line_breaks
|
21
|
-
|
22
|
-
to get_posix_path(mac_path)
|
23
|
-
set result to POSIX path of mac_path
|
24
|
-
end get_posix_path
|
25
|
-
|
26
|
-
to extract(filename)
|
27
|
-
tell application "Microsoft PowerPoint"
|
28
|
-
activate
|
29
|
-
open filename
|
30
|
-
set active_presentation to active presentation
|
31
|
-
set ignored_content to {missing value, "", line_feed}
|
32
|
-
|
33
|
-
-- set tags path to full path to active presentation with a .tags extension
|
34
|
-
set presentation_path to (path of active_presentation) & ":" & ¬
|
35
|
-
(name of active_presentation)
|
36
|
-
set tags_path to presentation_path & ".diff"
|
37
|
-
|
38
|
-
-- delete tags file if it already exists
|
39
|
-
tell application "Finder"
|
40
|
-
if exists file tags_path then
|
41
|
-
delete file tags_path
|
42
|
-
end if
|
43
|
-
end tell
|
44
|
-
|
45
|
-
-- open tags file for writing
|
46
|
-
set tags_file to open for access file tags_path with write permission
|
47
|
-
set eof of tags_file to 0
|
48
|
-
|
49
|
-
write ("--- " & my get_posix_path(presentation_path)) to tags_file
|
50
|
-
write line_feed to tags_file
|
51
|
-
write ("+++ " & my get_posix_path(presentation_path)) to tags_file
|
52
|
-
write line_feed to tags_file
|
53
|
-
|
54
|
-
-- iterate through slides
|
55
|
-
set slide_index to 1
|
56
|
-
set slide_count to count of slides in active_presentation
|
57
|
-
|
58
|
-
repeat while slide_index is less than or equal to slide_count
|
59
|
-
set current_slide to slide slide_index in active_presentation
|
60
|
-
|
61
|
-
-- iterate through shapes
|
62
|
-
set shape_index to 1
|
63
|
-
set shape_count to count of shapes in current_slide
|
64
|
-
|
65
|
-
repeat while shape_index is less than or equal to shape_count
|
66
|
-
-- set current shape
|
67
|
-
set current_shape to shape shape_index of current_slide
|
68
|
-
|
69
|
-
-- get text content if it's available
|
70
|
-
set text_content to my strip_line_breaks(content of text range of text frame of current_shape) as string
|
71
|
-
|
72
|
-
-- replace "soft returns" (vertical tabs) with real returns
|
73
|
-
set old_delimiters to AppleScript's text item delimiters
|
74
|
-
set AppleScript's text item delimiters to carriage_return
|
75
|
-
set split_content to every text item of text_content
|
76
|
-
set AppleScript's text item delimiters to old_delimiters
|
77
|
-
|
78
|
-
if text_content is not in ignored_content then
|
79
|
-
write ("@@ " & slide_index & "," & shape_index & " @@") to tags_file
|
80
|
-
write line_feed to tags_file
|
81
|
-
repeat with text_line in split_content
|
82
|
-
write ("-" & text_line) to tags_file as «class utf8»
|
83
|
-
write line_feed to tags_file
|
84
|
-
end repeat
|
85
|
-
repeat with text_line in split_content
|
86
|
-
write ("+" & text_line) to tags_file as «class utf8»
|
87
|
-
write line_feed to tags_file
|
88
|
-
end repeat
|
89
|
-
end if
|
90
|
-
|
91
|
-
set shape_index to (shape_index + 1)
|
92
|
-
end repeat
|
93
|
-
|
94
|
-
-- increment slide index
|
95
|
-
set slide_index to (slide_index + 1)
|
96
|
-
end repeat
|
97
|
-
|
98
|
-
-- close everything
|
99
|
-
close access tags_file
|
100
|
-
end tell
|
101
|
-
end extract
|
102
|
-
|
103
|
-
-- initialize global variables, just formatting characters here
|
104
|
-
to init_globals()
|
105
|
-
set bell to ASCII character 7
|
106
|
-
set line_feed to ASCII character 10
|
107
|
-
set form_feed to ASCII character 12
|
108
|
-
set carriage_return to ASCII character 13
|
109
|
-
set format_chars to {bell, line_feed, form_feed, carriage_return}
|
110
|
-
end init_globals
|
111
|
-
|
112
|
-
-- main()
|
113
|
-
on run argv
|
114
|
-
init_globals()
|
115
|
-
extract(item 1 of argv)
|
116
|
-
end
|
@@ -1,109 +0,0 @@
|
|
1
|
-
#!/usr/bin/osascript
|
2
|
-
global numbers_as_text
|
3
|
-
global line_feed
|
4
|
-
global vertical_tab
|
5
|
-
global carriage_return
|
6
|
-
|
7
|
-
-- parses the headers/separators inside the tags file
|
8
|
-
to parse_header(header, begin)
|
9
|
-
set at_offset to begin
|
10
|
-
|
11
|
-
repeat while character at_offset of header is in my numbers_as_text
|
12
|
-
set at_offset to (at_offset + 1)
|
13
|
-
end repeat
|
14
|
-
|
15
|
-
return at_offset
|
16
|
-
end parse_header
|
17
|
-
|
18
|
-
to get_posix_path(mac_path)
|
19
|
-
set result to POSIX path of mac_path
|
20
|
-
end get_posix_path
|
21
|
-
|
22
|
-
to import(filename)
|
23
|
-
tell application "Microsoft PowerPoint"
|
24
|
-
activate
|
25
|
-
open filename
|
26
|
-
set active_presentation to active presentation
|
27
|
-
set ignored_content to {missing value, "", line_feed}
|
28
|
-
|
29
|
-
-- set tags path to full path to active presentation with a .tags extension
|
30
|
-
set presentation_path to (path of active_presentation) & ":" & ¬
|
31
|
-
(name of active_presentation)
|
32
|
-
set tags_path to presentation_path & ".diff"
|
33
|
-
|
34
|
-
-- read in tags
|
35
|
-
set tags_file to open for access file tags_path
|
36
|
-
set tags to (read tags_file for (get eof tags_file) ¬
|
37
|
-
as «class utf8» using delimiter line_feed)
|
38
|
-
set tag_index to 0
|
39
|
-
set tag_length to length of tags
|
40
|
-
close access tags_file
|
41
|
-
|
42
|
-
set text_content to ""
|
43
|
-
|
44
|
-
-- iterate through slides
|
45
|
-
set slide_index to 0
|
46
|
-
set prev_slide_index to 0
|
47
|
-
set shape_index to 0
|
48
|
-
set prev_shape_index to 0
|
49
|
-
set is_new_tag to false
|
50
|
-
|
51
|
-
repeat with current_line in tags
|
52
|
-
if current_line starts with "@@ " then
|
53
|
-
set comma_offset to my parse_header(current_line, 4)
|
54
|
-
set slide_index to text 4 thru (comma_offset - 1) ¬
|
55
|
-
of current_line as number
|
56
|
-
set space_offset to my parse_header(current_line, comma_offset + 1)
|
57
|
-
set shape_index to text (comma_offset + 1) thru (space_offset - 1) ¬
|
58
|
-
of current_line as number
|
59
|
-
set is_new_tag to true
|
60
|
-
else if current_line starts with "+" then
|
61
|
-
if slide_index is not 0 then
|
62
|
-
set prev_slide_index to slide_index
|
63
|
-
set prev_shape_index to shape_index
|
64
|
-
|
65
|
-
-- handle blank lines with soft returns
|
66
|
-
if length of current_line is less than 2
|
67
|
-
set this_content to ""
|
68
|
-
else
|
69
|
-
set this_content to text 2 thru (length of current_line) ¬
|
70
|
-
of current_line
|
71
|
-
end if
|
72
|
-
|
73
|
-
-- add to text content, joining with a soft return for multiple lines
|
74
|
-
if text_content is "" then
|
75
|
-
set text_content to this_content
|
76
|
-
else
|
77
|
-
set text_content to (text_content & carriage_return & this_content)
|
78
|
-
end if
|
79
|
-
set is_new_tag to false
|
80
|
-
end if
|
81
|
-
end if
|
82
|
-
|
83
|
-
-- increment tag index
|
84
|
-
set tag_index to tag_index + 1
|
85
|
-
|
86
|
-
-- write if we've moved to a new tag or reached the end of the file
|
87
|
-
if text_content is not "" and (tag_index is tag_length or is_new_tag)
|
88
|
-
set content of text range of text frame of shape prev_shape_index ¬
|
89
|
-
of slide prev_slide_index ¬
|
90
|
-
of active presentation to text_content
|
91
|
-
set text_content to ""
|
92
|
-
end if
|
93
|
-
end repeat
|
94
|
-
end tell
|
95
|
-
end import
|
96
|
-
|
97
|
-
-- initialize global variables
|
98
|
-
to init_globals()
|
99
|
-
set numbers_as_text to {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"}
|
100
|
-
set line_feed to ASCII character 10
|
101
|
-
set vertical_tab to ASCII character 11
|
102
|
-
set carriage_return to ASCII character 13
|
103
|
-
end init_globals
|
104
|
-
|
105
|
-
-- main()
|
106
|
-
on run argv
|
107
|
-
init_globals()
|
108
|
-
import(item 1 of argv)
|
109
|
-
end run
|