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