Sha256: affc9154881cb09714e90b6c3d48c87ac924f67f8b7ea0a090108dd542e9ea98

Contents?: true

Size: 1.37 KB

Versions: 1

Compression:

Stored size: 1.37 KB

Contents

require 'bundler'
require 'octokit'
require 'pathname'
require 'erb'
require 'yaml'

module Love
  class << self

    attr_reader :by_gemname, :for_site, :gems, :authors, :root, :lang, :octokit

    def share_for(args)
      by_gemname = args.include? 'by_gem'
      for_site = args.include? 'site'

      @by_gemname = by_gemname
      @for_site = for_site
      @root = Pathname(__FILE__).parent
      @lang = 'en'
      @gems = []
      @authors = []

      lets_start_from_heart!

      login_user

      parse_gemfile
      share_love
    end

    def login_user
      puts 'Please, enter your github credentials that Octokit could work without github guest requests restrictions'
      puts 'login:'
      login = $stdin.gets.chomp
      puts 'password:'
      pass = $stdin.gets.chomp
      @octokit = Octokit::Client.new login: login, password: pass
    end

    def lets_start_from_heart!
      puts File.read(Love.root.join '../hearts/ascii1.txt')
    end

    def parse_gemfile
      Bundler.load.specs.each do |spec|
        gem = Love::Gem.new(spec)
        @gems << gem
        @authors << gem.authors
      end
      @authors = @authors.flatten.uniq
    end

    def share_love
      if for_site
        Love::Site.create_file
      else
        Love::Share.md by_gemname
      end
    end

  end
end

require 'love/author'
require 'love/gem'
require 'love/thank_words'
require 'love/share'

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
share_some_love-0.0.5 lib/love.rb