Sha256: ba539e862c26075ce2188324ef04b7ed936888d660b14c1775e6ed558b9c1bc9
Contents?: true
Size: 1.51 KB
Versions: 1
Compression:
Stored size: 1.51 KB
Contents
require_relative "store" require_relative "api" module Hackpad module Cli class UndefinedPad < StandardError end class UnknownFormat < StandardError end class Pad attr_reader :id, :content, :guest_policy, :moderated, :cached_at def initialize(id) @id = id end def title @title ||= (@content.lines.first.strip if @content) end def chars @content.length if @content end def lines @content.lines.count if @content end def load(ext, refresh=false) raise UnknownFormat unless FORMATS.include? ext raise UndefinedPad unless @id if refresh or !Store.exists? ext, @id load_from_api ext else load_from_cache ext end end def load_from_api(ext) @content = Api.read @id, ext Store.save self, ext options = Api.read_options @id @guest_policy = options['options']['guestPolicy'] @moderated = !!options['options']['isModerated'] options['cached_at'] = Time.now @cached_at = options['cached_at'] Store.save_meta @id, options end def load_from_cache(ext) @content = Store.read @id, ext options = Store.read_options @id @guest_policy = options['options']['guestPolicy'] @moderated = !!options['options']['isModerated'] @cached_at = options['cached_at'] end def is_cached? Store.exists? 'meta', @id end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
hackpad-cli-0.0.7 | lib/hackpad/cli/pad.rb |