openxml-docx 0.9.0 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +4 -4
  3. data/examples/drawing-ml +134 -0
  4. data/examples/table +28 -0
  5. data/lib/openxml/docx.rb +9 -0
  6. data/lib/openxml/docx/attribute_builder.rb +17 -4
  7. data/lib/openxml/docx/elements/absolute_position_tab.rb +4 -19
  8. data/lib/openxml/docx/elements/bidi_embed.rb +1 -10
  9. data/lib/openxml/docx/elements/bidi_override.rb +1 -9
  10. data/lib/openxml/docx/elements/break.rb +3 -14
  11. data/lib/openxml/docx/elements/control.rb +5 -2
  12. data/lib/openxml/docx/elements/deleted_text.rb +1 -1
  13. data/lib/openxml/docx/elements/drawing.rb +9 -0
  14. data/lib/openxml/docx/elements/element.rb +2 -1
  15. data/lib/openxml/docx/elements/embed_bold.rb +25 -0
  16. data/lib/openxml/docx/elements/embed_bold_italic.rb +25 -0
  17. data/lib/openxml/docx/elements/embed_italic.rb +25 -0
  18. data/lib/openxml/docx/elements/embed_regular.rb +25 -0
  19. data/lib/openxml/docx/elements/family.rb +22 -0
  20. data/lib/openxml/docx/elements/font.rb +14 -0
  21. data/lib/openxml/docx/elements/grid_column.rb +2 -2
  22. data/lib/openxml/docx/elements/group_shape.rb +10 -0
  23. data/lib/openxml/docx/elements/markup_compatibility_alternate_content.rb +10 -0
  24. data/lib/openxml/docx/elements/markup_compatibility_choice.rb +13 -0
  25. data/lib/openxml/docx/elements/markup_compatibility_fallback.rb +10 -0
  26. data/lib/openxml/docx/elements/paper_source.rb +4 -2
  27. data/lib/openxml/docx/elements/section_properties.rb +9 -0
  28. data/lib/openxml/docx/elements/symbol.rb +4 -2
  29. data/lib/openxml/docx/elements/table.rb +1 -1
  30. data/lib/openxml/docx/elements/table_cell.rb +2 -1
  31. data/lib/openxml/docx/elements/table_row.rb +7 -5
  32. data/lib/openxml/docx/elements/text.rb +1 -10
  33. data/lib/openxml/docx/elements/vml_container.rb +10 -0
  34. data/lib/openxml/docx/elements/word_processing_drawing_anchor.rb +23 -0
  35. data/lib/openxml/docx/elements/word_processing_drawing_effect_extent.rb +16 -0
  36. data/lib/openxml/docx/elements/word_processing_drawing_extent.rb +14 -0
  37. data/lib/openxml/docx/elements/word_processing_drawing_nv_graphic_frame_properties.rb +11 -0
  38. data/lib/openxml/docx/elements/word_processing_drawing_object_nv_properties.rb +17 -0
  39. data/lib/openxml/docx/elements/word_processing_drawing_position_h.rb +23 -0
  40. data/lib/openxml/docx/elements/word_processing_drawing_position_offset.rb +10 -0
  41. data/lib/openxml/docx/elements/word_processing_drawing_position_v.rb +23 -0
  42. data/lib/openxml/docx/elements/word_processing_drawing_simple_position.rb +13 -0
  43. data/lib/openxml/docx/elements/word_processing_drawing_wrap_none.rb +10 -0
  44. data/lib/openxml/docx/elements/word_processing_shapes_body_properties.rb +58 -0
  45. data/lib/openxml/docx/elements/word_processing_shapes_shape.rb +12 -0
  46. data/lib/openxml/docx/elements/word_processing_shapes_shape_properties.rb +23 -0
  47. data/lib/openxml/docx/package.rb +73 -1
  48. data/lib/openxml/docx/parts/document.rb +6 -24
  49. data/lib/openxml/docx/parts/fonts.rb +35 -0
  50. data/lib/openxml/docx/parts/footer.rb +32 -0
  51. data/lib/openxml/docx/parts/header.rb +32 -0
  52. data/lib/openxml/docx/parts/settings.rb +6 -2
  53. data/lib/openxml/docx/parts/styles.rb +5 -6
  54. data/lib/openxml/docx/properties.rb +0 -1
  55. data/lib/openxml/docx/properties/alignment.rb +1 -1
  56. data/lib/openxml/docx/properties/base_property.rb +13 -0
  57. data/lib/openxml/docx/properties/border.rb +11 -9
  58. data/lib/openxml/docx/properties/color.rb +6 -4
  59. data/lib/openxml/docx/properties/column.rb +4 -2
  60. data/lib/openxml/docx/properties/columns.rb +6 -4
  61. data/lib/openxml/docx/properties/complex_property.rb +1 -1
  62. data/lib/openxml/docx/properties/conditional_formatting.rb +14 -12
  63. data/lib/openxml/docx/properties/document_grid.rb +4 -10
  64. data/lib/openxml/docx/properties/east_asian_layout.rb +6 -11
  65. data/lib/openxml/docx/properties/font.rb +18 -22
  66. data/lib/openxml/docx/properties/footer_reference.rb +21 -0
  67. data/lib/openxml/docx/properties/frame.rb +16 -47
  68. data/lib/openxml/docx/properties/header_reference.rb +21 -0
  69. data/lib/openxml/docx/properties/indentation.rb +11 -8
  70. data/lib/openxml/docx/properties/language.rb +5 -3
  71. data/lib/openxml/docx/properties/latent_styles.rb +9 -6
  72. data/lib/openxml/docx/properties/latent_styles_exception.rb +9 -6
  73. data/lib/openxml/docx/properties/line_numbering.rb +5 -11
  74. data/lib/openxml/docx/properties/manual_width.rb +4 -2
  75. data/lib/openxml/docx/properties/numbering.rb +4 -2
  76. data/lib/openxml/docx/properties/page_borders.rb +6 -19
  77. data/lib/openxml/docx/properties/page_margins.rb +10 -7
  78. data/lib/openxml/docx/properties/page_numbering.rb +66 -74
  79. data/lib/openxml/docx/properties/page_size.rb +5 -12
  80. data/lib/openxml/docx/properties/shading.rb +46 -52
  81. data/lib/openxml/docx/properties/spacing.rb +9 -14
  82. data/lib/openxml/docx/properties/table_border.rb +12 -10
  83. data/lib/openxml/docx/properties/table_cell_border.rb +12 -10
  84. data/lib/openxml/docx/properties/table_cell_margin.rb +6 -4
  85. data/lib/openxml/docx/properties/table_cell_spacing.rb +5 -3
  86. data/lib/openxml/docx/properties/table_cell_width.rb +5 -3
  87. data/lib/openxml/docx/properties/table_indent.rb +5 -3
  88. data/lib/openxml/docx/properties/table_layout.rb +2 -4
  89. data/lib/openxml/docx/properties/table_look.rb +8 -6
  90. data/lib/openxml/docx/properties/table_p_pr.rb +11 -30
  91. data/lib/openxml/docx/properties/table_row_height.rb +13 -0
  92. data/lib/openxml/docx/properties/table_width.rb +5 -3
  93. data/lib/openxml/docx/properties/underline.rb +13 -12
  94. data/lib/openxml/docx/properties/wafter.rb +5 -3
  95. data/lib/openxml/docx/properties/wbefore.rb +5 -3
  96. data/lib/openxml/docx/root_namespaces.rb +74 -0
  97. data/lib/openxml/docx/section.rb +2 -0
  98. data/lib/openxml/docx/style.rb +4 -4
  99. data/lib/openxml/docx/version.rb +1 -1
  100. data/lib/openxml/drawingml.rb +17 -0
  101. data/lib/openxml/drawingml/elements.rb +13 -0
  102. data/lib/openxml/drawingml/elements/adjust_values_list.rb +11 -0
  103. data/lib/openxml/drawingml/elements/blip_fill.rb +14 -0
  104. data/lib/openxml/drawingml/elements/extension.rb +13 -0
  105. data/lib/openxml/drawingml/elements/extension_list.rb +11 -0
  106. data/lib/openxml/drawingml/elements/extents.rb +14 -0
  107. data/lib/openxml/drawingml/elements/graphic.rb +10 -0
  108. data/lib/openxml/drawingml/elements/graphic_data.rb +12 -0
  109. data/lib/openxml/drawingml/elements/graphic_frame_locks.rb +17 -0
  110. data/lib/openxml/drawingml/elements/head_end.rb +28 -0
  111. data/lib/openxml/drawingml/elements/no_fill.rb +10 -0
  112. data/lib/openxml/drawingml/elements/non_visual_drawing_properties.rb +17 -0
  113. data/lib/openxml/drawingml/elements/non_visual_picture_drawing_properties.rb +12 -0
  114. data/lib/openxml/drawingml/elements/non_visual_picture_properties.rb +10 -0
  115. data/lib/openxml/drawingml/elements/offset.rb +14 -0
  116. data/lib/openxml/drawingml/elements/outline.rb +36 -0
  117. data/lib/openxml/drawingml/elements/picture.rb +10 -0
  118. data/lib/openxml/drawingml/elements/preset_geometry.rb +210 -0
  119. data/lib/openxml/drawingml/elements/round.rb +10 -0
  120. data/lib/openxml/drawingml/elements/shape_guide.rb +40 -0
  121. data/lib/openxml/drawingml/elements/solid_fill.rb +10 -0
  122. data/lib/openxml/drawingml/elements/srgb_color.rb +14 -0
  123. data/lib/openxml/drawingml/elements/tail_end.rb +28 -0
  124. data/lib/openxml/drawingml/elements/transform_effect.rb +18 -0
  125. data/lib/openxml/drawingml/elements/wordprocessing_shape_group.rb +11 -0
  126. data/lib/openxml/vml.rb +17 -0
  127. data/lib/openxml/vml/elements.rb +13 -0
  128. data/lib/openxml/vml/elements/group.rb +88 -0
  129. data/lib/openxml/vml/elements/rectangle.rb +115 -0
  130. data/lib/openxml/vml/elements/rounded_rectangle.rb +121 -0
  131. data/openxml-docx.gemspec +1 -1
  132. data/spec/elements/absolute_position_tab_spec.rb +15 -47
  133. data/spec/elements/bidi_embed_spec.rb +4 -8
  134. data/spec/elements/bidi_override_spec.rb +4 -8
  135. data/spec/elements/break_spec.rb +8 -31
  136. data/spec/elements/content_part_spec.rb +2 -2
  137. data/spec/elements/control_spec.rb +6 -6
  138. data/spec/elements/deleted_text_spec.rb +2 -2
  139. data/spec/elements/drawing_spec.rb +11 -0
  140. data/spec/elements/drawingml/adjust_values_list_spec.rb +8 -0
  141. data/spec/elements/drawingml/blip_fill_spec.rb +34 -0
  142. data/spec/elements/drawingml/extension_list_spec.rb +8 -0
  143. data/spec/elements/drawingml/extension_spec.rb +19 -0
  144. data/spec/elements/drawingml/extents_spec.rb +33 -0
  145. data/spec/elements/drawingml/graphic_data_spec.rb +19 -0
  146. data/spec/elements/drawingml/graphic_frame_locks_spec.rb +78 -0
  147. data/spec/elements/drawingml/graphic_spec.rb +8 -0
  148. data/spec/elements/drawingml/head_end_spec.rb +45 -0
  149. data/spec/elements/drawingml/no_fill_spec.rb +8 -0
  150. data/spec/elements/drawingml/non_visual_drawing_properties_spec.rb +63 -0
  151. data/spec/elements/drawingml/non_visual_picture_drawing_properties_spec.rb +18 -0
  152. data/spec/elements/drawingml/non_visual_picture_properties_spec.rb +8 -0
  153. data/spec/elements/drawingml/offset_spec.rb +32 -0
  154. data/spec/elements/drawingml/outline_spec.rb +58 -0
  155. data/spec/elements/drawingml/picture_spec.rb +8 -0
  156. data/spec/elements/drawingml/preset_geometry_spec.rb +19 -0
  157. data/spec/elements/drawingml/round_spec.rb +8 -0
  158. data/spec/elements/drawingml/shape_guide_spec.rb +49 -0
  159. data/spec/elements/drawingml/solid_fill_spec.rb +8 -0
  160. data/spec/elements/drawingml/srgb_color_spec.rb +20 -0
  161. data/spec/elements/drawingml/tail_end_spec.rb +44 -0
  162. data/spec/elements/drawingml/transform_effect_spec.rb +80 -0
  163. data/spec/elements/drawingml/wordprocessing_shape_group_spec.rb +12 -0
  164. data/spec/elements/group_shape_spec.rb +11 -0
  165. data/spec/elements/markup_compatibility_alternate_content_spec.rb +11 -0
  166. data/spec/elements/markup_compatibility_choice_spec.rb +22 -0
  167. data/spec/elements/markup_compatibility_fallback_spec.rb +11 -0
  168. data/spec/elements/section_properties_spec.rb +12 -0
  169. data/spec/elements/symbol_spec.rb +4 -7
  170. data/spec/elements/text_spec.rb +2 -2
  171. data/spec/elements/vml/group_spec.rb +542 -0
  172. data/spec/elements/vml/rectangle_spec.rb +739 -0
  173. data/spec/elements/vml/rounded_rectangle_spec.rb +656 -0
  174. data/spec/elements/vml_container_spec.rb +11 -0
  175. data/spec/elements/word_processing_drawing_anchor_spec.rb +40 -0
  176. data/spec/elements/word_processing_drawing_effect_extent_spec.rb +57 -0
  177. data/spec/elements/word_processing_drawing_extent_spec.rb +34 -0
  178. data/spec/elements/word_processing_drawing_nv_graphic_frame_properties_spec.rb +11 -0
  179. data/spec/elements/word_processing_drawing_object_nv_properties_spec.rb +67 -0
  180. data/spec/elements/word_processing_drawing_position_h_spec.rb +21 -0
  181. data/spec/elements/word_processing_drawing_position_v_spec.rb +21 -0
  182. data/spec/elements/word_processing_drawing_simple_position_spec.rb +34 -0
  183. data/spec/elements/word_processing_drawing_wrap_none_spec.rb +12 -0
  184. data/spec/elements/word_processing_shapes_body_properties_spec.rb +223 -0
  185. data/spec/elements/word_processing_shapes_shape_properties_spec.rb +21 -0
  186. data/spec/elements/word_processing_shapes_shape_spec.rb +23 -0
  187. data/spec/parts/footer_spec.rb +33 -0
  188. data/spec/parts/header_spec.rb +33 -0
  189. data/spec/properties/footer_reference_spec.rb +32 -0
  190. data/spec/properties/header_reference_spec.rb +32 -0
  191. data/spec/properties/page_numbering_spec.rb +1 -1
  192. data/spec/properties/{table_cell_fit_text.rb → table_cell_fit_text_spec.rb} +0 -0
  193. data/spec/properties/{table_cell_width.rb → table_cell_width_spec.rb} +0 -0
  194. data/spec/properties/table_layout_spec.rb +14 -12
  195. data/spec/properties/{table_row_height.rb → table_row_height_spec.rb} +0 -0
  196. data/spec/section_spec.rb +2 -0
  197. data/spec/spec_helper.rb +2 -0
  198. data/spec/support/data/elements/grid_column_element.xml +1 -1
  199. data/spec/support/data/elements/table_grid_element.xml +1 -1
  200. data/spec/support/data/parts/document_with_children_part.xml +2 -1
  201. data/spec/support/data/parts/document_with_multiple_sections_part.xml +1 -1
  202. data/spec/support/data/parts/document_with_one_section_part.xml +1 -1
  203. data/spec/support/data/parts/empty_document_part.xml +1 -1
  204. data/spec/support/data/parts/empty_footer_part.xml +1 -0
  205. data/spec/support/data/parts/empty_header_part.xml +1 -0
  206. data/spec/support/data/parts/footer_with_children_part.xml +1 -0
  207. data/spec/support/data/parts/header_with_children_part.xml +1 -0
  208. data/spec/support/element_test_macros.rb +58 -9
  209. metadata +126 -9
  210. data/lib/openxml/docx/properties/tr_height.rb +0 -19
  211. data/lib/openxml/docx/properties/width_property.rb +0 -17
