Sha256: 3078e828331b15caf25205ec583caf596a572fbe84df80fa41c2121ec6ac35cf

Contents?: true

Size: 627 Bytes

Versions: 4

Compression:

Stored size: 627 Bytes

Contents

# frozen_string_literal: true

module WCC::Blogs
  class LinkedBlogPostSummary
    extend WCC::Blogs::Utils

    attr_reader :raw

    def initialize(raw, client: WCC::Blogs.client)
      @raw = raw
      @client = client
    end

    def full_post
      Post.new(@client.get(_links.self).raw)
    end

    define_camelcase_alias(
      'title',
      'slug'
    ) do |camelcase|
      raw[camelcase]
    end

    define_camelcase_alias(
      'date'
    ) do |camelcase|
      value = raw[camelcase]

      Time.parse(value) if value&.length
    end

    def _links
      OpenStruct.new(raw['_links'] || {})
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
wcc-blogs-client-0.7.2 lib/wcc/blogs/linked_blog_post_summary.rb
wcc-blogs-client-0.7.1 lib/wcc/blogs/linked_blog_post_summary.rb
wcc-blogs-client-0.7.0 lib/wcc/blogs/linked_blog_post_summary.rb
wcc-blogs-client-0.6.0 lib/wcc/blogs/linked_blog_post_summary.rb