Class: NodeInfoPresenter

Inherits:
Object
  • Object
show all
Defined in:
app/presenters/node_info_presenter.rb

Instance Method Summary collapse

Constructor Details

#initialize(version) ⇒ NodeInfoPresenter

Returns a new instance of NodeInfoPresenter.


6
7
8
# File 'app/presenters/node_info_presenter.rb', line 6

def initialize(version)
  @version = version
end

Instance Method Details

#add_configuration(doc) ⇒ Object


21
22
23
24
25
26
27
28
# File 'app/presenters/node_info_presenter.rb', line 21

def add_configuration(doc)
  doc.software.version         = version
  doc.services.outbound        = available_services
  doc.open_registrations       = open_registrations?
  doc.["nodeName"]     = name
  doc.["camo"]         = camo_config
  doc.["adminAccount"] = 
end

#add_static_data(doc) ⇒ Object


30
31
32
33
# File 'app/presenters/node_info_presenter.rb', line 30

def add_static_data(doc)
  doc.software.name = "diaspora"
  doc.protocols.protocols << "diaspora"
end

#add_usage(doc) ⇒ Object


43
44
45
46
# File 'app/presenters/node_info_presenter.rb', line 43

def add_usage(doc)
  doc.local_posts    = local_posts    if expose_posts_counts?
  doc.local_comments = local_comments if expose_comment_counts?
end

#add_user_counts(doc) ⇒ Object


35
36
37
38
39
40
41
# File 'app/presenters/node_info_presenter.rb', line 35

def add_user_counts(doc)
  return unless expose_user_counts?

  doc.total           = total_users
  doc.active_halfyear = halfyear_users
  doc.active_month    = monthly_users
end

#admin_accountObject


80
81
82
# File 'app/presenters/node_info_presenter.rb', line 80

def 
  AppConfig.admins. if AppConfig.admins.account?
end

#available_servicesObject


84
85
86
87
88
# File 'app/presenters/node_info_presenter.rb', line 84

def available_services
  Configuration::KNOWN_SERVICES.select {|service|
    AppConfig.show_service?(service, nil)
  }.map(&:to_s)
end

#camo_configObject


72
73
74
75
76
77
78
# File 'app/presenters/node_info_presenter.rb', line 72

def camo_config
  {
    markdown:   AppConfig.privacy.camo.proxy_markdown_images?,
    opengraph:  AppConfig.privacy.camo.proxy_opengraph_thumbnails?,
    remotePods: AppConfig.privacy.camo.proxy_remote_pod_images?
  }
end

#documentObject


10
11
12
13
14
15
16
17
18
19
# File 'app/presenters/node_info_presenter.rb', line 10

def document
  @document ||= NodeInfo.build do |doc|
    doc.version = @version

    add_static_data doc
    add_configuration doc
    add_user_counts doc.usage.users
    add_usage doc.usage
  end
end

#expose_comment_counts?Boolean

Returns:

  • (Boolean)

56
57
58
# File 'app/presenters/node_info_presenter.rb', line 56

def expose_comment_counts?
  AppConfig.privacy.statistics.comment_counts?
end

#expose_posts_counts?Boolean

Returns:

  • (Boolean)

52
53
54
# File 'app/presenters/node_info_presenter.rb', line 52

def expose_posts_counts?
  AppConfig.privacy.statistics.post_counts?
end

#expose_user_counts?Boolean

Returns:

  • (Boolean)

48
49
50
# File 'app/presenters/node_info_presenter.rb', line 48

def expose_user_counts?
  AppConfig.privacy.statistics.user_counts?
end

#halfyear_usersObject


98
99
100
# File 'app/presenters/node_info_presenter.rb', line 98

def halfyear_users
  @halfyear_users ||= User.halfyear_actives.count
end

#local_commentsObject


109
110
111
112
113
# File 'app/presenters/node_info_presenter.rb', line 109

def local_comments
  @local_comments ||= Comment.joins(:author)
                             .where("owner_id IS NOT null")
                             .count
end

#local_postsObject


102
103
104
105
106
107
# File 'app/presenters/node_info_presenter.rb', line 102

def local_posts
  @local_posts ||= Post.where(type: "StatusMessage")
                       .joins(:author)
                       .where("owner_id IS NOT null")
                       .count
end

#monthly_usersObject


94
95
96
# File 'app/presenters/node_info_presenter.rb', line 94

def monthly_users
  @monthly_users ||= User.monthly_actives.count
end

#nameObject


60
61
62
# File 'app/presenters/node_info_presenter.rb', line 60

def name
  AppConfig.settings.pod_name
end

#open_registrations?Boolean

Returns:

  • (Boolean)

68
69
70
# File 'app/presenters/node_info_presenter.rb', line 68

def open_registrations?
  AppConfig.settings.enable_registrations?
end

#total_usersObject


90
91
92
# File 'app/presenters/node_info_presenter.rb', line 90

def total_users
  @total_users ||= User.active.count
end

#versionObject


64
65
66
# File 'app/presenters/node_info_presenter.rb', line 64

def version
  AppConfig.version_string
end