Class: GithubMembers::Member

Inherits:
Object
  • Object
show all
Defined in:
lib/github_members/member.rb

Constant Summary collapse

DEFAULT_FIELDS =
[:github, :fullname, :avatar, :updated].freeze

Instance Method Summary collapse

Instance Method Details

#define_class(*fields) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/github_members/member.rb', line 5

def define_class(*fields)
  Struct.new(*DEFAULT_FIELDS, *fields, keyword_init: true) do
    def github_url
      "https://github.com/#{github}"
    end

    def additional_fields
      members - DEFAULT_FIELDS
    end

    def to_h
      super.to_h.transform_keys(&:to_s).reject { |k, _| k == "updated" }
    end
  end
end