@@ -0,0 +1,21 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::WordProcessingShapesShapeProperties do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :spPr, name: "word_processing_shapes_shape_properties"
7
+
8
+ for_attribute(:bwMode) do
9
+ allowed = %i(auto black blackGray blackWhite clr gray grayWhite hidden invGray ltGray white)
10
+ with_values(allowed) do
11
+ it_should_assign_successfully
12
+ it_should_output_regular_xml
13
+ end
14
+
15
+ with_value(:notRight) do
16
+ it_should_raise_an_exception
17
+ end
18
+ end
19
+
20
+
21
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::WordProcessingShapesShape do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :wsp, name: "word_processing_shapes_shape"
7
+
8
+ with_no_attributes_set do
9
+ it_should_output "<wps:wsp/>", assign: false
10
+ end
11
+
12
+ for_attribute(:normalEastAsianFlow) do
13
+ with_value(true)do
14
+ it_should_assign_successfully
15
+ it_should_output_regular_xml
16
+ end
17
+
18
+ with_value("invalid") do
19
+ it_should_raise_an_exception
20
+ end
21
+ end
22
+
23
+ end
@@ -0,0 +1,33 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Parts::Footer do
4
+ include PartTestMacros
5
+
6
+ context "with child elements" do
7
+ before(:each) do
8
+ @doc = described_class.new
9
+ paragraph = OpenXml::Docx::Elements::Paragraph.new
10
+
11
+ first_run = OpenXml::Docx::Elements::Run.new
12
+ first_run << OpenXml::Docx::Elements::Text.new("This is just a test run.")
13
+ paragraph << first_run
14
+
15
+ second_run = OpenXml::Docx::Elements::Run.new
16
+ second_run << OpenXml::Docx::Elements::Text.new("But this isn't!")
17
+ paragraph << second_run
18
+
19
+ doc << paragraph
20
+ end
21
+
22
+ it_should_output_correct_xml part: "footer_with_children"
23
+ end
24
+
25
+ context "with no elements" do
26
+ before(:each) do
27
+ @doc = described_class.new
28
+ end
29
+
30
+ it_should_output_correct_xml part: "empty_footer"
31
+ end
32
+
33
+ end
@@ -0,0 +1,33 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Parts::Header do
4
+ include PartTestMacros
5
+
6
+ context "with child elements" do
7
+ before(:each) do
8
+ @doc = described_class.new
9
+ paragraph = OpenXml::Docx::Elements::Paragraph.new
10
+
11
+ first_run = OpenXml::Docx::Elements::Run.new
12
+ first_run << OpenXml::Docx::Elements::Text.new("This is just a test run.")
13
+ paragraph << first_run
14
+
15
+ second_run = OpenXml::Docx::Elements::Run.new
16
+ second_run << OpenXml::Docx::Elements::Text.new("But this isn't!")
17
+ paragraph << second_run
18
+
19
+ doc << paragraph
20
+ end
21
+
22
+ it_should_output_correct_xml part: "header_with_children"
23
+ end
24
+
25
+ context "with no elements" do
26
+ before(:each) do
27
+ @doc = described_class.new
28
+ end
29
+
30
+ it_should_output_correct_xml part: "empty_header"
31
+ end
32
+
33
+ end
@@ -0,0 +1,32 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::FooterReference do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :footerReference, name: "footer_reference"
7
+
8
+ for_attribute(:id) do
9
+ with_value("rId25") do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:footerReference r:id=\"rId25\"/>"
12
+ end
13
+
14
+ it_should_not_allow_invalid_value
15
+ it_should_not_allow_integers
16
+ end
17
+
18
+ for_attribute(:type) do
19
+ values = %i(default even first)
20
+ it_should_assign_and_output_xml values
21
+ it_should_not_allow_invalid_value
22
+ end
23
+
24
+ with_no_attributes_set do
25
+ it_should_output "", assign: false
26
+ end
27
+
28
+ with_these_attributes_set(id: "rId5", type: :default) do
29
+ it_should_output "<w:footerReference w:type=\"default\" r:id=\"rId5\"/>", assign: false
30
+ end
31
+
32
+ end
@@ -0,0 +1,32 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::HeaderReference do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :headerReference, name: "header_reference"
7
+
8
+ for_attribute(:id) do
9
+ with_value("rId25") do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:headerReference r:id=\"rId25\"/>"
12
+ end
13
+
14
+ it_should_not_allow_invalid_value
15
+ it_should_not_allow_integers
16
+ end
17
+
18
+ for_attribute(:type) do
19
+ values = %i(default even first)
20
+ it_should_assign_and_output_xml values
21
+ it_should_not_allow_invalid_value
22
+ end
23
+
24
+ with_no_attributes_set do
25
+ it_should_output "", assign: false
26
+ end
27
+
28
+ with_these_attributes_set(id: "rId5", type: :default) do
29
+ it_should_output "<w:headerReference w:type=\"default\" r:id=\"rId5\"/>", assign: false
30
+ end
31
+
32
+ end
@@ -48,7 +48,7 @@ describe OpenXml::Docx::Properties::PageNumbering do
48
48
  end
