class PdfEditor::RotatePage
Constants
- ROTATIONS
Attributes
page[R]
resource[R]
rotate[R]
Public Instance Methods
call()
click to toggle source
# File lib/pdf_editor/rotate_page.rb, line 26 def call if resource.nil? || page.nil? || rotate.nil? raise Errors::ArgumentMissingError, "resource: #{resource} \n page: #{page} \n rotate: #{rotate}" end PdfEditor::Resource.new( create_tempfile {run_command} ) end
post_init()
click to toggle source
# File lib/pdf_editor/rotate_page.rb, line 20 def post_init @resource = args.fetch(:resource, nil) @page = args.fetch(:page, nil) @rotate = ROTATIONS[args.fetch(:rotate, '')] end
Private Instance Methods
format_command()
click to toggle source
# File lib/pdf_editor/rotate_page.rb, line 52 def format_command page_count = get_page_count page_nums = Array(1..page_count) before_page = page_nums[0, page_nums.index(page)] first_page_after = page_nums.index(page+1) || page_nums.length after_page = page_nums[first_page_after, page_nums.length] result = [] result << {:pdf => resource.path, :start => before_page.first, :end => before_page.last} unless before_page.empty? result << {:pdf => resource.path, :start => page, :end => page, :orientation => rotate} result << {:pdf => resource.path, :start => after_page.first, :end => after_page.last} unless after_page.empty? result end
get_page_count()
click to toggle source
# File lib/pdf_editor/rotate_page.rb, line 44 def get_page_count page_count = resource.page_count if page_count == 0 || page > page_count raise Errors::PageRangeError, "Page #{page} does not exist. There are #{page_count} pages " end page_count end
run_command()
click to toggle source
# File lib/pdf_editor/rotate_page.rb, line 38 def run_command read_from_io do pdf_runner.cat(format_command) end end