Class: INatGet::Data::DSL::Report

Inherits:
Object
  • Object
show all
Includes:
INatGet::Data::DSL
Defined in:
lib/inat-get/data/dsl/reports/base.rb

Direct Known Subclasses

ERB

Defined Under Namespace

Classes: ERB

Instance Method Summary collapse

Methods included from INatGet::Data::DSL

#AND, #ANYTHING, #NOT, #NOTHING, #OR, #Q, #console, #erb_report, #finish_time, #get_identification, #get_observation, #get_place, #get_project, #get_taxon, #get_user, #now, #select_identifications, #select_observations, #select_places, #select_projects, #select_taxa, #select_users, #start_time, #time_range, #today, #version, #version!, #version?, #version_alias

Constructor Details

#initialize(mode: nil, suffix: nil, **data) {|_self| ... } ⇒ Report

Returns a new instance of Report.

Yields:

  • (_self)

Yield Parameters:



10
11
12
13
14
15
# File 'lib/inat-get/data/dsl/reports/base.rb', line 10

def initialize mode: nil, suffix: nil, **data
  @mode = mode
  @data = data
  @suffix = suffix
  yield self if block_given?
end

Instance Method Details

#[](key) ⇒ Object



52
53
54
# File 'lib/inat-get/data/dsl/reports/base.rb', line 52

def [] key
  @data[key]
end

#[]=(key, value) ⇒ Object



56
57
58
# File 'lib/inat-get/data/dsl/reports/base.rb', line 56

def []= key, value
  @data[key] = value
end

#basename(suffix = nil) ⇒ String

Returns:

  • (String)


18
19
20
21
22
23
24
25
# File 'lib/inat-get/data/dsl/reports/base.rb', line 18

def basename suffix = nil
  suffix ||= @suffix
  if suffix
    self.name + ' -- ' + suffix
  else
    self.name
  end
end

#ext(mode: nil) ⇒ String

Returns:

  • (String)


28
29
30
# File 'lib/inat-get/data/dsl/reports/base.rb', line 28

def ext mode: nil
  (mode || @mode)&.to_s
end

#filename(suffix: nil, mode: nil) ⇒ String

Returns:

  • (String)


33
34
35
36
37
38
39
# File 'lib/inat-get/data/dsl/reports/base.rb', line 33

def filename suffix: nil, mode: nil
  if self.ext(mode: mode)
    self.basename(suffix) + '.' + self.ext(mode: mode)
  else
    self.basename(suffix)
  end
end

#render(mode: nil) ⇒ String

Returns:

  • (String)

Raises:

  • (NotImplementedError)


42
43
44
# File 'lib/inat-get/data/dsl/reports/base.rb', line 42

def render mode: nil
  raise NotImplementedError, "Not implemented method 'render' for abstract Report", caller_locations
end

#save(filename = nil, suffix: nil, mode: nil) ⇒ void

This method returns an undefined value.



47
48
49
50
# File 'lib/inat-get/data/dsl/reports/base.rb', line 47

def save filename = nil, suffix: nil, mode: nil
  filename ||= self.filename(suffix: suffix, mode: mode)
  File.write filename, self.render(mode: mode)
end