49
49
 
50
50
  with_these_attributes_set(chapter_separator: :colon, chapter_style: 1, format: :taiwaneseCountingThousand, start: 2) do
51
- it_should_output "<w:pgNumType w:chapSep=\"colon\" w:chapStyle=\"1\" w:fmt=\"taiwaneseCountingThousand\" w:start=\"2\"/>", assign: false
51
+ it_should_output "<w:pgNumType w:chapSep=\"colon\" w:chapStyle=\"1\" w:start=\"2\" w:fmt=\"taiwaneseCountingThousand\"/>", assign: false
52
52
  end
53
53
 
54
54
  end
@@ -1,22 +1,24 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe OpenXml::Docx::Properties::TableLayout do
4
- include ValuePropertyTestMacros
4
+ include PropertyTestMacros
5
5
 
6
- it_should_use tag: :tblLayout, name: "table_layout", value: :autofit
6
+ it_should_use tag: :tblLayout, name: "table_layout"
7
7
 
8
- with_value(:autofit) do
9
- it_should_work
10
- it_should_output "<w:tblLayout w:val=\"autofit\"/>"
11
- end
8
+ for_attribute(:type) do
9
+ with_value(:autofit) do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:tblLayout w:type=\"autofit\"/>"
12
+ end
12
13
 
