Class: TurtleReader

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/turtle_reader.rb,
lib/turtle_reader/version.rb

Defined Under Namespace

Modules: Version

Constant Summary collapse

NS =
RDF::Vocabulary.inject({}) { |h, v| h[v.__prefix__] = v; h }
VERSION =
Version.to_s

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(reader, map = true) ⇒ TurtleReader

Returns a new instance of TurtleReader.



57
58
59
60
# File 'lib/turtle_reader.rb', line 57

def initialize(reader, map = true)
  @reader, @base, @prefixes = reader, *reader.parse_prologue
  self.map = map
end

Instance Attribute Details

#baseObject (readonly)

Returns the value of attribute base.



62
63
64
# File 'lib/turtle_reader.rb', line 62

def base
  @base
end

#fileObject

Returns the value of attribute file.



64
65
66
# File 'lib/turtle_reader.rb', line 64

def file
  @file
end

#mapObject

Returns the value of attribute map.



62
63
64
# File 'lib/turtle_reader.rb', line 62

def map
  @map
end

#prefixesObject (readonly)

Returns the value of attribute prefixes.



62
63
64
# File 'lib/turtle_reader.rb', line 62

def prefixes
  @prefixes
end

#readerObject (readonly)

Returns the value of attribute reader.



62
63
64
# File 'lib/turtle_reader.rb', line 62

def reader
  @reader
end

Class Method Details

.foreach(file, *args, &block) ⇒ Object



51
52
53
# File 'lib/turtle_reader.rb', line 51

def foreach(file, *args, &block)
  open(file, *args) { |turtle| turtle.each(&block) }
end

.open(file, *args) ⇒ Object



42
43
44
45
46
47
48
49
# File 'lib/turtle_reader.rb', line 42

def open(file, *args)
  RDF::Reader.open(file, format: :ttl) { |reader|
    turtle = new(reader, *args)
    turtle.file = File.expand_path(file)

    return block_given? ? yield(turtle) : turtle
  }
end

Instance Method Details

#closed?Boolean

Returns:

  • (Boolean)


107
108
109
# File 'lib/turtle_reader.rb', line 107

def closed?
  reader.closed?
end

#eachObject



93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/turtle_reader.rb', line 93

def each
  return enum_for(:each) unless block_given?

  uri, map, base = RDF::URI, self.map, self.base

  each_statement { |t|
    s, p, o = *t

    if s.is_a?(uri) and k = map[p] and s.start_with?(base)
      yield s, o, k
    end
  }
end

#each_statement(&block) ⇒ Object



87
88
89
90
91
# File 'lib/turtle_reader.rb', line 87

def each_statement(&block)
  return enum_for(:each_statement) unless block_given?
  reader.parse_statements(&block)
  self
end

#inspectObject



111
112
113
114
115
# File 'lib/turtle_reader.rb', line 111

def inspect
  '#<%s:0x%x @file=%p, @base=%p%s>' % [
    self.class, object_id, file, base, closed? ? ' (closed)' : ''
  ]
end

#statementsObject



83
84
85
# File 'lib/turtle_reader.rb', line 83

def statements
  each_statement.to_a
end