diaspora_federation 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +28 -0
  3. data/README.md +2 -1
  4. data/lib/diaspora_federation.rb +14 -14
  5. data/lib/diaspora_federation/callbacks.rb +4 -4
  6. data/lib/diaspora_federation/discovery.rb +1 -1
  7. data/lib/diaspora_federation/discovery/discovery.rb +8 -8
  8. data/lib/diaspora_federation/discovery/h_card.rb +11 -12
  9. data/lib/diaspora_federation/discovery/host_meta.rb +2 -2
  10. data/lib/diaspora_federation/discovery/web_finger.rb +10 -13
  11. data/lib/diaspora_federation/discovery/xrd_document.rb +1 -1
  12. data/lib/diaspora_federation/entities.rb +2 -2
  13. data/lib/diaspora_federation/entities/account_deletion.rb +4 -4
  14. data/lib/diaspora_federation/entities/comment.rb +3 -3
  15. data/lib/diaspora_federation/entities/contact.rb +4 -4
  16. data/lib/diaspora_federation/entities/conversation.rb +13 -13
  17. data/lib/diaspora_federation/entities/like.rb +5 -5
  18. data/lib/diaspora_federation/entities/location.rb +1 -1
  19. data/lib/diaspora_federation/entities/message.rb +5 -5
  20. data/lib/diaspora_federation/entities/participation.rb +6 -6
  21. data/lib/diaspora_federation/entities/person.rb +6 -6
  22. data/lib/diaspora_federation/entities/photo.rb +10 -10
  23. data/lib/diaspora_federation/entities/poll.rb +3 -3
  24. data/lib/diaspora_federation/entities/poll_answer.rb +2 -2
  25. data/lib/diaspora_federation/entities/poll_participation.rb +3 -3
  26. data/lib/diaspora_federation/entities/post.rb +7 -7
  27. data/lib/diaspora_federation/entities/profile.rb +6 -6
  28. data/lib/diaspora_federation/entities/related_entity.rb +4 -4
  29. data/lib/diaspora_federation/entities/relayable.rb +32 -24
  30. data/lib/diaspora_federation/entities/relayable_retraction.rb +17 -17
  31. data/lib/diaspora_federation/entities/request.rb +5 -5
  32. data/lib/diaspora_federation/entities/reshare.rb +7 -7
  33. data/lib/diaspora_federation/entities/retraction.rb +6 -6
  34. data/lib/diaspora_federation/entities/signed_retraction.rb +8 -8
  35. data/lib/diaspora_federation/entities/status_message.rb +8 -8
  36. data/lib/diaspora_federation/entity.rb +7 -7
  37. data/lib/diaspora_federation/federation/fetcher.rb +3 -3
  38. data/lib/diaspora_federation/federation/receiver.rb +3 -3
  39. data/lib/diaspora_federation/federation/receiver/abstract_receiver.rb +3 -3
  40. data/lib/diaspora_federation/federation/receiver/private.rb +1 -1
  41. data/lib/diaspora_federation/federation/receiver/public.rb +1 -1
  42. data/lib/diaspora_federation/federation/sender/hydra_wrapper.rb +7 -6
  43. data/lib/diaspora_federation/http_client.rb +2 -2
  44. data/lib/diaspora_federation/logging.rb +7 -7
  45. data/lib/diaspora_federation/properties_dsl.rb +3 -3
  46. data/lib/diaspora_federation/salmon.rb +1 -1
  47. data/lib/diaspora_federation/salmon/aes.rb +4 -4
  48. data/lib/diaspora_federation/salmon/encrypted_slap.rb +9 -9
  49. data/lib/diaspora_federation/salmon/magic_envelope.rb +16 -16
  50. data/lib/diaspora_federation/salmon/slap.rb +2 -2
  51. data/lib/diaspora_federation/validators.rb +1 -1
  52. data/lib/diaspora_federation/validators/account_deletion_validator.rb +1 -1
  53. data/lib/diaspora_federation/validators/comment_validator.rb +1 -1
  54. data/lib/diaspora_federation/validators/contact_validator.rb +1 -1
  55. data/lib/diaspora_federation/validators/conversation_validator.rb +4 -4
  56. data/lib/diaspora_federation/validators/h_card_validator.rb +2 -2
  57. data/lib/diaspora_federation/validators/like_validator.rb +1 -1
  58. data/lib/diaspora_federation/validators/location_validator.rb +1 -1
  59. data/lib/diaspora_federation/validators/message_validator.rb +4 -1
  60. data/lib/diaspora_federation/validators/participation_validator.rb +1 -1
  61. data/lib/diaspora_federation/validators/person_validator.rb +1 -1
  62. data/lib/diaspora_federation/validators/photo_validator.rb +3 -1
  63. data/lib/diaspora_federation/validators/poll_answer_validator.rb +1 -1
  64. data/lib/diaspora_federation/validators/poll_participation_validator.rb +1 -1
  65. data/lib/diaspora_federation/validators/poll_validator.rb +1 -1
  66. data/lib/diaspora_federation/validators/profile_validator.rb +3 -3
  67. data/lib/diaspora_federation/validators/related_entity_validator.rb +1 -1
  68. data/lib/diaspora_federation/validators/relayable_retraction_validator.rb +2 -2
  69. data/lib/diaspora_federation/validators/relayable_validator.rb +2 -2
  70. data/lib/diaspora_federation/validators/request_validator.rb +2 -2
  71. data/lib/diaspora_federation/validators/reshare_validator.rb +1 -1
  72. data/lib/diaspora_federation/validators/retraction_validator.rb +1 -1
  73. data/lib/diaspora_federation/validators/rules/birthday.rb +2 -2
  74. data/lib/diaspora_federation/validators/rules/boolean.rb +1 -1
  75. data/lib/diaspora_federation/validators/rules/diaspora_id.rb +5 -5
  76. data/lib/diaspora_federation/validators/rules/diaspora_id_count.rb +3 -3
  77. data/lib/diaspora_federation/validators/rules/guid.rb +4 -4
  78. data/lib/diaspora_federation/validators/rules/not_nil.rb +1 -1
  79. data/lib/diaspora_federation/validators/rules/public_key.rb +1 -1
  80. data/lib/diaspora_federation/validators/rules/tag_count.rb +2 -2
  81. data/lib/diaspora_federation/validators/signed_retraction_validator.rb +2 -2
  82. data/lib/diaspora_federation/validators/status_message_validator.rb +3 -1
  83. data/lib/diaspora_federation/validators/web_finger_validator.rb +3 -3
  84. data/lib/diaspora_federation/version.rb +1 -1
  85. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 69b26a0e6f05a364115daf455c348d72627c5577