13
- with_value(:fixed) do
14
- it_should_work
15
- it_should_output "<w:tblLayout w:val=\"fixed\"/>"
16
- end
14
+ with_value(:fixed) do
15
+ it_should_assign_successfully
16
+ it_should_output "<w:tblLayout w:type=\"fixed\"/>"
17
+ end
17
18
 
18
- with_value(:nope) do
19
- it_should_not_work
19
+ with_value(:nope) do
20
+ it_should_raise_an_exception
21
+ end
20
22
  end
21
23
 
22
24
  end
data/spec/section_spec.rb CHANGED
@@ -5,6 +5,8 @@ describe OpenXml::Docx::Section do
5
5
 
6
6
  it_should_have_property :columns
7
7
  it_should_have_property :document_grid
8
+ it_should_have_property :footer_reference
9
+ it_should_have_property :header_reference
8
10
  it_should_have_property :line_numbering
9
11
  it_should_have_property :page_margins
10
12
  it_should_have_property :page_borders
data/spec/spec_helper.rb CHANGED
@@ -11,4 +11,6 @@ require "simplecov"
11
11
  SimpleCov.start
12
12
 
13
13
  require "openxml/docx"
14
+ require "openxml/drawingml"
15
+ require "openxml/vml"
14
16
  require "nokogiri"
@@ -1,4 +1,4 @@
1
1
  <?xml version="1.0"?>
2
2
  <root xmlns:w="http://wnamespace.org">
3
- <w:gridColumn w:w="1"/>
3
+ <w:gridCol w:w="1"/>
4
4
  </root>
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0"?>
2
2
  <root xmlns:w="http://wnamespace.org">
3
3
  <w:tblGrid>
4
- <w:gridColumn w:w="1"/>
4
+ <w:gridCol w:w="1"/>
5
5
  </w:tblGrid>
6
6
  </root>
