Class: RoadForest::MediaType::RDFaWriter::RenderEnvironment

Inherits:
Object
  • Object
show all
Defined in:
lib/roadforest/content-handling/type-handlers/rdfa-writer/render-environment.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(engine) ⇒ RenderEnvironment

Returns a new instance of RenderEnvironment.



7
8
9
# File 'lib/roadforest/content-handling/type-handlers/rdfa-writer/render-environment.rb', line 7

def initialize(engine)
  @_engine = engine
end

Instance Attribute Details

#heading_predicatesObject

Returns the value of attribute heading_predicates.



5
6
7
# File 'lib/roadforest/content-handling/type-handlers/rdfa-writer/render-environment.rb', line 5

def heading_predicates
  @heading_predicates
end

#langObject

Returns the value of attribute lang.



5
6
7
# File 'lib/roadforest/content-handling/type-handlers/rdfa-writer/render-environment.rb', line 5

def lang
  @lang
end

Instance Method Details

#add_debug(msg = nil, &block) ⇒ Object



11
12
13
# File 'lib/roadforest/content-handling/type-handlers/rdfa-writer/render-environment.rb', line 11

def add_debug(msg = nil, &block)
  @_engine.add_debug(msg, &block)
end

#escape_entities(str) ⇒ String

Haml rendering helper. Escape entities to avoid whitespace issues.

# In addtion to “&<>, encode n and r to ensure that whitespace is properly preserved

Parameters:

  • str (String)

Returns:

  • (String)

    Entity-encoded string



139
140
141
# File 'lib/roadforest/content-handling/type-handlers/rdfa-writer/render-environment.rb', line 139

def escape_entities(str)
  CGI.escapeHTML(str).gsub(/[\n\r]/) {|c| '&#x' + c.unpack('h').first + ';'}
end

#get_content(literal) ⇒ String?

Haml rendering helper. Data to be added to a @content value

Parameters:

  • literal (RDF::Literal)

Returns:

  • (String, nil)

Raises:

  • (RDF::WriterError)


82
83
84
85
86
87
88
# File 'lib/roadforest/content-handling/type-handlers/rdfa-writer/render-environment.rb', line 82

def get_content(literal)
  raise RDF::WriterError, "Getting content for #{literal.inspect}, which must be a literal" unless literal.is_a?(RDF::Literal)
  case literal
  when RDF::Literal::Date, RDF::Literal::Time, RDF::Literal::DateTime
    literal.to_s
  end
end

#get_curie(resource) ⇒ String

rendering helper. Return appropriate, term, CURIE or URI for the given resource.

Parameters:

  • resource (RDF::Value)

Returns:

  • (String)

    value to use to identify URI

Raises:

  • (RDF::WriterError)


127
128
129
# File 'lib/roadforest/content-handling/type-handlers/rdfa-writer/render-environment.rb', line 127

def get_curie(resource)
  @_engine.get_curie(resource)
end

#get_dt_curie(literal) ⇒ String?

Haml rendering helper. Return CURIE for the literal datatype, if the literal is a typed literal.

Parameters:

  • literal (RDF::Resource)

Returns:

  • (String, nil)

Raises:

  • (RDF::WriterError)


62
63
64
65
# File 'lib/roadforest/content-handling/type-handlers/rdfa-writer/render-environment.rb', line 62

def get_dt_curie(literal)
  raise RDF::WriterError, "Getting datatype CURIE for #{literal.inspect}, which must be a literal" unless literal.is_a?(RDF::Literal)
  get_curie(literal.datatype) if literal.literal? && literal.datatype?
end

#get_lang(literal) ⇒ Symbol?

Haml rendering helper. Return language for plain literal, if there is no language, or it is the same as the document, return nil

Parameters:

  • literal (RDF::Literal)

Returns:

  • (Symbol, nil)

Raises:

  • (RDF::WriterError)


72
73
74
75
# File 'lib/roadforest/content-handling/type-handlers/rdfa-writer/render-environment.rb', line 72

def get_lang(literal)
  raise RDF::WriterError, "Getting datatype CURIE for #{literal.inspect}, which must be a literal" unless literal.is_a?(RDF::Literal)
  literal.language if literal.literal? && literal.language && literal.language.to_s != @_engine.lang.to_s
end

#get_predicate_name(resource) ⇒ String

Haml rendering helper. Return an appropriate label for a resource.

Parameters:

  • resource (RDF::Resource)

Returns:

  • (String)

Raises:

  • (RDF::WriterError)


116
117
118
119
# File 'lib/roadforest/content-handling/type-handlers/rdfa-writer/render-environment.rb', line 116

def get_predicate_name(resource)
  raise RDF::WriterError, "Getting predicate name for #{resource.inspect}, which must be a resource" unless resource.is_a?(RDF::Resource)
  get_curie(resource)
end

#get_value(literal) ⇒ String

Haml rendering helper. Display value for object, may be non-canonical if get_content returns a non-nil value

Parameters:

  • literal (RDF::Literal)

Returns:

  • (String)

Raises:

  • (RDF::WriterError)


95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'lib/roadforest/content-handling/type-handlers/rdfa-writer/render-environment.rb', line 95

def get_value(literal)
  raise RDF::WriterError, "Getting value for #{literal.inspect}, which must be a literal" unless literal.is_a?(RDF::Literal)
  case literal
  when RDF::Literal::Date
    literal.object.strftime("%A, %d %B %Y")
  when RDF::Literal::Time
    literal.object.strftime("%H:%M:%S %Z").sub(/\+00:00/, "UTC")
  when RDF::Literal::DateTime
    literal.object.strftime("%H:%M:%S %Z on %A, %d %B %Y").sub(/\+00:00/, "UTC")
  else
    literal.to_s
  end
rescue
  literal.to_s  # When all else fails ...
end

#inspectObject



15
16
17
18
19
20
# File 'lib/roadforest/content-handling/type-handlers/rdfa-writer/render-environment.rb', line 15

def inspect
  "<#{self.class.name}:#{"%x" % self.object_id} #{instance_variables.map do |name|
    next if name == :@_engine
    "#{name}=#{instance_variable_get(name).inspect}"
  end.compact.join(" ")}>"
end

#is_subject?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/roadforest/content-handling/type-handlers/rdfa-writer/render-environment.rb', line 44

def is_subject?
  false
end

#literal?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/roadforest/content-handling/type-handlers/rdfa-writer/render-environment.rb', line 48

def literal?
  false
end

#render_checkedObject



52
53
54
# File 'lib/roadforest/content-handling/type-handlers/rdfa-writer/render-environment.rb', line 52

def render_checked
  false
end

#subject(subject, &block) ⇒ String

Display a subject.

If the Haml template contains an entry matching the subject’s rdf:type URI, that entry will be used as the template for this subject and it’s properties.

Examples:

Displays a subject as a Resource Definition:

<div typeof="rdfs:Resource" about="http://example.com/resource">
  <h1 property="dc:title">label</h1>
  <ul>
    <li content="2009-04-30T06:15:51Z" property="dc:created">2009-04-30T06:15:51+00:00</li>
  </ul>
</div>

Parameters:

  • subject (RDF::Resource)
  • options (Hash{Symbol => Object})

Returns:

  • (String)


40
41
42
# File 'lib/roadforest/content-handling/type-handlers/rdfa-writer/render-environment.rb', line 40

def subject(subject, &block)
  @_engine.render_subject(subject, &block)
end