Sha256: 16fac62e32ada2ea93faae9952ce14ee461dc1f6d6b846df9a3b7effa460ed0a

Contents?: true

Size: 1.04 KB

Versions: 8

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

module FaceGroups
  # Executable code for file(s) in bin/ folder
  class Runner
    def self.run!(args)
      group_id = args[0] || ENV['FB_GROUP_ID']
      unless group_id
        puts 'USAGE: facegroups [group_id]'
        exit(1)
      end

      group = FaceGroups::Group.find(id: group_id)

      output_info(group)
    end

    def self.output_info(group)
      name = group.name
      separator = Array.new(group.name.length) { '-' }.join
      group_info = group.feed.postings.first(3).map.with_index do |post, index|
        posting_info(post, index)
      end.join

      [name, separator, group_info].join("\n")
    end

    def self.posting_info(post, index)
      [
        "#{index + 1}",
        message_output(post.message),
        'Attached: ' + attachment_output(post.attachment),
        "\n\n"
      ].join
    end

    def self.message_output(message)
      message ? message : '(blank)'
    end

    def self.attachment_output(attachment)
      attachment ? attachment.url.to_s : '(none)'
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
facegroups-0.6.1 lib/facegroups/runner.rb
facegroups-0.6.0 lib/facegroups/runner.rb
facegroups-0.5.0 lib/facegroups/runner.rb
facegroups-0.4.1 lib/facegroups/runner.rb
facegroups-0.4.0 lib/facegroups/runner.rb
facegroups-0.3.0 lib/facegroups/runner.rb
facegroups-0.2.2 lib/facegroups/runner.rb
facegroups-0.2.1 lib/facegroups/runner.rb