@@ -1 +1,2 @@
1
- <?xml version="1.0" encoding="utf-8"?><w:document xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="w14 wp14"><w:body><w:p><w:r><w:t>This is just a test run.</w:t></w:r><w:r><w:t>But this isn&apos;t!</w:t></w:r></w:p></w:body></w:document>
1
+ <?xml version="1.0" encoding="utf-8"?><w:document mc:Ignorable="w14 wp14 a14" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main" xmlns:pic="http://purl.oclc.org/ooxml/drawingml/main"><w:body><w:p><w:r><w:t>This is just a test run.</w:t></w:r><w:r><w:t>But this isn&apos;t!</w:t></w:r></w:p></w:body></w:document>
2
+
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <w:document xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="w14 wp14">
2
+ <w:document mc:Ignorable="w14 wp14 a14" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main" xmlns:pic="http://purl.oclc.org/ooxml/drawingml/main">
3
3
  <w:body>
4
4
  <w:p>
5
5
  <w:sectPr>
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <w:document xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="w14 wp14">
2
+ <w:document mc:Ignorable="w14 wp14 a14" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main" xmlns:pic="http://purl.oclc.org/ooxml/drawingml/main">
3
3
  <w:body>
4
4
  <w:p>
5
5
  <w:r>
@@ -1 +1 @@
1
- <?xml version="1.0" encoding="utf-8"?><w:document xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="w14 wp14"><w:body/></w:document>
1
+ <?xml version="1.0" encoding="utf-8"?><w:document mc:Ignorable="w14 wp14 a14" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main" xmlns:pic="http://purl.oclc.org/ooxml/drawingml/main"><w:body/></w:document>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="utf-8"?><w:ftr mc:Ignorable="w14 w15 wp14 a14" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main"/>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="utf-8"?><w:hdr mc:Ignorable="w14 w15 wp14 a14" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main"/>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="utf-8"?><w:ftr mc:Ignorable="w14 w15 wp14 a14" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main"><w:p><w:r><w:t>This is just a test run.</w:t></w:r><w:r><w:t>But this isn&apos;t!</w:t></w:r></w:p></w:ftr>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="utf-8"?><w:hdr mc:Ignorable="w14 w15 wp14 a14" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main"><w:p><w:r><w:t>This is just a test run.</w:t></w:r><w:r><w:t>But this isn&apos;t!</w:t></w:r></w:p></w:hdr>
@@ -6,7 +6,7 @@ module ElementTestMacros
6
6
 
7
7
  def xml(obj)
8
8
  doc = Nokogiri::XML::Builder.new do |xml|
