giga-fast-kit 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.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/giga-fast-kit.gemspec +12 -0
  3. data/prawn-2.5.0/COPYING +2 -0
  4. data/prawn-2.5.0/GPLv2 +339 -0
  5. data/prawn-2.5.0/GPLv3 +674 -0
  6. data/prawn-2.5.0/LICENSE +56 -0
  7. data/prawn-2.5.0/data/fonts/Courier-Bold.afm +342 -0
  8. data/prawn-2.5.0/data/fonts/Courier-BoldOblique.afm +342 -0
  9. data/prawn-2.5.0/data/fonts/Courier-Oblique.afm +342 -0
  10. data/prawn-2.5.0/data/fonts/Courier.afm +342 -0
  11. data/prawn-2.5.0/data/fonts/Helvetica-Bold.afm +2827 -0
  12. data/prawn-2.5.0/data/fonts/Helvetica-BoldOblique.afm +2827 -0
  13. data/prawn-2.5.0/data/fonts/Helvetica-Oblique.afm +3051 -0
  14. data/prawn-2.5.0/data/fonts/Helvetica.afm +3051 -0
  15. data/prawn-2.5.0/data/fonts/MustRead.html +19 -0
  16. data/prawn-2.5.0/data/fonts/Symbol.afm +213 -0
  17. data/prawn-2.5.0/data/fonts/Times-Bold.afm +2588 -0
  18. data/prawn-2.5.0/data/fonts/Times-BoldItalic.afm +2384 -0
  19. data/prawn-2.5.0/data/fonts/Times-Italic.afm +2667 -0
  20. data/prawn-2.5.0/data/fonts/Times-Roman.afm +2419 -0
  21. data/prawn-2.5.0/data/fonts/ZapfDingbats.afm +225 -0
  22. data/prawn-2.5.0/lib/prawn/document/bounding_box.rb +625 -0
  23. data/prawn-2.5.0/lib/prawn/document/column_box.rb +177 -0
  24. data/prawn-2.5.0/lib/prawn/document/internals.rb +76 -0
  25. data/prawn-2.5.0/lib/prawn/document/span.rb +65 -0
  26. data/prawn-2.5.0/lib/prawn/document.rb +846 -0
  27. data/prawn-2.5.0/lib/prawn/encoding.rb +85 -0
  28. data/prawn-2.5.0/lib/prawn/errors.rb +73 -0
  29. data/prawn-2.5.0/lib/prawn/font.rb +567 -0
  30. data/prawn-2.5.0/lib/prawn/font_metric_cache.rb +50 -0
  31. data/prawn-2.5.0/lib/prawn/fonts/afm.rb +332 -0
  32. data/prawn-2.5.0/lib/prawn/fonts/dfont.rb +42 -0
  33. data/prawn-2.5.0/lib/prawn/fonts/otf.rb +14 -0
  34. data/prawn-2.5.0/lib/prawn/fonts/to_unicode_cmap.rb +151 -0
  35. data/prawn-2.5.0/lib/prawn/fonts/ttc.rb +41 -0
  36. data/prawn-2.5.0/lib/prawn/fonts/ttf.rb +615 -0
  37. data/prawn-2.5.0/lib/prawn/fonts.rb +14 -0
  38. data/prawn-2.5.0/lib/prawn/graphics/blend_mode.rb +62 -0
  39. data/prawn-2.5.0/lib/prawn/graphics/cap_style.rb +44 -0
  40. data/prawn-2.5.0/lib/prawn/graphics/color.rb +257 -0
  41. data/prawn-2.5.0/lib/prawn/graphics/dash.rb +123 -0
  42. data/prawn-2.5.0/lib/prawn/graphics/join_style.rb +60 -0
  43. data/prawn-2.5.0/lib/prawn/graphics/patterns.rb +389 -0
  44. data/prawn-2.5.0/lib/prawn/graphics/transformation.rb +172 -0
  45. data/prawn-2.5.0/lib/prawn/graphics/transparency.rb +79 -0
  46. data/prawn-2.5.0/lib/prawn/graphics.rb +791 -0
  47. data/prawn-2.5.0/lib/prawn/grid.rb +449 -0
  48. data/prawn-2.5.0/lib/prawn/image_handler.rb +61 -0
  49. data/prawn-2.5.0/lib/prawn/images/image.rb +48 -0
  50. data/prawn-2.5.0/lib/prawn/images/jpg.rb +121 -0
  51. data/prawn-2.5.0/lib/prawn/images/png.rb +383 -0
  52. data/prawn-2.5.0/lib/prawn/images.rb +195 -0
  53. data/prawn-2.5.0/lib/prawn/measurement_extensions.rb +82 -0
  54. data/prawn-2.5.0/lib/prawn/measurements.rb +129 -0
  55. data/prawn-2.5.0/lib/prawn/outline.rb +316 -0
  56. data/prawn-2.5.0/lib/prawn/repeater.rb +140 -0
  57. data/prawn-2.5.0/lib/prawn/security/arcfour.rb +54 -0
  58. data/prawn-2.5.0/lib/prawn/security.rb +308 -0
  59. data/prawn-2.5.0/lib/prawn/soft_mask.rb +105 -0
  60. data/prawn-2.5.0/lib/prawn/stamp.rb +147 -0
  61. data/prawn-2.5.0/lib/prawn/text/box.rb +192 -0
  62. data/prawn-2.5.0/lib/prawn/text/formatted/arranger.rb +396 -0
  63. data/prawn-2.5.0/lib/prawn/text/formatted/box.rb +725 -0
  64. data/prawn-2.5.0/lib/prawn/text/formatted/fragment.rb +373 -0
  65. data/prawn-2.5.0/lib/prawn/text/formatted/line_wrap.rb +335 -0
  66. data/prawn-2.5.0/lib/prawn/text/formatted/parser.rb +284 -0
  67. data/prawn-2.5.0/lib/prawn/text/formatted/wrap.rb +166 -0
  68. data/prawn-2.5.0/lib/prawn/text/formatted.rb +82 -0
  69. data/prawn-2.5.0/lib/prawn/text.rb +701 -0
  70. data/prawn-2.5.0/lib/prawn/transformation_stack.rb +63 -0
  71. data/prawn-2.5.0/lib/prawn/utilities.rb +34 -0
  72. data/prawn-2.5.0/lib/prawn/version.rb +6 -0
  73. data/prawn-2.5.0/lib/prawn/view.rb +116 -0
  74. data/prawn-2.5.0/lib/prawn.rb +83 -0
  75. metadata +114 -0
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'matrix'
4
+
5
+ module Prawn
6
+ # Stores the transformations that have been applied to the document.
7
+ # @private
8
+ module TransformationStack
9
+ # rubocop: disable Metrics/ParameterLists, Naming/MethodParameterName
10
+
11
+ # Add transformation to the stack.
12
+ #
13
+ # @param a [Number]
14
+ # @param b [Number]
15
+ # @param c [Number]
16
+ # @param d [Number]
17
+ # @param e [Number]
18
+ # @param f [Number]
19
+ # @return [void]
20
+ def add_to_transformation_stack(a, b, c, d, e, f)
21
+ @transformation_stack ||= [[]]
22
+ @transformation_stack.last.push([a, b, c, d, e, f].map { |i| Float(i) })
23
+ end
24
+
25
+ # Save transformation stack.
26
+ #
27
+ # @return [void]
28
+ def save_transformation_stack
29
+ @transformation_stack ||= [[]]
30
+ @transformation_stack.push(@transformation_stack.last.dup)
31
+ end
32
+
33
+ # Restore previous transformation.
34
+ #
35
+ # Effectively pops the last transformation off of the transformation stack.
36
+ #
37
+ # @return [void]
38
+ def restore_transformation_stack
39
+ @transformation_stack&.pop
40
+ end
41
+
42
+ # Get current transformation matrix. It's a result of multiplication of the
43
+ # whole transformation stack with additional translation.
44
+ #
45
+ # @param x [Number]
46
+ # @param y [Number]
47
+ # @return [Array(Number, Number, Number, Number, Number, Number)]
48
+ def current_transformation_matrix_with_translation(x = 0, y = 0)
49
+ transformations = (@transformation_stack || [[]]).last
50
+
51
+ matrix = Matrix.identity(3)
52
+
53
+ transformations.each do |a, b, c, d, e, f|
54
+ matrix *= Matrix[[a, c, e], [b, d, f], [0, 0, 1]]
55
+ end
56
+
57
+ matrix *= Matrix[[1, 0, x], [0, 1, y], [0, 0, 1]]
58
+
59
+ matrix.to_a[0..1].transpose.flatten
60
+ end
61
+ # rubocop: enable Metrics/ParameterLists, Naming/MethodParameterName
62
+ end
63
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Prawn
4
+ # Throughout the Prawn codebase, repeated calculations which can benefit from
5
+ # caching are made. n some cases, caching and reusing results can not only
6
+ # save CPU cycles but also greatly reduce memory requirements But at the same
7
+ # time, we don't want to throw away thread safety.
8
+ # @private
9
+ class SynchronizedCache
10
+ # As an optimization, this could access the hash directly on VMs with
11
+ # a global interpreter lock (like MRI).
12
+ def initialize
13
+ @cache = {}
14
+ @mutex = Mutex.new
15
+ end
16
+
17
+ # Get cache entry.
18
+ #
19
+ # @param key [any]
20
+ # @return [any]
21
+ def [](key)
22
+ @mutex.synchronize { @cache[key] }
23
+ end
24
+
25
+ # Set cache entry.
26
+ #
27
+ # @param key [any]
28
+ # @param value [any]
29
+ # @return [void]
30
+ def []=(key, value)
31
+ @mutex.synchronize { @cache[key] = value }
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Prawn
4
+ # Prawn versions
5
+ VERSION = '2.5.0'
6
+ end
@@ -0,0 +1,116 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Prawn
4
+ # This mixin allows you to create modular Prawn code without the
5
+ # need to create subclasses of {Prawn::Document}.
6
+ #
7
+ # ```ruby
8
+ # class Greeter
9
+ # include Prawn::View
10
+ #
11
+ # # Optional override: allows you to set document options or even use
12
+ # # a custom document class
13
+ # def document
14
+ # @document ||= Prawn::Document.new(page_size: 'A4')
15
+ # end
16
+ #
17
+ # def initialize(name)
18
+ # @name = name
19
+ # end
20
+ #
21
+ # def say_hello
22
+ # text "Hello, #{@name}!"
23
+ # end
24
+ #
25
+ # def say_goodbye
26
+ # font("Courier") do
27
+ # text "Goodbye, #{@name}!"
28
+ # end
29
+ # end
30
+ # end
31
+ #
32
+ # greeter = Greeter.new("Gregory")
33
+ #
34
+ # greeter.say_hello
35
+ # greeter.say_goodbye
36
+ #
37
+ # greeter.save_as("greetings.pdf")
38
+ # ```
39
+ #
40
+ # The short story about why you should use this mixin rather than creating
41
+ # subclasses of `Prawn::Document` is that it helps prevent accidental
42
+ # conflicts between your code and Prawn's code.
43
+ #
44
+ # Here's the slightly longer story...
45
+ #
46
+ # By using composition rather than inheritance under the hood, this mixin
47
+ # allows you to keep your state separate from `Prawn::Document`'s state, and
48
+ # also will prevent unexpected method name collisions due to late binding
49
+ # effects.
50
+ #
51
+ # This mixin is mostly meant for extending Prawn's functionality with your own
52
+ # additions, but you can also use it to replace or wrap existing Prawn
53
+ # methods. Calling `super` will still work as expected, and alternatively you
54
+ # can explicitly call `document.some_method` to delegate to Prawn where
55
+ # needed.
56
+ module View
57
+ # @group Experimental API
58
+
59
+ # Lazily instantiates a `Prawn::Document` object.
60
+ #
61
+ # You can also redefine this method in your own classes to use
62
+ # a custom document class.
63
+ #
64
+ # @return [Prawn::Dcoument]
65
+ def document
66
+ @document ||= Prawn::Document.new
67
+ end
68
+
69
+ # Delegates all unhandled calls to object returned by {document} method.
70
+ #
71
+ # @param method_name [Symbol]
72
+ # @param args [Array] Positional arguments.
73
+ # @param kwargs [Hash] Keyword arguments.
74
+ # @param block [Proc]
75
+ def method_missing(method_name, *args, **kwargs, &block)
76
+ return super unless document.respond_to?(method_name)
77
+
78
+ document.public_send(method_name, *args, **kwargs, &block)
79
+ end
80
+
81
+ # Does this object respond to the specified message?
82
+ #
83
+ # @param method_name [Symbol]
84
+ # @param _include_all [Boolean]
85
+ # @return [Boolean]
86
+ def respond_to_missing?(method_name, _include_all = false)
87
+ document.respond_to?(method_name) || super
88
+ end
89
+
90
+ # Syntactic sugar that uses `instance_eval` under the hood to provide
91
+ # a block-based DSL.
92
+ #
93
+ # @example
94
+ # greeter.update do
95
+ # say_hello
96
+ # say_goodbye
97
+ # end
98
+ #
99
+ # @yield
100
+ # @return [void]
101
+ def update(&block)
102
+ instance_eval(&block)
103
+ end
104
+
105
+ # Syntatic sugar that calls `document.render_file` under the hood.
106
+ #
107
+ # @example
108
+ # greeter.save_as("greetings.pdf")
109
+ #
110
+ # @param filename [String]
111
+ # @return [void]
112
+ def save_as(filename)
113
+ document.render_file(filename)
114
+ end
115
+ end
116
+ end
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'set'
4
+
5
+ require 'ttfunk'
6
+ require 'pdf/core'
7
+
8
+ # Welcome to Prawn, the best PDF Generation library ever.
9
+ # This documentation covers user level functionality.
10
+ module Prawn
11
+ file = __FILE__
12
+ file = File.readlink(file) if File.symlink?(file)
13
+ dir = File.dirname(file)
14
+
15
+ # The base source directory for Prawn as installed on the system.
16
+ BASEDIR = File.expand_path(File.join(dir, '..'))
17
+
18
+ # Directory where Prawn keeps its data files.
19
+ DATADIR = File.expand_path(File.join(dir, '..', 'data'))
20
+
21
+ # @deprecated This is not used any more.
22
+ FLOAT_PRECISION = 1.0e-9
23
+
24
+ # When set to `true`, Prawn will verify hash options to ensure only valid keys
25
+ # are used. Off by default.
26
+ #
27
+ # Example:
28
+ #
29
+ # ```shell
30
+ # >> Prawn::Document.new(:tomato => "Juicy")
31
+ # Prawn::Errors::UnknownOption:
32
+ # Detected unknown option(s): [:tomato]
33
+ # Accepted options are: [:page_size, :page_layout, :left_margin, ...]
34
+ # ```
35
+ #
36
+ # @private
37
+ # @return [Boolean]
38
+ attr_accessor :debug
39
+
40
+ module_function :debug, :debug=
41
+
42
+ module_function
43
+
44
+ # @private
45
+ # @param accepted [Array<Symbol>] list of valid options
46
+ # @param actual [Hash<Symbol, any>] opetions hash to validate
47
+ # @return [void]
48
+ # @raise [Prawn::Errors::UnknownOption]
49
+ # @yield
50
+ def verify_options(accepted, actual)
51
+ return unless debug || $DEBUG
52
+
53
+ unless (act = Set[*actual.keys]).subset?(acc = Set[*accepted])
54
+ raise Prawn::Errors::UnknownOption,
55
+ "\nDetected unknown option(s): #{(act - acc).to_a.inspect}\nAccepted options are: #{accepted.inspect}"
56
+ end
57
+ yield if block_given?
58
+ end
59
+ end
60
+
61
+ require_relative 'prawn/version'
62
+
63
+ require_relative 'prawn/errors'
64
+
65
+ require_relative 'prawn/image_handler'
66
+ require_relative 'prawn/utilities'
67
+ require_relative 'prawn/text'
68
+ require_relative 'prawn/graphics'
69
+ require_relative 'prawn/images'
70
+ require_relative 'prawn/images/image'
71
+ require_relative 'prawn/images/jpg'
72
+ require_relative 'prawn/images/png'
73
+ require_relative 'prawn/stamp'
74
+ require_relative 'prawn/soft_mask'
75
+ require_relative 'prawn/security'
76
+ require_relative 'prawn/transformation_stack'
77
+ require_relative 'prawn/document'
78
+ require_relative 'prawn/font'
79
+ require_relative 'prawn/measurements'
80
+ require_relative 'prawn/repeater'
81
+ require_relative 'prawn/outline'
82
+ require_relative 'prawn/grid'
83
+ require_relative 'prawn/view'
metadata ADDED
@@ -0,0 +1,114 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: giga-fast-kit
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Andrey78
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 2026-07-06 00:00:00.000000000 Z
11
+ dependencies: []
12
+ description: University research based on prawn
13
+ email:
14
+ - cakoc614@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - giga-fast-kit.gemspec
20
+ - prawn-2.5.0/COPYING
21
+ - prawn-2.5.0/GPLv2
22
+ - prawn-2.5.0/GPLv3
23
+ - prawn-2.5.0/LICENSE
24
+ - prawn-2.5.0/data/fonts/Courier-Bold.afm
25
+ - prawn-2.5.0/data/fonts/Courier-BoldOblique.afm
26
+ - prawn-2.5.0/data/fonts/Courier-Oblique.afm
27
+ - prawn-2.5.0/data/fonts/Courier.afm
28
+ - prawn-2.5.0/data/fonts/Helvetica-Bold.afm
29
+ - prawn-2.5.0/data/fonts/Helvetica-BoldOblique.afm
30
+ - prawn-2.5.0/data/fonts/Helvetica-Oblique.afm
31
+ - prawn-2.5.0/data/fonts/Helvetica.afm
32
+ - prawn-2.5.0/data/fonts/MustRead.html
33
+ - prawn-2.5.0/data/fonts/Symbol.afm
34
+ - prawn-2.5.0/data/fonts/Times-Bold.afm
35
+ - prawn-2.5.0/data/fonts/Times-BoldItalic.afm
36
+ - prawn-2.5.0/data/fonts/Times-Italic.afm
37
+ - prawn-2.5.0/data/fonts/Times-Roman.afm
38
+ - prawn-2.5.0/data/fonts/ZapfDingbats.afm
39
+ - prawn-2.5.0/lib/prawn.rb
40
+ - prawn-2.5.0/lib/prawn/document.rb
41
+ - prawn-2.5.0/lib/prawn/document/bounding_box.rb
42
+ - prawn-2.5.0/lib/prawn/document/column_box.rb
43
+ - prawn-2.5.0/lib/prawn/document/internals.rb
44
+ - prawn-2.5.0/lib/prawn/document/span.rb
45
+ - prawn-2.5.0/lib/prawn/encoding.rb
46
+ - prawn-2.5.0/lib/prawn/errors.rb
47
+ - prawn-2.5.0/lib/prawn/font.rb
48
+ - prawn-2.5.0/lib/prawn/font_metric_cache.rb
49
+ - prawn-2.5.0/lib/prawn/fonts.rb
50
+ - prawn-2.5.0/lib/prawn/fonts/afm.rb
51
+ - prawn-2.5.0/lib/prawn/fonts/dfont.rb
52
+ - prawn-2.5.0/lib/prawn/fonts/otf.rb
53
+ - prawn-2.5.0/lib/prawn/fonts/to_unicode_cmap.rb
54
+ - prawn-2.5.0/lib/prawn/fonts/ttc.rb
55
+ - prawn-2.5.0/lib/prawn/fonts/ttf.rb
56
+ - prawn-2.5.0/lib/prawn/graphics.rb
57
+ - prawn-2.5.0/lib/prawn/graphics/blend_mode.rb
58
+ - prawn-2.5.0/lib/prawn/graphics/cap_style.rb
59
+ - prawn-2.5.0/lib/prawn/graphics/color.rb
60
+ - prawn-2.5.0/lib/prawn/graphics/dash.rb
61
+ - prawn-2.5.0/lib/prawn/graphics/join_style.rb
62
+ - prawn-2.5.0/lib/prawn/graphics/patterns.rb
63
+ - prawn-2.5.0/lib/prawn/graphics/transformation.rb
64
+ - prawn-2.5.0/lib/prawn/graphics/transparency.rb
65
+ - prawn-2.5.0/lib/prawn/grid.rb
66
+ - prawn-2.5.0/lib/prawn/image_handler.rb
67
+ - prawn-2.5.0/lib/prawn/images.rb
68
+ - prawn-2.5.0/lib/prawn/images/image.rb
69
+ - prawn-2.5.0/lib/prawn/images/jpg.rb
70
+ - prawn-2.5.0/lib/prawn/images/png.rb
71
+ - prawn-2.5.0/lib/prawn/measurement_extensions.rb
72
+ - prawn-2.5.0/lib/prawn/measurements.rb
73
+ - prawn-2.5.0/lib/prawn/outline.rb
74
+ - prawn-2.5.0/lib/prawn/repeater.rb
75
+ - prawn-2.5.0/lib/prawn/security.rb
76
+ - prawn-2.5.0/lib/prawn/security/arcfour.rb
77
+ - prawn-2.5.0/lib/prawn/soft_mask.rb
78
+ - prawn-2.5.0/lib/prawn/stamp.rb
79
+ - prawn-2.5.0/lib/prawn/text.rb
80
+ - prawn-2.5.0/lib/prawn/text/box.rb
81
+ - prawn-2.5.0/lib/prawn/text/formatted.rb
82
+ - prawn-2.5.0/lib/prawn/text/formatted/arranger.rb
83
+ - prawn-2.5.0/lib/prawn/text/formatted/box.rb
84
+ - prawn-2.5.0/lib/prawn/text/formatted/fragment.rb
85
+ - prawn-2.5.0/lib/prawn/text/formatted/line_wrap.rb
86
+ - prawn-2.5.0/lib/prawn/text/formatted/parser.rb
87
+ - prawn-2.5.0/lib/prawn/text/formatted/wrap.rb
88
+ - prawn-2.5.0/lib/prawn/transformation_stack.rb
89
+ - prawn-2.5.0/lib/prawn/utilities.rb
90
+ - prawn-2.5.0/lib/prawn/version.rb
91
+ - prawn-2.5.0/lib/prawn/view.rb
92
+ homepage: https://rubygems.org/profiles/Andrey78
93
+ licenses:
94
+ - MIT
95
+ metadata:
96
+ source_code_uri: https://github.com/Andrey78/giga-fast-kit
97
+ rdoc_options: []
98
+ require_paths:
99
+ - lib
100
+ required_ruby_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ requirements: []
111
+ rubygems_version: 3.6.2
112
+ specification_version: 4
113
+ summary: Research test
114
+ test_files: []