about summary refs log tree commit diff
path: root/lib/mastodon/version.rb
blob: 0cad7a273b59f4e63f570f46c21fbb4091df2e69 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# frozen_string_literal: true

module Mastodon
  module Version
    module_function

    def major
      3
    end

    def minor
      2
    end

    def patch
      0
    end

    def flags
      ''
    end

    def suffix
      '+glitch+monsterpit'
    end

    def to_a
      [major, minor, patch].compact
    end

    def to_s
      [to_a.join('.'), flags, suffix].join
    end

    def repository
      ENV.fetch('GITHUB_REPOSITORY') { 'monsterpit/monsterpit-mastodon' }
    end

    def source_base_url
      ENV.fetch('SOURCE_BASE_URL') { "https://monsterware.dev/#{repository}" }
    end

    # specify git tag or commit hash here
    def source_tag
      ENV.fetch('SOURCE_TAG') { nil }
    end

    def source_url
      if source_tag
        "#{source_base_url}/tree/#{source_tag}"
      else
        source_base_url
      end
    end

    def user_agent
      @user_agent ||= "#{HTTP::Request::USER_AGENT} (Mastodon/#{Version}; +http#{Rails.configuration.x.use_https ? 's' : ''}://#{Rails.configuration.x.web_domain}/)"
    end

    def server_metadata_json
      @server_metadata_json ||= [
        {
          '@context': { 'schema': 'http://schema.org/', name: 'schema:name', value: 'schema:value' },
          type: 'PropertyValue',
          name: 'version',
          value: to_s,
        },
        {
          '@context': { 'schema': 'http://schema.org/', name: 'schema:name', value: 'schema:value' },
          type: 'PropertyValue',
          name: 'monsterpit:extensions',
          value: '2020.08.06.1',
        },
        {
          '@context': { 'schema': 'http://schema.org/', name: 'schema:name', value: 'schema:value' },
          type: 'PropertyValue',
          name: 'comment:0',
          value: "big tails can't fail",
        },
        {
          '@context': { 'schema': 'http://schema.org/', name: 'schema:name', value: 'schema:value' },
          type: 'PropertyValue',
          name: 'comment:1',
          value: 'trans rights!',
        },
        {
          '@context': { 'schema': 'http://schema.org/', name: 'schema:name', value: 'schema:value' },
          type: 'PropertyValue',
          name: 'comment:2',
          value: 'gently the kobolds',
        },
      ]
    end
  end
end