9
- xml.root("xmlns:w" => "http://wnamespace.org") {
9
+ xml.root(root_namespaces) {
10
10
  obj.to_xml(xml)
11
11
  }
12
12
  end.to_xml
@@ -14,7 +14,7 @@ module ElementTestMacros
14
14
  end
15
15
 
16
16
  def doc_pattern
17
- /<\?xml\sversion="1.0"\?>\n<root xmlns:w="http:\/\/wnamespace.org">\n\s+([^\s].+)\n<\/root>/m
17
+ /<\?xml\sversion="1.0"\?>\n<root (?:xmlns:\w+=".+?".?)+>\n\s+([^\s].+)\n<\/root>/m
18
18
  end
19
19
 
20
20
  def self.included(base)
@@ -22,6 +22,30 @@ module ElementTestMacros
22
22
  base.extend ClassMethods
23
23
  end
24
24
 
25
+ def root_namespaces
26
+ { "xmlns:wpc" => 'http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas',
27
+ "xmlns:mo" => 'http://schemas.microsoft.com/office/mac/office/2008/main',
28
+ "xmlns:mv" => 'urn:schemas-microsoft-com:mac:vml',
29
+ "xmlns:o" => 'urn:schemas-microsoft-com:office:office',
30
+ "xmlns:r" => 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',
31
+ "xmlns:m" => 'http://schemas.openxmlformats.org/officeDocument/2006/math',
32
+ "xmlns:v" => 'urn:schemas-microsoft-com:vml',
33
+ "xmlns:wp14" => 'http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing',
34
+ "xmlns:wp" => 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing',
35
+ "xmlns:w10" => 'urn:schemas-microsoft-com:office:word',
36
+ "xmlns:w14" => 'http://schemas.microsoft.com/office/word/2010/wordml',
37
+ "xmlns:wpg" => 'http://schemas.microsoft.com/office/word/2010/wordprocessingGroup',
38
+ "xmlns:wpi" => 'http://schemas.microsoft.com/office/word/2010/wordprocessingInk',
39
+ "xmlns:wne" => 'http://schemas.microsoft.com/office/word/2006/wordml',
40
+ "xmlns:wps" => 'http://schemas.microsoft.com/office/word/2010/wordprocessingShape',
41
+ "xmlns:w" => "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
42
+ "xmlns:mc" => "http://schemas.openxmlformats.org/markup-compatibility/2006",
43
+ "xmlns:a" => "http://schemas.openxmlformats.org/drawingml/2006/main",
44
+ "xmlns:a14" => "http://schemas.microsoft.com/office/drawing/2010/main",
45
+ "xmlns:pic" => "http://purl.oclc.org/ooxml/drawingml/main",
46
+ "mc:Ignorable" => "w14 wp14 a14" }
47
+ end
48
+
25
49
  module ClassMethods
26
50
 
27
51
  def it_should_output_correct_xml(node_xml: nil)
@@ -61,25 +85,31 @@ module ElementTestMacros
61
85
  end
62
86
  end
63
87
 
64
- def for_attribute(attribute, &block)
88
+ def for_attribute(attribute, displays_as: nil, with_namespace: nil, &block)
65
89
  attribute_context = context "for the #{attribute} attribute" do
66
90
  before(:each) do
67
91
  @attribute = attribute
92
+ @display = displays_as
93
+ @namespace = with_namespace
68
94
  end
69
95
  end
70
96
 
71
97
  attribute_context.class_eval &block
72
98
  end
73
99
 
74
- def with_value(value, &block)
75
- value_context = context "with the value as #{value}" do
76
- before(:each) do
77
- @value = value
100
+ def with_value(values, &block)
101
+ values = [values] unless values.respond_to?(:each)
102
+ values.each do |value|
103
+ value_context = context "with the value as #{value}" do
104
+ before(:each) do
105
+ @value = value
106
+ end
78
107
  end
79
- end
80
108
 
81
- value_context.class_eval &block
109
+ value_context.class_eval &block
110
+ end
82
111
  end
112
+ alias :with_values :with_value
83
113
 
84
114
  def it_should_assign_successfully(*args)
85
115
  it "should assign successfully" do
@@ -110,6 +140,25 @@ module ElementTestMacros
110
140
  end
111
141
  end
112
142
 
143
+ def it_should_output_regular_xml(*args, assign: true)
144
+ it "should output the expected regular XML" do
145
+ @instance = described_class.new *args
146
+ if assign
147
+ instance.send "#{attribute}=", value
148
+ end
149
+
150
+ tag = instance.tag
151
+ tag = "#{instance.namespace}:#{tag}" unless instance.namespace.nil?
152
+ attr_name = @display
153
+ attr_name = attribute if attr_name.nil?
154
+ attr_name = "#{@namespace}:#{attr_name}" unless @namespace.nil?
155
+ expected_xml = "<#{tag} #{attr_name}=\"#{value}\"/>"
156
+ expected_xml = "<#{tag}/>" if value == false
157
+
158
+ expect(xml(instance)).to eq(expected_xml)
159
+ end
160
+ end
161
+
113
162
  def with_no_attributes_set(args: nil, &block)
114
163
  attribute_context = context "with no attributes set, it" do
115
164
  before(:each) do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openxml-docx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gene Doyel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-09 00:00:00.000000000 Z
11
+ date: 2015-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.2.1
33
+ version: 0.2.2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.2.1
40
+ version: 0.2.2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pry
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -137,6 +137,7 @@ files:
137
137
  - README.md
138
138
  - Rakefile
139
139
  - examples/base
140
+ - examples/drawing-ml
140
141
  - examples/table
141
142
  - lib/openxml-docx.rb
142
143
  - lib/openxml/docx.rb
@@ -152,12 +153,23 @@ files:
152
153
  - lib/openxml/docx/elements/control.rb
153
154
  - lib/openxml/docx/elements/deleted_text.rb
154
155
  - lib/openxml/docx/elements/dirty.rb
156
+ - lib/openxml/docx/elements/drawing.rb
155
157
  - lib/openxml/docx/elements/element.rb
158
+ - lib/openxml/docx/elements/embed_bold.rb
159
+ - lib/openxml/docx/elements/embed_bold_italic.rb
160
+ - lib/openxml/docx/elements/embed_italic.rb
161
+ - lib/openxml/docx/elements/embed_regular.rb
162
+ - lib/openxml/docx/elements/family.rb
163
+ - lib/openxml/docx/elements/font.rb
156
164
  - lib/openxml/docx/elements/grid_column.rb
165
+ - lib/openxml/docx/elements/group_shape.rb
157
166
  - lib/openxml/docx/elements/last_rendered_page_break.rb
158
167
  - lib/openxml/docx/elements/long_day.rb
159
168
  - lib/openxml/docx/elements/long_month.rb
160
169
  - lib/openxml/docx/elements/long_year.rb
170
+ - lib/openxml/docx/elements/markup_compatibility_alternate_content.rb
171
+ - lib/openxml/docx/elements/markup_compatibility_choice.rb
172
+ - lib/openxml/docx/elements/markup_compatibility_fallback.rb
161
173
  - lib/openxml/docx/elements/nonbreaking_hyphen.rb
162
174
  - lib/openxml/docx/elements/optional_hyphen.rb
163
175
  - lib/openxml/docx/elements/page_number.rb
@@ -165,6 +177,7 @@ files:
165
177
  - lib/openxml/docx/elements/paragraph.rb
166
178
  - lib/openxml/docx/elements/ruby.rb
167
179
  - lib/openxml/docx/elements/run.rb
180
+ - lib/openxml/docx/elements/section_properties.rb
168
181
  - lib/openxml/docx/elements/short_day.rb
169
182
  - lib/openxml/docx/elements/short_month.rb
170
183
  - lib/openxml/docx/elements/short_year.rb
@@ -175,9 +188,26 @@ files:
175
188
  - lib/openxml/docx/elements/table_grid.rb
176
189
  - lib/openxml/docx/elements/table_row.rb
177
190
  - lib/openxml/docx/elements/text.rb
191
+ - lib/openxml/docx/elements/vml_container.rb
192
+ - lib/openxml/docx/elements/word_processing_drawing_anchor.rb
193
+ - lib/openxml/docx/elements/word_processing_drawing_effect_extent.rb
194
+ - lib/openxml/docx/elements/word_processing_drawing_extent.rb
195
+ - lib/openxml/docx/elements/word_processing_drawing_nv_graphic_frame_properties.rb
196
+ - lib/openxml/docx/elements/word_processing_drawing_object_nv_properties.rb
197
+ - lib/openxml/docx/elements/word_processing_drawing_position_h.rb
198
+ - lib/openxml/docx/elements/word_processing_drawing_position_offset.rb
199
+ - lib/openxml/docx/elements/word_processing_drawing_position_v.rb
200
+ - lib/openxml/docx/elements/word_processing_drawing_simple_position.rb
201
+ - lib/openxml/docx/elements/word_processing_drawing_wrap_none.rb
202
+ - lib/openxml/docx/elements/word_processing_shapes_body_properties.rb
203
+ - lib/openxml/docx/elements/word_processing_shapes_shape.rb
204
+ - lib/openxml/docx/elements/word_processing_shapes_shape_properties.rb
178
205
  - lib/openxml/docx/package.rb
179
206
  - lib/openxml/docx/parts.rb
180
207
  - lib/openxml/docx/parts/document.rb
208
+ - lib/openxml/docx/parts/fonts.rb
209
+ - lib/openxml/docx/parts/footer.rb
210
+ - lib/openxml/docx/parts/header.rb
181
211
  - lib/openxml/docx/parts/settings.rb
182
212
  - lib/openxml/docx/parts/styles.rb
183
213
  - lib/openxml/docx/properties.rb
@@ -215,12 +245,14 @@ files:
215
245
  - lib/openxml/docx/properties/expansion.rb
216
246
  - lib/openxml/docx/properties/font.rb
217
247
  - lib/openxml/docx/properties/font_size.rb
248
+ - lib/openxml/docx/properties/footer_reference.rb
218
249
  - lib/openxml/docx/properties/form_protection.rb
219
250
  - lib/openxml/docx/properties/frame.rb
220
251
  - lib/openxml/docx/properties/grid_after.rb
221
252
  - lib/openxml/docx/properties/grid_before.rb
222
253
  - lib/openxml/docx/properties/grid_span.rb
223
254
  - lib/openxml/docx/properties/header.rb
255
+ - lib/openxml/docx/properties/header_reference.rb
224
256
  - lib/openxml/docx/properties/headers.rb
225
257
  - lib/openxml/docx/properties/hidden.rb
226
258
  - lib/openxml/docx/properties/hidden_style.rb
@@ -310,6 +342,7 @@ files:
310
342
  - lib/openxml/docx/properties/table_look.rb
311
343
  - lib/openxml/docx/properties/table_overlap.rb
312
344
  - lib/openxml/docx/properties/table_p_pr.rb
345
+ - lib/openxml/docx/properties/table_row_height.rb
313
346
  - lib/openxml/docx/properties/table_style.rb
314
347
  - lib/openxml/docx/properties/table_width.rb
315
348
  - lib/openxml/docx/properties/tabs.rb
@@ -317,7 +350,6 @@ files:
317
350
  - lib/openxml/docx/properties/text_direction.rb
318
351
  - lib/openxml/docx/properties/textbox_tight_wrap.rb
319
352
  - lib/openxml/docx/properties/toggle_property.rb
320
- - lib/openxml/docx/properties/tr_height.rb
321
353
  - lib/openxml/docx/properties/ui_priority.rb
322
354
  - lib/openxml/docx/properties/underline.rb
323
355
  - lib/openxml/docx/properties/unhide_when_used.rb
@@ -329,12 +361,43 @@ files:
329
361
  - lib/openxml/docx/properties/wbefore.rb
330
362
  - lib/openxml/docx/properties/web_hidden.rb
331
363
  - lib/openxml/docx/properties/widow_control.rb
332
- - lib/openxml/docx/properties/width_property.rb
333
364
  - lib/openxml/docx/properties/word_wrap.rb
334
365
  - lib/openxml/docx/property_builder.rb
366
+ - lib/openxml/docx/root_namespaces.rb
335
367
  - lib/openxml/docx/section.rb
336
368
  - lib/openxml/docx/style.rb
337
369
  - lib/openxml/docx/version.rb
370
+ - lib/openxml/drawingml.rb
371
+ - lib/openxml/drawingml/elements.rb
372
+ - lib/openxml/drawingml/elements/adjust_values_list.rb
373
+ - lib/openxml/drawingml/elements/blip_fill.rb
374
+ - lib/openxml/drawingml/elements/extension.rb
375
+ - lib/openxml/drawingml/elements/extension_list.rb
376
+ - lib/openxml/drawingml/elements/extents.rb
377
+ - lib/openxml/drawingml/elements/graphic.rb
378
+ - lib/openxml/drawingml/elements/graphic_data.rb
379
+ - lib/openxml/drawingml/elements/graphic_frame_locks.rb
380
+ - lib/openxml/drawingml/elements/head_end.rb
381
+ - lib/openxml/drawingml/elements/no_fill.rb
382
+ - lib/openxml/drawingml/elements/non_visual_drawing_properties.rb
383
+ - lib/openxml/drawingml/elements/non_visual_picture_drawing_properties.rb
384
+ - lib/openxml/drawingml/elements/non_visual_picture_properties.rb
385
+ - lib/openxml/drawingml/elements/offset.rb
386
+ - lib/openxml/drawingml/elements/outline.rb
387
+ - lib/openxml/drawingml/elements/picture.rb
388
+ - lib/openxml/drawingml/elements/preset_geometry.rb
389
+ - lib/openxml/drawingml/elements/round.rb
390
+ - lib/openxml/drawingml/elements/shape_guide.rb
391
+ - lib/openxml/drawingml/elements/solid_fill.rb
392
+ - lib/openxml/drawingml/elements/srgb_color.rb
393
+ - lib/openxml/drawingml/elements/tail_end.rb
394
+ - lib/openxml/drawingml/elements/transform_effect.rb
395
+ - lib/openxml/drawingml/elements/wordprocessing_shape_group.rb
396
+ - lib/openxml/vml.rb
397
+ - lib/openxml/vml/elements.rb
398
+ - lib/openxml/vml/elements/group.rb
399
+ - lib/openxml/vml/elements/rectangle.rb
400
+ - lib/openxml/vml/elements/rounded_rectangle.rb
338
401
  - openxml-docx.gemspec
339
402
  - spec/elements/absolute_position_tab_spec.rb
340
403
  - spec/elements/bidi_embed_spec.rb
@@ -345,17 +408,47 @@ files:
345
408
  - spec/elements/control_spec.rb
346
409
  - spec/elements/deleted_text_spec.rb
347
410
  - spec/elements/dirty_spec.rb
411
+ - spec/elements/drawing_spec.rb
412
+ - spec/elements/drawingml/adjust_values_list_spec.rb
413
+ - spec/elements/drawingml/blip_fill_spec.rb
414
+ - spec/elements/drawingml/extension_list_spec.rb
415
+ - spec/elements/drawingml/extension_spec.rb
416
+ - spec/elements/drawingml/extents_spec.rb
417
+ - spec/elements/drawingml/graphic_data_spec.rb
418
+ - spec/elements/drawingml/graphic_frame_locks_spec.rb
419
+ - spec/elements/drawingml/graphic_spec.rb
420
+ - spec/elements/drawingml/head_end_spec.rb
421
+ - spec/elements/drawingml/no_fill_spec.rb
422
+ - spec/elements/drawingml/non_visual_drawing_properties_spec.rb
423
+ - spec/elements/drawingml/non_visual_picture_drawing_properties_spec.rb
424
+ - spec/elements/drawingml/non_visual_picture_properties_spec.rb
425
+ - spec/elements/drawingml/offset_spec.rb
426
+ - spec/elements/drawingml/outline_spec.rb
427
+ - spec/elements/drawingml/picture_spec.rb
428
+ - spec/elements/drawingml/preset_geometry_spec.rb
429
+ - spec/elements/drawingml/round_spec.rb
430
+ - spec/elements/drawingml/shape_guide_spec.rb
431
+ - spec/elements/drawingml/solid_fill_spec.rb
432
+ - spec/elements/drawingml/srgb_color_spec.rb
433
+ - spec/elements/drawingml/tail_end_spec.rb
434
+ - spec/elements/drawingml/transform_effect_spec.rb
435
+ - spec/elements/drawingml/wordprocessing_shape_group_spec.rb
348
436
  - spec/elements/grid_column_spec.rb
437
+ - spec/elements/group_shape_spec.rb
349
438
  - spec/elements/last_rendered_page_break_spec.rb
350
439
  - spec/elements/long_day_spec.rb
351
440
  - spec/elements/long_month_spec.rb
352
441
  - spec/elements/long_year_spec.rb
442
+ - spec/elements/markup_compatibility_alternate_content_spec.rb
443
+ - spec/elements/markup_compatibility_choice_spec.rb
444
+ - spec/elements/markup_compatibility_fallback_spec.rb
353
445
  - spec/elements/nonbreaking_hyphen_spec.rb
354
446
  - spec/elements/optional_hyphen_spec.rb
355
447
  - spec/elements/page_number_spec.rb
356
448
  - spec/elements/paragraph_spec.rb
357
449
  - spec/elements/ruby_spec.rb
358
450
  - spec/elements/run_spec.rb
451
+ - spec/elements/section_properties_spec.rb
359
452
  - spec/elements/short_day_spec.rb
360
453
  - spec/elements/short_month_spec.rb
361
454
  - spec/elements/short_year_spec.rb
@@ -366,8 +459,26 @@ files:
366
459
  - spec/elements/table_row_spec.rb
367
460
  - spec/elements/table_spec.rb
368
461
  - spec/elements/text_spec.rb
462
+ - spec/elements/vml/group_spec.rb
463
+ - spec/elements/vml/rectangle_spec.rb
464
+ - spec/elements/vml/rounded_rectangle_spec.rb
465
+ - spec/elements/vml_container_spec.rb
466
+ - spec/elements/word_processing_drawing_anchor_spec.rb
467
+ - spec/elements/word_processing_drawing_effect_extent_spec.rb
468
+ - spec/elements/word_processing_drawing_extent_spec.rb
469
+ - spec/elements/word_processing_drawing_nv_graphic_frame_properties_spec.rb
470
+ - spec/elements/word_processing_drawing_object_nv_properties_spec.rb
471
+ - spec/elements/word_processing_drawing_position_h_spec.rb
472
+ - spec/elements/word_processing_drawing_position_v_spec.rb
473
+ - spec/elements/word_processing_drawing_simple_position_spec.rb
474
+ - spec/elements/word_processing_drawing_wrap_none_spec.rb
475
+ - spec/elements/word_processing_shapes_body_properties_spec.rb
476
+ - spec/elements/word_processing_shapes_shape_properties_spec.rb
477
+ - spec/elements/word_processing_shapes_shape_spec.rb
369
478
  - spec/package_spec.rb
370
479
  - spec/parts/document_spec.rb
480
+ - spec/parts/footer_spec.rb
481
+ - spec/parts/header_spec.rb
371
482
  - spec/parts/settings_spec.rb
372
483
  - spec/parts/styles_spec.rb
373
484
  - spec/properties/alignment_spec.rb
@@ -400,11 +511,13 @@ files:
400
511
  - spec/properties/expansion_spec.rb
401
512
  - spec/properties/font_size_spec.rb
402
513
  - spec/properties/font_spec.rb
514
+ - spec/properties/footer_reference_spec.rb
403
515
  - spec/properties/form_protection_spec.rb
404
516
  - spec/properties/frame_spec.rb
405
517
  - spec/properties/grid_after_spec.rb
406
518
  - spec/properties/grid_before_spec.rb
407
519
  - spec/properties/grid_span_spec.rb
520
+ - spec/properties/header_reference_spec.rb
408
521
  - spec/properties/header_spec.rb
409
522
  - spec/properties/headers_spec.rb
410
523
  - spec/properties/hidden_spec.rb
@@ -479,11 +592,11 @@ files:
479
592
  - spec/properties/table_cell_border_spec.rb
480
593
  - spec/properties/table_cell_borders_spec.rb
481
594
  - spec/properties/table_cell_cell_margin_spec.rb
482
- - spec/properties/table_cell_fit_text.rb
595
+ - spec/properties/table_cell_fit_text_spec.rb
483
596
  - spec/properties/table_cell_margin_spec.rb
484
597
  - spec/properties/table_cell_margins_spec.rb
485
598
  - spec/properties/table_cell_spacing_spec.rb
486
- - spec/properties/table_cell_width.rb
599
+ - spec/properties/table_cell_width_spec.rb
487
600
  - spec/properties/table_description_spec.rb
488
601
  - spec/properties/table_header_spec.rb
489
602
  - spec/properties/table_indent_spec.rb
@@ -491,7 +604,7 @@ files:
491
604
  - spec/properties/table_look_spec.rb
492
605
  - spec/properties/table_overlap_spec.rb
493
606
  - spec/properties/table_p_pr_spec.rb
494
- - spec/properties/table_row_height.rb
607
+ - spec/properties/table_row_height_spec.rb
495
608
  - spec/properties/table_style_spec.rb
496
609
  - spec/properties/table_width_spec.rb
497
610
  - spec/properties/tabs_spec.rb
@@ -529,7 +642,11 @@ files:
529
642
  - spec/support/data/parts/document_with_multiple_sections_part.xml
530
643
  - spec/support/data/parts/document_with_one_section_part.xml
531
644
  - spec/support/data/parts/empty_document_part.xml
645
+ - spec/support/data/parts/empty_footer_part.xml
646
+ - spec/support/data/parts/empty_header_part.xml
647
+ - spec/support/data/parts/footer_with_children_part.xml
532
648
  - spec/support/data/parts/global_rels_part.xml
649
+ - spec/support/data/parts/header_with_children_part.xml
533
650
  - spec/support/data/parts/rels_part.xml
534
651
  - spec/support/data/parts/settings_part.xml
535
652
  - spec/support/data/parts/styles_part.xml