bin/facebook_sdk_versions in headdesk-0.14.0 vs bin/facebook_sdk_versions in headdesk-0.15.0

- old
+ new

@@ -4,21 +4,37 @@ require 'headdesk' require 'nokogiri' require 'open-uri' require 'yaml' -html_doc = Nokogiri::HTML(open('https://developers.facebook.com/docs/android/change-log-4x')) +@facebook_sdk_versions = {} -facebook_sdk_versions = html_doc.xpath('//h2') - .select { |h2| h2.attributes['id'].value =~ /^\d+_\d+_\d+$/ } - .collect do |h2| - major, minor, patch, date = h2.text.match(/^(\d+)\.(\d+)\.?(\d+)? \- (.*)$/).captures - { +def add_version(str, matcher) + major, minor, patch, date = str.match(matcher).captures + version_string = "#{major.to_i || 0}.#{minor.to_i || 0}.#{patch.to_i || 0}" + @facebook_sdk_versions[version_string] = { major: major.to_i || 0, minor: minor.to_i || 0, patch: patch.to_i || 0, - version: "#{major.to_i || 0}.#{minor.to_i || 0}.#{patch.to_i || 0}", + version: version_string, date: Date.parse(date) } end -File.write(Headdesk::FACEBOOK_SDK_VERSIONS_YAML, facebook_sdk_versions.to_yaml) +html_doc = Nokogiri::HTML(open('https://developers.facebook.com/docs/android/change-log-4x')) + +html_match = /^(\d+)\.(\d+)\.?(\d+)? \- (.*)$/ +html_doc.xpath('//h2') + .select { |h2| html_match.match?(h2.text) } + .collect do |h2| + add_version(h2.text, html_match) +end + +changelog_md = open('https://raw.githubusercontent.com/facebook/facebook-android-sdk/master/CHANGELOG.md') { |f| f.read } + +markdown_match = /^## \[(\d+)\.(\d+)\.?(\d+)?\] \- (.*)$/ +changelog_md.each_line.select { |line| markdown_match.match?(line) } + .collect do |line| + add_version(line, markdown_match) +end + +File.write(Headdesk::FACEBOOK_SDK_VERSIONS_YAML, @facebook_sdk_versions.values.to_yaml)