ruby_pptx 0.1.0
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 +7 -0
- data/CHANGELOG.md +83 -0
- data/LICENSE +21 -0
- data/NOTICE +48 -0
- data/README.md +272 -0
- data/lib/ruby_pptx/action.rb +120 -0
- data/lib/ruby_pptx/autoshape_spec.rb +337 -0
- data/lib/ruby_pptx/builder.rb +228 -0
- data/lib/ruby_pptx/chart/categories.rb +208 -0
- data/lib/ruby_pptx/chart/chart.rb +443 -0
- data/lib/ruby_pptx/chart/combo.rb +230 -0
- data/lib/ruby_pptx/chart/data.rb +147 -0
- data/lib/ruby_pptx/chart/format.rb +647 -0
- data/lib/ruby_pptx/chart/workbook_writer.rb +212 -0
- data/lib/ruby_pptx/chart/xml_writer.rb +953 -0
- data/lib/ruby_pptx/chart/xy_data.rb +182 -0
- data/lib/ruby_pptx/core_ext.rb +12 -0
- data/lib/ruby_pptx/dml/color.rb +155 -0
- data/lib/ruby_pptx/dml/effect.rb +33 -0
- data/lib/ruby_pptx/dml/fill.rb +234 -0
- data/lib/ruby_pptx/element_proxy.rb +53 -0
- data/lib/ruby_pptx/enum/action.rb +46 -0
- data/lib/ruby_pptx/enum/base.rb +139 -0
- data/lib/ruby_pptx/enum/chart.rb +278 -0
- data/lib/ruby_pptx/enum/dml.rb +237 -0
- data/lib/ruby_pptx/enum/lang.rb +441 -0
- data/lib/ruby_pptx/enum/prog_id.rb +38 -0
- data/lib/ruby_pptx/enum/shapes.rb +514 -0
- data/lib/ruby_pptx/enum/text.rb +108 -0
- data/lib/ruby_pptx/errors.rb +15 -0
- data/lib/ruby_pptx/geometry.rb +89 -0
- data/lib/ruby_pptx/image.rb +347 -0
- data/lib/ruby_pptx/length.rb +120 -0
- data/lib/ruby_pptx/media.rb +64 -0
- data/lib/ruby_pptx/numeric_lengths.rb +30 -0
- data/lib/ruby_pptx/opc/constants.rb +205 -0
- data/lib/ruby_pptx/opc/oxml.rb +99 -0
- data/lib/ruby_pptx/opc/pack_uri.rb +146 -0
- data/lib/ruby_pptx/opc/package.rb +482 -0
- data/lib/ruby_pptx/opc/serialized.rb +229 -0
- data/lib/ruby_pptx/opc/spec.rb +37 -0
- data/lib/ruby_pptx/oxml/action.rb +43 -0
- data/lib/ruby_pptx/oxml/chart.rb +785 -0
- data/lib/ruby_pptx/oxml/content_model.rb +186 -0
- data/lib/ruby_pptx/oxml/core_properties.rb +145 -0
- data/lib/ruby_pptx/oxml/dml/color.rb +115 -0
- data/lib/ruby_pptx/oxml/dml/fill.rb +137 -0
- data/lib/ruby_pptx/oxml/element.rb +329 -0
- data/lib/ruby_pptx/oxml/ns.rb +115 -0
- data/lib/ruby_pptx/oxml/presentation.rb +110 -0
- data/lib/ruby_pptx/oxml/section.rb +65 -0
- data/lib/ruby_pptx/oxml/shapes/autoshape.rb +310 -0
- data/lib/ruby_pptx/oxml/shapes/groupshape.rb +217 -0
- data/lib/ruby_pptx/oxml/shapes/other.rb +405 -0
- data/lib/ruby_pptx/oxml/shapes/shared.rb +292 -0
- data/lib/ruby_pptx/oxml/simple_types.rb +563 -0
- data/lib/ruby_pptx/oxml/slide.rb +290 -0
- data/lib/ruby_pptx/oxml/table.rb +253 -0
- data/lib/ruby_pptx/oxml/text.rb +324 -0
- data/lib/ruby_pptx/oxml/theme.rb +93 -0
- data/lib/ruby_pptx/package.rb +139 -0
- data/lib/ruby_pptx/parts/chart.rb +75 -0
- data/lib/ruby_pptx/parts/core_properties.rb +40 -0
- data/lib/ruby_pptx/parts/embedded_package.rb +43 -0
- data/lib/ruby_pptx/parts/image.rb +55 -0
- data/lib/ruby_pptx/parts/media.rb +17 -0
- data/lib/ruby_pptx/parts/presentation.rb +79 -0
- data/lib/ruby_pptx/parts/slide.rb +221 -0
- data/lib/ruby_pptx/parts/theme.rb +26 -0
- data/lib/ruby_pptx/pattern_matching.rb +50 -0
- data/lib/ruby_pptx/presentation.rb +128 -0
- data/lib/ruby_pptx/refinements.rb +21 -0
- data/lib/ruby_pptx/section.rb +130 -0
- data/lib/ruby_pptx/shapes/adjustments.rb +83 -0
- data/lib/ruby_pptx/shapes/authoring.rb +110 -0
- data/lib/ruby_pptx/shapes/base.rb +138 -0
- data/lib/ruby_pptx/shapes/freeform.rb +141 -0
- data/lib/ruby_pptx/shapes/placeholder.rb +184 -0
- data/lib/ruby_pptx/shapes/shape.rb +337 -0
- data/lib/ruby_pptx/shapes/shape_tree.rb +634 -0
- data/lib/ruby_pptx/sliceable.rb +34 -0
- data/lib/ruby_pptx/slide.rb +430 -0
- data/lib/ruby_pptx/table.rb +316 -0
- data/lib/ruby_pptx/table_paging.rb +91 -0
- data/lib/ruby_pptx/templates/default.pptx +0 -0
- data/lib/ruby_pptx/templates/docx-icon.emf +0 -0
- data/lib/ruby_pptx/templates/generic-icon.emf +0 -0
- data/lib/ruby_pptx/templates/media-speaker.png +0 -0
- data/lib/ruby_pptx/templates/notes.xml +23 -0
- data/lib/ruby_pptx/templates/notesMaster.xml +352 -0
- data/lib/ruby_pptx/templates/pptx-icon.emf +0 -0
- data/lib/ruby_pptx/templates/slideMaster.xml +277 -0
- data/lib/ruby_pptx/templates/theme.xml +321 -0
- data/lib/ruby_pptx/templates/xlsx-icon.emf +0 -0
- data/lib/ruby_pptx/text/fitter.rb +72 -0
- data/lib/ruby_pptx/text/font_metrics.rb +221 -0
- data/lib/ruby_pptx/text/text.rb +393 -0
- data/lib/ruby_pptx/theme.rb +98 -0
- data/lib/ruby_pptx/version.rb +5 -0
- data/lib/ruby_pptx.rb +90 -0
- metadata +174 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Generated by tools/generate_opc_constants.py from python-pptx. Do not edit by hand.
|
|
4
|
+
|
|
5
|
+
require "ruby_pptx/opc/constants"
|
|
6
|
+
|
|
7
|
+
module Pptx
|
|
8
|
+
module Opc
|
|
9
|
+
# (extension, content-type) pairs that may be expressed as a
|
|
10
|
+
# <Default> element in [Content_Types].xml rather than an <Override>.
|
|
11
|
+
DEFAULT_CONTENT_TYPES = [
|
|
12
|
+
["bin", CONTENT_TYPE::PML_PRINTER_SETTINGS],
|
|
13
|
+
["bin", CONTENT_TYPE::SML_PRINTER_SETTINGS],
|
|
14
|
+
["bin", CONTENT_TYPE::WML_PRINTER_SETTINGS],
|
|
15
|
+
["bmp", CONTENT_TYPE::BMP],
|
|
16
|
+
["emf", CONTENT_TYPE::X_EMF],
|
|
17
|
+
["fntdata", CONTENT_TYPE::X_FONTDATA],
|
|
18
|
+
["gif", CONTENT_TYPE::GIF],
|
|
19
|
+
["jpe", CONTENT_TYPE::JPEG],
|
|
20
|
+
["jpeg", CONTENT_TYPE::JPEG],
|
|
21
|
+
["jpg", CONTENT_TYPE::JPEG],
|
|
22
|
+
["mov", CONTENT_TYPE::MOV],
|
|
23
|
+
["mp4", CONTENT_TYPE::MP4],
|
|
24
|
+
["mpg", CONTENT_TYPE::MPG],
|
|
25
|
+
["png", CONTENT_TYPE::PNG],
|
|
26
|
+
["rels", CONTENT_TYPE::OPC_RELATIONSHIPS],
|
|
27
|
+
["tif", CONTENT_TYPE::TIFF],
|
|
28
|
+
["tiff", CONTENT_TYPE::TIFF],
|
|
29
|
+
["vid", CONTENT_TYPE::VIDEO],
|
|
30
|
+
["wdp", CONTENT_TYPE::MS_PHOTO],
|
|
31
|
+
["wmf", CONTENT_TYPE::X_WMF],
|
|
32
|
+
["wmv", CONTENT_TYPE::WMV],
|
|
33
|
+
["xlsx", CONTENT_TYPE::SML_SHEET],
|
|
34
|
+
["xml", CONTENT_TYPE::XML]
|
|
35
|
+
].freeze
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "ruby_pptx/oxml/element"
|
|
4
|
+
require "ruby_pptx/oxml/content_model"
|
|
5
|
+
require "ruby_pptx/oxml/simple_types"
|
|
6
|
+
|
|
7
|
+
module Pptx
|
|
8
|
+
module Oxml
|
|
9
|
+
# `a:hlinkClick` and `a:hlinkHover`: what happens when a shape or run is
|
|
10
|
+
# clicked, or the pointer rests on it.
|
|
11
|
+
#
|
|
12
|
+
# An ordinary web link carries only `r:id`. Everything else PowerPoint can
|
|
13
|
+
# do on click -- jump to a slide, run a macro, open a file -- is encoded in
|
|
14
|
+
# an `action` attribute holding a `ppaction://` URL.
|
|
15
|
+
class CT_Hyperlink < Element
|
|
16
|
+
tag "a:hlinkClick", "a:hlinkHover"
|
|
17
|
+
optional_attr "r:id", type: SimpleTypes::XsdString, as: :rId
|
|
18
|
+
optional_attr "action", type: SimpleTypes::XsdString
|
|
19
|
+
|
|
20
|
+
ACTION_SCHEME = "ppaction://"
|
|
21
|
+
|
|
22
|
+
# The host part of the action URL, e.g. "hlinksldjump" in
|
|
23
|
+
# "ppaction://hlinksldjump". nil when this is a plain hyperlink.
|
|
24
|
+
def action_verb
|
|
25
|
+
url = action
|
|
26
|
+
return nil if url.nil?
|
|
27
|
+
|
|
28
|
+
url.split("?").first.delete_prefix(ACTION_SCHEME)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# The query of the action URL as a hash, e.g. {"jump" => "nextslide"}.
|
|
32
|
+
def action_fields
|
|
33
|
+
url = action
|
|
34
|
+
return {} if url.nil?
|
|
35
|
+
|
|
36
|
+
_host, query = url.split("?", 2)
|
|
37
|
+
return {} if query.nil? || query.empty?
|
|
38
|
+
|
|
39
|
+
query.split("&").to_h { |pair| pair.split("=", 2) }
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|