Class: RoadForest::TypeHandlers::RDFaWriter::RenderEnvironment

Inherits:
Object
  • Object
show all
Defined in:
lib/roadforest/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.



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

def initialize(engine)
  @_engine = engine
end

Instance Attribute Details

#_engineObject (readonly)

Returns the value of attribute _engine.



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

def _engine
  @_engine
end

#heading_predicatesObject

Returns the value of attribute heading_predicates.



5
6
7
# File 'lib/roadforest/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/type-handlers/rdfa-writer/render-environment.rb', line 5

def lang
  @lang
end

#parentObject

Returns the value of attribute parent.



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

def parent
  @parent
end

Instance Method Details

#_base_env_Object



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

def _base_env_
  self
end

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



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

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



146
147
148
# File 'lib/roadforest/type-handlers/rdfa-writer/render-environment.rb', line 146

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)


89
90
91
92
93
94
95
# File 'lib/roadforest/type-handlers/rdfa-writer/render-environment.rb', line 89

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)


134
135
136
# File 'lib/roadforest/type-handlers/rdfa-writer/render-environment.rb', line 134

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)


69
70
71
72
# File 'lib/roadforest/type-handlers/rdfa-writer/render-environment.rb', line 69

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)


79
80
81
82
# File 'lib/roadforest/type-handlers/rdfa-writer/render-environment.rb', line 79

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)


123
124
125
126
# File 'lib/roadforest/type-handlers/rdfa-writer/render-environment.rb', line 123

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)


102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# File 'lib/roadforest/type-handlers/rdfa-writer/render-environment.rb', line 102

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



20
21
22
23
24
25
# File 'lib/roadforest/type-handlers/rdfa-writer/render-environment.rb', line 20

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)


31
32
33
# File 'lib/roadforest/type-handlers/rdfa-writer/render-environment.rb', line 31

def is_subject?
  false
end

#like_a?(klass) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/roadforest/type-handlers/rdfa-writer/render-environment.rb', line 27

def like_a?(klass)
  is_a?(klass)
end

#list_property_envs(predicate, lists) ⇒ Object



55
56
57
# File 'lib/roadforest/type-handlers/rdfa-writer/render-environment.rb', line 55

def list_property_envs(predicate, lists)
  _engine.list_property_envs(predicate, lists)
end

#literal?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/roadforest/type-handlers/rdfa-writer/render-environment.rb', line 35

def literal?
  false
end

#object_env(predicate, term) ⇒ Object



59
60
61
# File 'lib/roadforest/type-handlers/rdfa-writer/render-environment.rb', line 59

def object_env(predicate, term)
  _engine.object_env(predicate, term)
end

#render_checkedObject



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

def render_checked
  false
end

#simple_property_env(predicate, nonlists) ⇒ Object



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

def simple_property_env(predicate, nonlists)
  _engine.simple_property_env(predicate, nonlists)
end

#subject_env(term) ⇒ Object



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

def subject_env(term)
  _engine.subject_env(term)
end

#yielded(item) ⇒ Object



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

def yielded(item)
  _engine.render(item)
end