Sha256: fad0095465e340a39a136753b6bad08ee66690075ccbe6ab1b9b7730a1c7e84f

Contents?: true

Size: 1.21 KB

Versions: 3

Compression:

Stored size: 1.21 KB

Contents

class Plasticine::Builder::Base
  attr_accessor :visual

  def initialize(id, options={})
    options.reverse_merge! from: nil, to: nil, step: nil

    @from = options[:from] ? Time.parse(options[:from]) : nil
    @to = options[:to] ? Time.parse(options[:to]) : Time.now

    @visual = { id: id }
    @visual[:step] = options[:step] if options[:step]
    @visual[:title] = t('title')
    @visual[:period] = Plasticine::Builder.period(@from, @to, step: @visual[:step]) if @from
  end

  def close_visual
    # Hooks before closing a visual
  end

  def id
    @visual[:id]
  end

  def l(date, options={})
    options.reverse_merge!(format: :date_long)

    Plasticine.localize(date, options)
  end

  def period
    @visual[:period]
  end

  def set_period_from_data(data)
    @from = data.first
    @to = data.last

    @visual[:step] = Plasticine::Builder.get_step_from_interval(data[1] - data[0]) if not @visual[:step]

    @visual[:period] = Plasticine::Builder.period @from, @to, step: @visual[:step]
  end

  def t(path, vars={})
    vars.reverse_merge! default: ''

    Plasticine.translate("#{id.gsub('-', '_')}.#{path}", vars)
  end

  def title
    @visual[:title]
  end

  def to_json
    close_visual

    @visual.to_json
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
plasticine-1.2.0 lib/plasticine/builder/base.rb
plasticine-1.1.1 lib/plasticine/builder/base.rb
plasticine-1.1.0 lib/plasticine/builder/base.rb