4
- data.tar.gz: accee3201502d60fff35a35d9902dc21a5935b35
3
+ metadata.gz: 9ba82f5232ef44f9731f00859c5a32fa8163570e
4
+ data.tar.gz: 01c7f76df999d4a0f476cf7c0ddbbc4f1a86ef0a
5
5
  SHA512:
6
- metadata.gz: 0443a2e34f0d7805ae7e59edb85d4f63eb9c0639033d749f5050c8ef7d52aba2f88b5dcda4c76a495ea42c82ceb3470f605fe36861b73266e89964b8b8f279c6
7
- data.tar.gz: 991d0a6307601a92a1b9dc3cd9127c58fe6c3a5a14448a1242d32d2d07f704759a0c7a1e83b936a7f09f563ca7d9837fa7b09f0f3aac828625eac5ca77ad2d94
6
+ metadata.gz: 49abed4f800587ea9f0a671cd1eccc74a3df06b58f9039e61a7540b8e809cf54b4b49f6e8d075e6fe943ffd687d10c2d0e48e250878d080e0c6370ff27979ee6
7
+ data.tar.gz: 36c5a25c0744fda688707de4d0c469d90989a3fb016e1af39e030efa38dddc3d4b6c9a89be21d52245950f41b59fb030c8c5eeda3a96e8475cdfa6ff3057c2b7
data/Changelog.md ADDED
@@ -0,0 +1,28 @@
1
+ # 0.1.2
2
+
3
+ ## Refactor
4
+
5
+ * Improve code documentation [#38](https://github.com/diaspora/diaspora_federation/pull/38)
6
+ * Improve validation [9b32315](https://github.com/diaspora/diaspora_federation/commit/9b3231583d85e6007bf43cedc4480f043c8bde15) [eb8cdef](https://github.com/diaspora/diaspora_federation/commit/eb8cdef604cc8fe71e8455f36a317d80657f1582) [0980294](https://github.com/diaspora/diaspora_federation/commit/0980294a0d259cba1fa2a2a655163b3fa844d239)
7
+ * Photo: `status_message_guid` is optional [4136fb9](https://github.com/diaspora/diaspora_federation/commit/4136fb973e7ad27158ef605df12727f4e959c3a3)
8
+ * A GUID is at most 255 chars long [f7d269c](https://github.com/diaspora/diaspora_federation/commit/f7d269cd6a4c1b48a7b34083f5fea04ac0835a48)
9
+ * hCard: `nickname` is optional [4b94949](https://github.com/diaspora/diaspora_federation/commit/4b949491df3a16b30f6e27113d6fa95c165c1edc)
10
+ * StatusMessage: Rename `raw_message` to `text` [2aaff56](https://github.com/diaspora/diaspora_federation/commit/2aaff56e147b505626a615d60564fbbf22c2f452) [#29](https://github.com/diaspora/diaspora_federation/issues/29)
11
+
12
+ ## Bug fixes
13
+
14
+ * Do not reuse cURL sockets to avoid issues caused by too many simultaneous connections [#37](https://github.com/diaspora/diaspora_federation/pull/37)
15
+ * Handle empty xml-elements for nested entities [26b7991](https://github.com/diaspora/diaspora_federation/commit/26b7991defe1d84d10c1186a151676076946b26f)
16
+ * Gracefully handle missing xml elements of relayables [9097097](https://github.com/diaspora/diaspora_federation/commit/90970973a58cbc3d897d21a43c0a6c93a30605be)
17
+
18
+ # 0.1.1
19
+
20
+ ## Features
21
+
22
+ * Fetch root posts for reshares [9b090a3](https://github.com/diaspora/diaspora_federation/commit/9b090a39501705f00403f124e215e78866039f1e)
23
+
24
+ # 0.1.0
25
+
26
+ ## Features
27
+
28
+ * Added Salmon support
data/README.md CHANGED
@@ -10,7 +10,8 @@
10
10
  [![Inline docs](https://inch-ci.org/github/diaspora/diaspora_federation.svg?branch=master)](https://inch-ci.org/github/diaspora/diaspora_federation)
11
11
  [![Gem Version](https://badge.fury.io/rb/diaspora_federation.svg)](https://badge.fury.io/rb/diaspora_federation)
12
12
 
13
- [Documentation](http://www.rubydoc.info/gems/diaspora_federation/) |
13
+ [Gem Documentation](http://www.rubydoc.info/gems/diaspora_federation/) |
14
+ [Protocol Documentation](http://diaspora.github.io/diaspora_federation/) |
14
15
  [Bugtracker](https://github.com/diaspora/diaspora_federation/issues)
15
16
 
16
17
  This repository contains two gems:
@@ -48,7 +48,7 @@ module DiasporaFederation
48
48
  # @return [Callbacks] callbacks
49
49
  attr_reader :callbacks
50
50
 
51
- # the pod url
51
+ # The pod url
52
52
  #
53
53
  # @overload server_uri
54
54
  # @return [URI] the server uri
@@ -80,7 +80,7 @@ module DiasporaFederation
80
80
  # @param [Integer] value max number of parallel requests
81
81
  attr_accessor :http_concurrency
82
82
 
83
- # timeout in seconds for http-requests (default: +30+)
83
+ # Timeout in seconds for http-requests (default: +30+)
84
84
  #
85
85
  # @overload http_timeout
86
86
  # @return [Integer] http timeout in seconds
@@ -98,15 +98,15 @@ module DiasporaFederation
98
98
  # @param [Boolean] value verbose http output
99
99
  attr_accessor :http_verbose
100
100
 
101
- # max redirects to follow
101
+ # Max redirects to follow
102
102
  # @return [Integer] max redirects
103
103
  attr_reader :http_redirect_limit
104
104
 
105
- # user agent used for http-requests
105
+ # User agent used for http-requests
106
106
  # @return [String] user agent
107
107
  attr_reader :http_user_agent
108
108
 
109
- # configure the federation library
109
+ # Configure the federation library
110
110
  #
111
111
  # @example
112
112
  # DiasporaFederation.configure do |config|
@@ -120,7 +120,7 @@ module DiasporaFederation
120
120
  yield self
121
121
  end
122
122
 
123
- # define the callbacks
123
+ # Define the callbacks
124
124
  #
125
125
  # In order to communicate with the application which uses the diaspora_federation gem
126
126
  # callbacks are introduced. The callbacks are used for getting required data from the
@@ -130,7 +130,7 @@ module DiasporaFederation
130
130
  #
131
131
  # fetch_person_for_webfinger
132
132
  # Fetches person data from the application to form a WebFinger reply
133
- # @param [String] Diaspora ID of the person
133
+ # @param [String] diaspora* ID of the person
134
134
  # @return [DiasporaFederation::Discovery::WebFinger] person webfinger data
135
135
  #
136
136
  # fetch_person_for_hcard
@@ -144,13 +144,13 @@ module DiasporaFederation
144
144
  # @param [DiasporaFederation::Entities::Person] person data
145
145
  #
146
146
  # fetch_private_key
147
- # Fetches a private key of a person by her Diaspora ID from the application
148
- # @param [String] Diaspora ID of the person
147
+ # Fetches a private key of a person by her diaspora* ID from the application
148
+ # @param [String] diaspora* ID of the person
149
149
  # @return [OpenSSL::PKey::RSA] key
150
150
  #
151
151
  # fetch_public_key
152
- # Fetches a public key of a person by her Diaspora ID from the application
153
- # @param [String] Diaspora ID of the person
152
+ # Fetches a public key of a person by her diaspora* ID from the application
153
+ # @param [String] diaspora* ID of the person
154
154
  # @return [OpenSSL::PKey::RSA] key
155
155
  #
156
156
  # fetch_related_entity
@@ -178,12 +178,12 @@ module DiasporaFederation
178
178
  # see {Receiver.receive_private}
179
179
  #
180
180
  # fetch_public_entity
181
- # fetch a public entity from the database
181
+ # Fetch a public entity from the database
182
182
  # @param [String] entity_type (Post, StatusMessage, etc)
183
183
  # @param [String] guid the guid of the entity
184
184
  #
185
185
  # fetch_person_url_to
186
- # fetch the url to path for a person
186
+ # Fetch the url to path for a person
187
187
  # @param [String] diaspora_id
188
188
  # @param [String] path
189
189
  #
@@ -206,7 +206,7 @@ module DiasporaFederation
206
206
  @callbacks.instance_eval(&block)
207
207
  end
208
208
 
209
- # validates if the engine is configured correctly
209
+ # Validates if the engine is configured correctly
210
210
  #
211
211
  # called from after_initialize
212
212
  # @raise [ConfigurationError] if the configuration is incomplete or invalid
@@ -2,7 +2,7 @@ module DiasporaFederation
2
2
  # Callbacks are used to communicate with the application. They are called to
3
3
  # fetch data and after data is received.
4
4
  class Callbacks
5
- # Initializes a new Callbacks object with the event-keys that need to be defined.
5
+ # Initializes a new Callbacks object with the event-keys that need to be defined
6
6
  #
7
7
  # @example
8
8
  # Callbacks.new %i(
@@ -16,7 +16,7 @@ module DiasporaFederation
16
16
  @handlers = {}
17
17
  end
18
18
 
19
- # defines a callback
19
+ # Defines a callback
20
20
  #
21
21
  # @example
22
22
  # callbacks.on :some_event do |arg1|
@@ -33,7 +33,7 @@ module DiasporaFederation
33
33
  @handlers[event] = callback
34
34
  end
35
35
 
36
- # triggers a callback
36
+ # Triggers a callback
37
37
  #
38
38
  # @example
39
39
  # callbacks.trigger :some_event, "foo"
@@ -47,7 +47,7 @@ module DiasporaFederation
47
47
  @handlers[event].call(*args)
48
48
  end
49
49
 
50
- # checks if all callbacks are defined
50
+ # Checks if all callbacks are defined
51
51
  # @return [Boolean]
52
52
  def definition_complete?
53
53
  missing_handlers.empty?
@@ -1,7 +1,7 @@
1
1
  module DiasporaFederation
2
2
  # This module provides the namespace for the various classes implementing
3
3
  # WebFinger and other protocols used for metadata discovery on remote servers
4
- # in the Diaspora* network.
4
+ # in the diaspora* network.
5
5
  module Discovery
6
6
  end
7
7
  end
@@ -1,19 +1,19 @@
1
1
  module DiasporaFederation
2
2
  module Discovery
3
- # This class contains the logic to fetch all data for the given diaspora ID
3
+ # This class contains the logic to fetch all data for the given diaspora* ID.
4
4
  class Discovery
5
5
  include DiasporaFederation::Logging
6
6
 
7
- # @return [String] the diaspora ID of the account
7
+ # @return [String] the diaspora* ID of the account
8
8
  attr_reader :diaspora_id
9
9
 
10
- # create a discovery class for the diaspora-id
11
- # @param [String] diaspora_id the diaspora id to discover
10
+ # Creates a discovery class for the diaspora* ID
11
+ # @param [String] diaspora_id the diaspora* ID to discover
12
12
  def initialize(diaspora_id)
13
13
  @diaspora_id = clean_diaspora_id(diaspora_id)
14
14
  end
15
15
 
16
- # fetch all metadata for the account and saves it via callback
16
+ # Fetches all metadata for the account and saves it via callback
17
17
  # @return [Person]
18
18
  def fetch_and_save
19
19
  logger.info "Fetch data for #{diaspora_id}"
@@ -28,9 +28,9 @@ module DiasporaFederation
28
28
  private
29
29
 
30
30
  def validate_diaspora_id
31
- # validates if the diaspora ID matches the diaspora ID in the webfinger response
31
+ # Validates if the diaspora* ID matches the diaspora* ID in the webfinger response
32
32
  return if diaspora_id == clean_diaspora_id(webfinger.acct_uri)
33
- raise DiscoveryError, "Diaspora ID does not match: Wanted #{diaspora_id} but got" \
33
+ raise DiscoveryError, "diaspora* ID does not match: Wanted #{diaspora_id} but got" \
34
34
  " #{clean_diaspora_id(webfinger.acct_uri)}"
35
35
  end
36
36
 
@@ -59,7 +59,7 @@ module DiasporaFederation
59
59
  end
60
60
 
61
61
  def legacy_webfinger_url_from_host_meta
62
- # this tries the xrd url with https first, then falls back to http
62
+ # This tries the xrd url with https first, then falls back to http.
63
63
  host_meta = HostMeta.from_xml get(host_meta_url, true)
64
64
  host_meta.webfinger_template_url.gsub("{uri}", "acct:#{diaspora_id}")
65
65
  end
@@ -1,6 +1,6 @@
1
1
  module DiasporaFederation
2
2
  module Discovery
3
- # This class provides the means of generating an parsing account data to and
3
+ # This class provides the means of generating and parsing account data to and
4
4
  # from the hCard format.
5
5
  # hCard is based on +RFC 2426+ (vCard) which got superseded by +RFC 6350+.
6
6
  # There is a draft for a new h-card format specification, that makes use of
@@ -46,9 +46,9 @@ module DiasporaFederation
46
46
  property :guid
47
47
 
48
48
  # @!attribute [r] nickname
49
- # the first part of the diaspora ID
49
+ # The first part of the diaspora* ID
50
50
  # @return [String] nickname
51
- property :nickname
51
+ property :nickname, default: nil
52
52
 
53
53
  # @!attribute [r] full_name
54
54
  # @return [String] display name of the user
@@ -56,7 +56,7 @@ module DiasporaFederation
56
56
 
57
57
  # @!attribute [r] url
58
58
  # @deprecated should be changed to the profile url. The pod url is in
59
- # the WebFinger (see {WebFinger#seed_url}, will affect older Diaspora*
59
+ # the WebFinger (see {WebFinger#seed_url}, will affect older diaspora*
60
60
  # installations).
61
61
  #
62
62
  # @return [String] link to the pod
@@ -83,7 +83,7 @@ module DiasporaFederation
83
83
 
84
84
  # @!attribute [r] first_name
85
85
  # @deprecated We decided to only use one name field, these should be removed
86
- # in later iterations (will affect older Diaspora* installations).
86
+ # in later iterations (will affect older diaspora* installations).
87
87
  #
88
88
  # @see #full_name
89
89
  # @return [String] first name
@@ -91,7 +91,7 @@ module DiasporaFederation
91
91
 
92
92
  # @!attribute [r] last_name
93
93
  # @deprecated We decided to only use one name field, these should be removed
94
- # in later iterations (will affect older Diaspora* installations).
94
+ # in later iterations (will affect older diaspora* installations).
95
95
  #
96
96
  # @see #full_name
97
97
  # @return [String] last name
@@ -100,7 +100,7 @@ module DiasporaFederation
100
100
  # @!attribute [r] searchable
101
101
  # @deprecated As this is a simple property, consider move to WebFinger instead
102
102
  # of HCard. vCard has no comparable field for this information, but
103
- # Webfinger may declare arbitrary properties (will affect older Diaspora*
103
+ # Webfinger may declare arbitrary properties (will affect older diaspora*
104
104
  # installations).
105
105
  #
106
106
  # flag if a user is searchable by name
@@ -152,7 +152,7 @@ module DiasporaFederation
152
152
  builder.doc.to_xhtml(indent: 2, indent_text: " ")
153
153
  end
154
154
 
155
- # Creates a new HCard instance from the given HTML string.
155
+ # Creates a new HCard instance from the given HTML string
156
156
  # @param html_string [String] HTML string
157
157
  # @return [HCard] HCard instance
158
158
  # @raise [InvalidData] if the HTML string is invalid or incomplete
@@ -219,7 +219,7 @@ module DiasporaFederation
219
219
  end
220
220
  end
221
221
 
222
- # Calls {HCard#add_property} for a simple text property.
222
+ # Calls {HCard#add_property} for a simple text property
223
223
  # @param container [Nokogiri::XML::Element] parent element
224
224
  # @param name [Symbol] property name
225
225
  # @param class_name [String] HTML class name
@@ -253,8 +253,7 @@ module DiasporaFederation
253
253
  # @param [LibXML::XML::Document] doc HTML document
254
254
  # @return [Boolean] validation result
255
255
  private_class_method def self.html_document_complete?(doc)
256
- !(doc.at_css(SELECTORS[:fn]).nil? || doc.at_css(SELECTORS[:nickname]).nil? ||
257
- doc.at_css(SELECTORS[:photo]).nil?)
256
+ !(doc.at_css(SELECTORS[:fn]).nil? || doc.at_css(SELECTORS[:photo]).nil?)
258
257
  end
259
258
 
260
259
  private_class_method def self.parse_html_and_validate(html_string)
@@ -270,7 +269,7 @@ module DiasporaFederation
270
269
  end
271
270
 
272
271
  private_class_method def self.content_from_doc(doc, content_selector)
273
- element_from_doc(doc, content_selector).content
272
+ element_from_doc(doc, content_selector).try(:content)
274
273
  end
275
274
 
276
275
  private_class_method def self.photo_from_doc(doc, photo_selector)
@@ -4,7 +4,7 @@ module DiasporaFederation
4
4
  # Generates and parses Host Meta documents.
5
5
  #
6
6
  # This is a minimal implementation of the standard, only to the degree of what
7
- # is used for the purposes of the Diaspora* protocol. (e.g. WebFinger)
7
+ # is used for the purposes of the diaspora* protocol. (e.g. WebFinger)
8
8
  #
9
9
  # @example Creating a Host Meta document
10
10
  # doc = HostMeta.from_base_url("https://pod.example.tld/")
@@ -19,7 +19,7 @@ module DiasporaFederation
19
19
  class HostMeta
20
20
  private_class_method :new
21
21
 
22
- # create a new host-meta instance
22
+ # Creates a new host-meta instance
23
23
  # @param [String] webfinger_url the webfinger-url
24
24
  def initialize(webfinger_url)
25
25
  @webfinger_url = webfinger_url
@@ -1,9 +1,7 @@
1
1
  module DiasporaFederation
2
2
  module Discovery
3
- # The WebFinger document used for Diaspora* user discovery is based on an older
4
- # draft of the specification you can find in the wiki of the "webfinger" project
5
- # on {http://code.google.com/p/webfinger/wiki/WebFingerProtocol Google Code}
6
- # (from around 2010).
3
+ # The WebFinger document used for diaspora* user discovery is based on an
4
+ # {http://tools.ietf.org/html/draft-jones-appsawg-webfinger older draft of the specification}.
7
5
  #
8
6
  # In the meantime an actual RFC draft has been in development, which should
9
7
  # serve as a base for all future changes of this implementation.
@@ -30,7 +28,6 @@ module DiasporaFederation
30
28
  #
31
29
  # @see http://tools.ietf.org/html/draft-jones-appsawg-webfinger "WebFinger" -
32
30
  # current draft
33
- # @see http://code.google.com/p/webfinger/wiki/CommonLinkRelations
34
31
  # @see http://www.iana.org/assignments/link-relations/link-relations.xhtml
35
32
  # official list of IANA link relations
36
33
  class WebFinger < Entity
@@ -58,7 +55,7 @@ module DiasporaFederation
58
55
  property :profile_url
59
56
 
60
57
  # @!attribute [r] atom_url
61
- # This atom feed is an Activity Stream of the user's public posts. Diaspora
58
+ # This atom feed is an Activity Stream of the user's public posts. diaspora*
62
59
  # pods SHOULD publish an Activity Stream of public posts, but there is
63
60
  # currently no requirement to be able to read Activity Streams.
64
61
  # @see http://activitystrea.ms/ Activity Streams specification
@@ -82,7 +79,7 @@ module DiasporaFederation
82
79
  # @!attribute [r] guid
83
80
  # @deprecated Either convert these to +Property+ elements or move to the
84
81
  # +hCard+, which actually has fields for an +UID+ defined in the +vCard+
85
- # specification (will affect older Diaspora* installations).
82
+ # specification (will affect older diaspora* installations).
86
83
  #
87
84
  # @see HCard#guid
88
85
  # @see Entities::Person#guid
@@ -92,7 +89,7 @@ module DiasporaFederation
92
89
  # @!attribute [r] public_key
93
90
  # @deprecated Either convert these to +Property+ elements or move to the
94
91
  # +hCard+, which actually has fields for an +KEY+ defined in the +vCard+
95
- # specification (will affect older Diaspora* installations).
92
+ # specification (will affect older diaspora* installations).
96
93
  #
97
94
  # @see HCard#public_key
98
95
  #
@@ -111,7 +108,7 @@ module DiasporaFederation
111
108
 
112
109
  # @deprecated This should be a +Property+ or moved to the +hCard+, but +Link+
113
110
  # is inappropriate according to the specification (will affect older
114
- # Diaspora* installations).
111
+ # diaspora* installations).
115
112
  # +guid+ link relation
116
113
  REL_GUID = "http://joindiaspora.com/guid".freeze
117
114
 
@@ -130,11 +127,11 @@ module DiasporaFederation
130
127
 
131
128
  # @deprecated This should be a +Property+ or moved to the +hcard+, but +Link+
132
129
  # is inappropriate according to the specification (will affect older
133
- # Diaspora* installations).
130
+ # diaspora* installations).
134
131
  # +pubkey+ link relation
135
132
  REL_PUBKEY = "diaspora-public-key".freeze
136
133
 
137
- # Create the XML string from the current WebFinger instance
134
+ # Creates the XML string from the current WebFinger instance
138
135
  # @return [String] XML string
139
136
  def to_xml
140
137
  doc = XrdDocument.new
@@ -146,7 +143,7 @@ module DiasporaFederation
146
143
  doc.to_xml
147
144
  end
148
145
 
149
- # Create a WebFinger instance from the given XML string.
146
+ # Creates a WebFinger instance from the given XML string
150
147
  # @param [String] webfinger_xml WebFinger XML string
151
148
  # @return [WebFinger] WebFinger instance
152
149
  # @raise [InvalidData] if the given XML string is invalid or incomplete
@@ -229,7 +226,7 @@ module DiasporaFederation
229
226
  element ? element[:template] : nil
230
227
  end
231
228
 
232
- # this method is used to parse the alias_url from the XML.
229
+ # This method is used to parse the alias_url from the XML.
233
230
  # * redmatrix has sometimes no alias, return nil
234
231
  # * old pods had quotes around the alias url, this can be removed later
235
232
  # * friendica has two aliases and the first is with "acct:": return only an URL starting with http (or https)
@@ -1,7 +1,7 @@
1
1
  module DiasporaFederation
2
2
  module Discovery
3
3
  # This class implements basic handling of XRD documents as far as it is
4
- # necessary in the context of the protocols used with Diaspora* federation.
4
+ # necessary in the context of the protocols used with diaspora* federation.
5
5
  #
6
6
  # @note {http://tools.ietf.org/html/rfc6415 RFC 6415} recommends that servers
7
7
  # should also offer the JRD format in addition to the XRD representation.
@@ -1,8 +1,8 @@
1
1
  module DiasporaFederation
2
2
  # This namespace contains all the entities used to encapsulate data that is
3
- # passed around in the Diaspora* network as part of the federation protocol.
3
+ # passed around in the diaspora* network as part of the federation protocol.
4
4
  #
5
- # All entities must be defined in this namespace. otherwise the XML
5
+ # All entities must be defined in this namespace. Otherwise the XML
6
6
  # de-serialization will fail.
7
7
  module Entities
8
8
  end