diaspora_federation 0.1.5 → 0.1.6
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.
- checksums.yaml +4 -4
- data/Changelog.md +12 -0
- data/lib/diaspora_federation/discovery/h_card.rb +11 -11
- data/lib/diaspora_federation/discovery/web_finger.rb +10 -10
- data/lib/diaspora_federation/entities/account_deletion.rb +1 -1
- data/lib/diaspora_federation/entities/comment.rb +2 -2
- data/lib/diaspora_federation/entities/contact.rb +4 -4
- data/lib/diaspora_federation/entities/conversation.rb +5 -5
- data/lib/diaspora_federation/entities/like.rb +2 -2
- data/lib/diaspora_federation/entities/location.rb +3 -3
- data/lib/diaspora_federation/entities/message.rb +13 -3
- data/lib/diaspora_federation/entities/participation.rb +1 -1
- data/lib/diaspora_federation/entities/person.rb +4 -4
- data/lib/diaspora_federation/entities/photo.rb +12 -12
- data/lib/diaspora_federation/entities/poll.rb +2 -2
- data/lib/diaspora_federation/entities/poll_answer.rb +2 -2
- data/lib/diaspora_federation/entities/poll_participation.rb +1 -1
- data/lib/diaspora_federation/entities/post.rb +4 -4
- data/lib/diaspora_federation/entities/profile.rb +13 -13
- data/lib/diaspora_federation/entities/related_entity.rb +3 -3
- data/lib/diaspora_federation/entities/relayable.rb +21 -14
- data/lib/diaspora_federation/entities/relayable_retraction.rb +8 -8
- data/lib/diaspora_federation/entities/request.rb +2 -2
- data/lib/diaspora_federation/entities/reshare.rb +3 -3
- data/lib/diaspora_federation/entities/retraction.rb +3 -3
- data/lib/diaspora_federation/entities/signed_retraction.rb +7 -7
- data/lib/diaspora_federation/entities/status_message.rb +2 -2
- data/lib/diaspora_federation/entity.rb +56 -9
- data/lib/diaspora_federation/properties_dsl.rb +15 -6
- data/lib/diaspora_federation/version.rb +1 -1
- data/lib/tasks/rails4.rake +15 -0
- data/lib/tasks/tests.rake +1 -1
- metadata +12 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70e250962994a4f76c0232c5ea58fd2c02411766
|
4
|
+
data.tar.gz: 131351687ab2b4cd5e63fe7a1783103b3b43f83c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 31ca9ff248eb49ba2b1ca310e7ab1f3447c488677ff6ed026f1bf39a1dbe16dde6fbf0cbc307e7fc6c1d9bb6c3123635711d8006546d5149395ab9acb13ff944
|
7
|
+
data.tar.gz: 569623cc75eeefcb9e6bdea8851495fd4fb5319664847234d4f0ddb51b4be457fce75d8deb722ee1c858fb42eb89c52be7054e6259428e23fe3ba3dc2ca30540
|
data/Changelog.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# 0.1.6
|
2
|
+
|
3
|
+
## Feature
|
4
|
+
|
5
|
+
* Add rails 5 support [82ea57e](https://github.com/diaspora/diaspora_federation/commit/82ea57ef34fe25d2ffbd6067171d73802735043b)
|
6
|
+
|
7
|
+
## Refactor
|
8
|
+
|
9
|
+
* Add property types [#43](https://github.com/diaspora/diaspora_federation/pull/43)
|
10
|
+
* Change timestamp format to ISO 8601 [#43](https://github.com/diaspora/diaspora_federation/pull/43)
|
11
|
+
* Move protocol documentation to master branch [a15d285](https://github.com/diaspora/diaspora_federation/commit/a15d285a6e778a04c5e0c2f9428be099d6abddce)
|
12
|
+
|
1
13
|
# 0.1.5
|
2
14
|
|
3
15
|
## Refactor
|
@@ -43,16 +43,16 @@ module DiasporaFederation
|
|
43
43
|
# @!attribute [r] guid
|
44
44
|
# @see Entities::Person#guid
|
45
45
|
# @return [String] guid
|
46
|
-
property :guid
|
46
|
+
property :guid, :string
|
47
47
|
|
48
48
|
# @!attribute [r] nickname
|
49
49
|
# The first part of the diaspora* ID
|
50
50
|
# @return [String] nickname
|
51
|
-
property :nickname, default: nil
|
51
|
+
property :nickname, :string, default: nil
|
52
52
|
|
53
53
|
# @!attribute [r] full_name
|
54
54
|
# @return [String] display name of the user
|
55
|
-
property :full_name
|
55
|
+
property :full_name, :string
|
56
56
|
|
57
57
|
# @!attribute [r] url
|
58
58
|
# @deprecated should be changed to the profile url. The pod url is in
|
@@ -60,7 +60,7 @@ module DiasporaFederation
|
|
60
60
|
# installations).
|
61
61
|
#
|
62
62
|
# @return [String] link to the pod
|
63
|
-
property :url, default: nil
|
63
|
+
property :url, :string, default: nil
|
64
64
|
|
65
65
|
# @!attribute [r] public_key
|
66
66
|
# When a user is created on the pod, the pod MUST generate a pgp keypair
|
@@ -69,17 +69,17 @@ module DiasporaFederation
|
|
69
69
|
# "-----BEGIN PUBLIC KEY-----" and ending with "-----END PUBLIC KEY-----".
|
70
70
|
#
|
71
71
|
# @return [String] public key
|
72
|
-
property :public_key
|
72
|
+
property :public_key, :string
|
73
73
|
|
74
74
|
# @!attribute [r] photo_large_url
|
75
75
|
# @return [String] url to the big avatar (300x300)
|
76
|
-
property :photo_large_url
|
76
|
+
property :photo_large_url, :string
|
77
77
|
# @!attribute [r] photo_medium_url
|
78
78
|
# @return [String] url to the medium avatar (100x100)
|
79
|
-
property :photo_medium_url
|
79
|
+
property :photo_medium_url, :string
|
80
80
|
# @!attribute [r] photo_small_url
|
81
81
|
# @return [String] url to the small avatar (50x50)
|
82
|
-
property :photo_small_url
|
82
|
+
property :photo_small_url, :string
|
83
83
|
|
84
84
|
# @!attribute [r] first_name
|
85
85
|
# @deprecated We decided to only use one name field, these should be removed
|
@@ -87,7 +87,7 @@ module DiasporaFederation
|
|
87
87
|
#
|
88
88
|
# @see #full_name
|
89
89
|
# @return [String] first name
|
90
|
-
property :first_name
|
90
|
+
property :first_name, :string
|
91
91
|
|
92
92
|
# @!attribute [r] last_name
|
93
93
|
# @deprecated We decided to only use one name field, these should be removed
|
@@ -95,7 +95,7 @@ module DiasporaFederation
|
|
95
95
|
#
|
96
96
|
# @see #full_name
|
97
97
|
# @return [String] last name
|
98
|
-
property :last_name
|
98
|
+
property :last_name, :string
|
99
99
|
|
100
100
|
# @!attribute [r] searchable
|
101
101
|
# @deprecated As this is a simple property, consider move to WebFinger instead
|
@@ -105,7 +105,7 @@ module DiasporaFederation
|
|
105
105
|
#
|
106
106
|
# flag if a user is searchable by name
|
107
107
|
# @return [Boolean] searchable flag
|
108
|
-
property :searchable
|
108
|
+
property :searchable, :boolean
|
109
109
|
|
110
110
|
# CSS selectors for finding all the hCard fields
|
111
111
|
SELECTORS = {
|
@@ -35,24 +35,24 @@ module DiasporaFederation
|
|
35
35
|
# The Subject element should contain the webfinger address that was asked
|
36
36
|
# for. If it does not, then this webfinger profile MUST be ignored.
|
37
37
|
# @return [String]
|
38
|
-
property :acct_uri
|
38
|
+
property :acct_uri, :string
|
39
39
|
|
40
40
|
# @!attribute [r] alias_url
|
41
41
|
# @note could be nil
|
42
42
|
# @return [String] link to the users profile
|
43
|
-
property :alias_url
|
43
|
+
property :alias_url, :string
|
44
44
|
|
45
45
|
# @!attribute [r] hcard_url
|
46
46
|
# @return [String] link to the +hCard+
|
47
|
-
property :hcard_url
|
47
|
+
property :hcard_url, :string
|
48
48
|
|
49
49
|
# @!attribute [r] seed_url
|
50
50
|
# @return [String] link to the pod
|
51
|
-
property :seed_url
|
51
|
+
property :seed_url, :string
|
52
52
|
|
53
53
|
# @!attribute [r] profile_url
|
54
54
|
# @return [String] link to the users profile
|
55
|
-
property :profile_url
|
55
|
+
property :profile_url, :string
|
56
56
|
|
57
57
|
# @!attribute [r] atom_url
|
58
58
|
# This atom feed is an Activity Stream of the user's public posts. diaspora*
|
@@ -63,18 +63,18 @@ module DiasporaFederation
|
|
63
63
|
# Note that this feed MAY also be made available through the PubSubHubbub
|
64
64
|
# mechanism by supplying a <link rel="hub"> in the atom feed itself.
|
65
65
|
# @return [String] atom feed url
|
66
|
-
property :atom_url
|
66
|
+
property :atom_url, :string
|
67
67
|
|
68
68
|
# @!attribute [r] salmon_url
|
69
69
|
# @note could be nil
|
70
70
|
# @return [String] salmon endpoint url
|
71
71
|
# @see https://cdn.rawgit.com/salmon-protocol/salmon-protocol/master/draft-panzer-salmon-00.html#SMLR
|
72
72
|
# Panzer draft for Salmon, paragraph 3.3
|
73
|
-
property :salmon_url
|
73
|
+
property :salmon_url, :string
|
74
74
|
|
75
75
|
# @!attribute [r] subscribe_url
|
76
76
|
# This url is used to find another user on the home-pod of the user in the webfinger.
|
77
|
-
property :subscribe_url
|
77
|
+
property :subscribe_url, :string
|
78
78
|
|
79
79
|
# @!attribute [r] guid
|
80
80
|
# @deprecated Either convert these to +Property+ elements or move to the
|
@@ -84,7 +84,7 @@ module DiasporaFederation
|
|
84
84
|
# @see HCard#guid
|
85
85
|
# @see Entities::Person#guid
|
86
86
|
# @return [String] guid
|
87
|
-
property :guid
|
87
|
+
property :guid, :string
|
88
88
|
|
89
89
|
# @!attribute [r] public_key
|
90
90
|
# @deprecated Either convert these to +Property+ elements or move to the
|
@@ -98,7 +98,7 @@ module DiasporaFederation
|
|
98
98
|
# DER-encoded PKCS#1 key beginning with the text
|
99
99
|
# "-----BEGIN PUBLIC KEY-----" and ending with "-----END PUBLIC KEY-----".
|
100
100
|
# @return [String] public key
|
101
|
-
property :public_key
|
101
|
+
property :public_key, :string
|
102
102
|
|
103
103
|
# +hcard_url+ link relation
|
104
104
|
REL_HCARD = "http://microformats.org/profile/hcard".freeze
|
@@ -12,7 +12,7 @@ module DiasporaFederation
|
|
12
12
|
# Alias for author
|
13
13
|
# @see AccountDeletion#author
|
14
14
|
# @return [String] diaspora* ID
|
15
|
-
property :author, alias: :diaspora_id, xml_name: :diaspora_handle
|
15
|
+
property :author, :string, alias: :diaspora_id, xml_name: :diaspora_handle
|
16
16
|
|
17
17
|
# @return [String] string representation of this object
|
18
18
|
def to_s
|
@@ -15,12 +15,12 @@ module DiasporaFederation
|
|
15
15
|
|
16
16
|
# @!attribute [r] text
|
17
17
|
# @return [String] the comment text
|
18
|
-
property :text
|
18
|
+
property :text, :string
|
19
19
|
|
20
20
|
# @!attribute [r] created_at
|
21
21
|
# Comment entity creation time
|
22
22
|
# @return [Time] creation time
|
23
|
-
property :created_at, default: -> { Time.now.utc }
|
23
|
+
property :created_at, :timestamp, default: -> { Time.now.utc }
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
@@ -9,21 +9,21 @@ module DiasporaFederation
|
|
9
9
|
# The diaspora* ID of the person who shares their profile
|
10
10
|
# @see Person#author
|
11
11
|
# @return [String] sender ID
|
12
|
-
property :author
|
12
|
+
property :author, :string
|
13
13
|
|
14
14
|
# @!attribute [r] recipient
|
15
15
|
# The diaspora* ID of the person who will be shared with
|
16
16
|
# @see Validation::Rule::DiasporaId
|
17
17
|
# @return [String] recipient ID
|
18
|
-
property :recipient
|
18
|
+
property :recipient, :string
|
19
19
|
|
20
20
|
# @!attribute [r] following
|
21
21
|
# @return [Boolean] if the author is following the person
|
22
|
-
property :following, default: true
|
22
|
+
property :following, :boolean, default: true
|
23
23
|
|
24
24
|
# @!attribute [r] sharing
|
25
25
|
# @return [Boolean] if the author is sharing with the person
|
26
|
-
property :sharing, default: true
|
26
|
+
property :sharing, :boolean, default: true
|
27
27
|
|
28
28
|
# @return [String] string representation of this object
|
29
29
|
def to_s
|
@@ -8,26 +8,26 @@ module DiasporaFederation
|
|
8
8
|
# The diaspora* ID of the person initiated the conversation
|
9
9
|
# @see Person#author
|
10
10
|
# @return [String] diaspora* ID
|
11
|
-
property :author, xml_name: :diaspora_handle
|
11
|
+
property :author, :string, xml_name: :diaspora_handle
|
12
12
|
|
13
13
|
# @!attribute [r] guid
|
14
14
|
# A random string of at least 16 chars
|
15
15
|
# @see Validation::Rule::Guid
|
16
16
|
# @return [String] conversation guid
|
17
|
-
property :guid
|
17
|
+
property :guid, :string
|
18
18
|
|
19
19
|
# @!attribute [r] subject
|
20
20
|
# @return [String] the conversation subject
|
21
|
-
property :subject
|
21
|
+
property :subject, :string
|
22
22
|
|
23
23
|
# @!attribute [r] created_at
|
24
24
|
# @return [Time] Conversation creation time
|
25
|
-
property :created_at, default: -> { Time.now.utc }
|
25
|
+
property :created_at, :timestamp, default: -> { Time.now.utc }
|
26
26
|
|
27
27
|
# @!attribute [r] participants
|
28
28
|
# The diaspora* IDs of the persons participating the conversation separated by ";"
|
29
29
|
# @return [String] participants diaspora* IDs
|
30
|
-
property :participants, xml_name: :participant_handles
|
30
|
+
property :participants, :string, xml_name: :participant_handles
|
31
31
|
|
32
32
|
# @!attribute [r] messages
|
33
33
|
# @return [[Entities::Message]] Messages of this conversation
|
@@ -14,14 +14,14 @@ module DiasporaFederation
|
|
14
14
|
# If +true+ set a like, if +false+, set a dislike (dislikes are currently not
|
15
15
|
# implemented in the diaspora* frontend).
|
16
16
|
# @return [Boolean] is it a like or a dislike
|
17
|
-
property :positive
|
17
|
+
property :positive, :boolean
|
18
18
|
|
19
19
|
# @!attribute [r] parent_type
|
20
20
|
# A string describing the type of the parent
|
21
21
|
# Can be "Post" or "Comment" (Comments are currently not implemented in the
|
22
22
|
# diaspora* frontend).
|
23
23
|
# @return [String] parent type
|
24
|
-
property :parent_type, xml_name: :target_type
|
24
|
+
property :parent_type, :string, xml_name: :target_type
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
@@ -7,17 +7,17 @@ module DiasporaFederation
|
|
7
7
|
# @!attribute [r] address
|
8
8
|
# A string describing your location, e.g. a city name, a street name, etc
|
9
9
|
# @return [String] address
|
10
|
-
property :address
|
10
|
+
property :address, :string
|
11
11
|
|
12
12
|
# @!attribute [r] lat
|
13
13
|
# Geographical latitude of your location
|
14
14
|
# @return [String] latitude
|
15
|
-
property :lat
|
15
|
+
property :lat, :string
|
16
16
|
|
17
17
|
# @!attribute [r] lng
|
18
18
|
# Geographical longitude of your location
|
19
19
|
# @return [String] longitude
|
20
|
-
property :lng
|
20
|
+
property :lng, :string
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
@@ -13,18 +13,18 @@ module DiasporaFederation
|
|
13
13
|
# @!attribute [r] text
|
14
14
|
# Text of the message composed by a user
|
15
15
|
# @return [String] text
|
16
|
-
property :text
|
16
|
+
property :text, :string
|
17
17
|
|
18
18
|
# @!attribute [r] created_at
|
19
19
|
# Message creation time
|
20
20
|
# @return [Time] creation time
|
21
|
-
property :created_at, default: -> { Time.now.utc }
|
21
|
+
property :created_at, :timestamp, default: -> { Time.now.utc }
|
22
22
|
|
23
23
|
# @!attribute [r] conversation_guid
|
24
24
|
# Guid of a conversation this message belongs to
|
25
25
|
# @see Conversation#guid
|
26
26
|
# @return [String] conversation guid
|
27
|
-
property :conversation_guid
|
27
|
+
property :conversation_guid, :string
|
28
28
|
|
29
29
|
# It is only valid to receive a {Message} from the author itself,
|
30
30
|
# or from the author of the parent {Conversation} if the author signature is valid.
|
@@ -48,6 +48,16 @@ module DiasporaFederation
|
|
48
48
|
parent.author
|
49
49
|
end
|
50
50
|
|
51
|
+
# old timestamp format, because this signature is only used from old pods which also relay with old format
|
52
|
+
# @deprecated remove after {Message} doesn't include {Relayable} anymore
|
53
|
+
def normalize_property(name, value)
|
54
|
+
if name == :created_at
|
55
|
+
value.to_s
|
56
|
+
else
|
57
|
+
super
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
51
61
|
# Default implementation, don't verify signatures for a {Message}.
|
52
62
|
# @see Entity.populate_entity
|
53
63
|
# @deprecated remove after {Message} doesn't include {Relayable} anymore
|
@@ -14,7 +14,7 @@ module DiasporaFederation
|
|
14
14
|
# A string describing a type of the target to subscribe on
|
15
15
|
# Currently only "Post" is supported.
|
16
16
|
# @return [String] parent type
|
17
|
-
property :parent_type, xml_name: :target_type
|
17
|
+
property :parent_type, :string, xml_name: :target_type
|
18
18
|
|
19
19
|
# It is only valid to receive a {Participation} from the author themself.
|
20
20
|
# @deprecated remove after {Participation} doesn't include {Relayable} anymore
|
@@ -9,7 +9,7 @@ module DiasporaFederation
|
|
9
9
|
# MUST assign them a guid - a random string of at least 16 chars.
|
10
10
|
# @see Validation::Rule::Guid
|
11
11
|
# @return [String] guid
|
12
|
-
property :guid
|
12
|
+
property :guid, :string
|
13
13
|
|
14
14
|
# @!attribute [r] author
|
15
15
|
# The diaspora* ID of the person
|
@@ -19,12 +19,12 @@ module DiasporaFederation
|
|
19
19
|
# alias for author
|
20
20
|
# @see Person#author
|
21
21
|
# @return [String] diaspora* ID
|
22
|
-
property :author, alias: :diaspora_id, xml_name: :diaspora_handle
|
22
|
+
property :author, :string, alias: :diaspora_id, xml_name: :diaspora_handle
|
23
23
|
|
24
24
|
# @!attribute [r] url
|
25
25
|
# @see Discovery::WebFinger#seed_url
|
26
26
|
# @return [String] link to the pod
|
27
|
-
property :url
|
27
|
+
property :url, :string
|
28
28
|
|
29
29
|
# @!attribute [r] profile
|
30
30
|
# All profile data of the person
|
@@ -34,7 +34,7 @@ module DiasporaFederation
|
|
34
34
|
# @!attribute [r] exported_key
|
35
35
|
# @see Discovery::HCard#public_key
|
36
36
|
# @return [String] public key
|
37
|
-
property :exported_key
|
37
|
+
property :exported_key, :string
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
@@ -8,52 +8,52 @@ module DiasporaFederation
|
|
8
8
|
# A random string of at least 16 chars
|
9
9
|
# @see Validation::Rule::Guid
|
10
10
|
# @return [String] guid
|
11
|
-
property :guid
|
11
|
+
property :guid, :string
|
12
12
|
|
13
13
|
# @!attribute [r] author
|
14
14
|
# The diaspora* ID of the person who uploaded the photo
|
15
15
|
# @see Person#author
|
16
16
|
# @return [String] author diaspora* ID
|
17
|
-
property :author, xml_name: :diaspora_handle
|
17
|
+
property :author, :string, xml_name: :diaspora_handle
|
18
18
|
|
19
19
|
# @!attribute [r] public
|
20
20
|
# Points if the photo is visible to everyone or only to some aspects
|
21
21
|
# @return [Boolean] is it public
|
22
|
-
property :public, default: false
|
22
|
+
property :public, :boolean, default: false
|
23
23
|
|
24
24
|
# @!attribute [r] created_at
|
25
25
|
# Photo entity creation time
|
26
26
|
# @return [Time] creation time
|
27
|
-
property :created_at, default: -> { Time.now.utc }
|
27
|
+
property :created_at, :timestamp, default: -> { Time.now.utc }
|
28
28
|
|
29
29
|
# @!attribute [r] remote_photo_path
|
30
30
|
# An url of the photo on a remote server
|
31
31
|
# @return [String] remote photo url
|
32
|
-
property :remote_photo_path
|
32
|
+
property :remote_photo_path, :string
|
33
33
|
|
34
34
|
# @!attribute [r] remote_photo_name
|
35
35
|
# @return [String] remote photo name
|
36
|
-
property :remote_photo_name
|
36
|
+
property :remote_photo_name, :string
|
37
37
|
|
38
38
|
# @!attribute [r] text
|
39
39
|
# @return [String] text
|
40
|
-
property :text, default: nil
|
40
|
+
property :text, :string, default: nil
|
41
41
|
|
42
42
|
# @!attribute [r] status_message_guid
|
43
43
|
# Guid of a status message this photo belongs to
|
44
44
|
# @see StatusMessage#guid
|
45
45
|
# @return [String] guid
|
46
|
-
property :status_message_guid, default: nil
|
46
|
+
property :status_message_guid, :string, default: nil
|
47
47
|
|
48
48
|
# @!attribute [r] height
|
49
49
|
# Photo height
|
50
|
-
# @return [
|
51
|
-
property :height
|
50
|
+
# @return [Integer] height
|
51
|
+
property :height, :integer
|
52
52
|
|
53
53
|
# @!attribute [r] width
|
54
54
|
# Photo width
|
55
|
-
# @return [
|
56
|
-
property :width
|
55
|
+
# @return [Integer] width
|
56
|
+
property :width, :integer
|
57
57
|
end
|
58
58
|
end
|
59
59
|
end
|
@@ -8,12 +8,12 @@ module DiasporaFederation
|
|
8
8
|
# A random string of at least 16 chars
|
9
9
|
# @see Validation::Rule::Guid
|
10
10
|
# @return [String] poll guid
|
11
|
-
property :guid
|
11
|
+
property :guid, :string
|
12
12
|
|
13
13
|
# @!attribute [r] question
|
14
14
|
# Text of the question posed by a user
|
15
15
|
# @return [String] question
|
16
|
-
property :question
|
16
|
+
property :question, :string
|
17
17
|
|
18
18
|
# @!attribute [r] poll_answers
|
19
19
|
# Array of possible answers for the poll
|
@@ -8,12 +8,12 @@ module DiasporaFederation
|
|
8
8
|
# A random string of at least 16 chars
|
9
9
|
# @see Validation::Rule::Guid
|
10
10
|
# @return [String] guid
|
11
|
-
property :guid
|
11
|
+
property :guid, :string
|
12
12
|
|
13
13
|
# @!attribute [r] answer
|
14
14
|
# Text of the answer
|
15
15
|
# @return [String] answer
|
16
|
-
property :answer
|
16
|
+
property :answer, :string
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -26,10 +26,10 @@ module DiasporaFederation
|
|
26
26
|
# @param [Entity] entity the entity in which it is included
|
27
27
|
def self.included(entity)
|
28
28
|
entity.class_eval do
|
29
|
-
property :author, xml_name: :diaspora_handle
|
30
|
-
property :guid
|
31
|
-
property :created_at, default: -> { Time.now.utc }
|
32
|
-
property :provider_display_name, default: nil
|
29
|
+
property :author, :string, xml_name: :diaspora_handle
|
30
|
+
property :guid, :string
|
31
|
+
property :created_at, :timestamp, default: -> { Time.now.utc }
|
32
|
+
property :provider_display_name, :string, default: nil
|
33
33
|
end
|
34
34
|
end
|
35
35
|
end
|
@@ -12,7 +12,7 @@ module DiasporaFederation
|
|
12
12
|
# Alias for author
|
13
13
|
# @see Profile#author
|
14
14
|
# @return [String] diaspora* ID
|
15
|
-
property :author, alias: :diaspora_id, xml_name: :diaspora_handle
|
15
|
+
property :author, :string, alias: :diaspora_id, xml_name: :diaspora_handle
|
16
16
|
|
17
17
|
# @!attribute [r] first_name
|
18
18
|
# @deprecated We decided to only use one name field, these should be removed
|
@@ -20,7 +20,7 @@ module DiasporaFederation
|
|
20
20
|
# @see #full_name
|
21
21
|
# @see Discovery::HCard#first_name
|
22
22
|
# @return [String] first name
|
23
|
-
property :first_name, default: nil
|
23
|
+
property :first_name, :string, default: nil
|
24
24
|
|
25
25
|
# @!attribute [r] last_name
|
26
26
|
# @deprecated We decided to only use one name field, these should be removed
|
@@ -28,33 +28,33 @@ module DiasporaFederation
|
|
28
28
|
# @see #full_name
|
29
29
|
# @see Discovery::HCard#last_name
|
30
30
|
# @return [String] last name
|
31
|
-
property :last_name, default: nil
|
31
|
+
property :last_name, :string, default: nil
|
32
32
|
|
33
33
|
# @!attribute [r] image_url
|
34
34
|
# @see Discovery::HCard#photo_large_url
|
35
35
|
# @return [String] url to the big avatar (300x300)
|
36
|
-
property :image_url, default: nil
|
36
|
+
property :image_url, :string, default: nil
|
37
37
|
# @!attribute [r] image_url_medium
|
38
38
|
# @see Discovery::HCard#photo_medium_url
|
39
39
|
# @return [String] url to the medium avatar (100x100)
|
40
|
-
property :image_url_medium, default: nil
|
40
|
+
property :image_url_medium, :string, default: nil
|
41
41
|
# @!attribute [r] image_url_small
|
42
42
|
# @see Discovery::HCard#photo_small_url
|
43
43
|
# @return [String] url to the small avatar (50x50)
|
44
|
-
property :image_url_small, default: nil
|
44
|
+
property :image_url_small, :string, default: nil
|
45
45
|
|
46
|
-
property :birthday, default: nil
|
47
|
-
property :gender, default: nil
|
48
|
-
property :bio, default: nil
|
49
|
-
property :location, default: nil
|
46
|
+
property :birthday, :string, default: nil
|
47
|
+
property :gender, :string, default: nil
|
48
|
+
property :bio, :string, default: nil
|
49
|
+
property :location, :string, default: nil
|
50
50
|
|
51
51
|
# @!attribute [r] searchable
|
52
52
|
# @see Discovery::HCard#searchable
|
53
53
|
# @return [Boolean] searchable flag
|
54
|
-
property :searchable, default: true
|
54
|
+
property :searchable, :boolean, default: true
|
55
55
|
|
56
|
-
property :nsfw, default: false
|
57
|
-
property :tag_string, default: nil
|
56
|
+
property :nsfw, :boolean, default: false
|
57
|
+
property :tag_string, :string, default: nil
|
58
58
|
|
59
59
|
# @return [String] string representation of this object
|
60
60
|
def to_s
|
@@ -7,17 +7,17 @@ module DiasporaFederation
|
|
7
7
|
# The diaspora* ID of the author
|
8
8
|
# @see Person#author
|
9
9
|
# @return [String] diaspora* ID
|
10
|
-
property :author
|
10
|
+
property :author, :string
|
11
11
|
|
12
12
|
# @!attribute [r] local
|
13
13
|
# +true+ if the owner of the entity is local on the pod
|
14
14
|
# @return [Boolean] is it a like or a dislike
|
15
|
-
property :local
|
15
|
+
property :local, :boolean
|
16
16
|
|
17
17
|
# @!attribute [r] public
|
18
18
|
# Shows whether the entity is visible to everyone or only to some aspects
|
19
19
|
# @return [Boolean] is it public
|
20
|
-
property :public, default: false
|
20
|
+
property :public, :boolean, default: false
|
21
21
|
|
22
22
|
# @!attribute [r] parent
|
23
23
|
# Parent if the entity also has a parent (Comment or Like) or +nil+ if it has no parent
|
@@ -54,11 +54,11 @@ module DiasporaFederation
|
|
54
54
|
# @param [Entity] klass the entity in which it is included
|
55
55
|
def self.included(klass)
|
56
56
|
klass.class_eval do
|
57
|
-
property :author, xml_name: :diaspora_handle
|
58
|
-
property :guid
|
59
|
-
property :parent_guid
|
60
|
-
property :author_signature, default: nil
|
61
|
-
property :parent_author_signature, default: nil
|
57
|
+
property :author, :string, xml_name: :diaspora_handle
|
58
|
+
property :guid, :string
|
59
|
+
property :parent_guid, :string
|
60
|
+
property :author_signature, :string, default: nil
|
61
|
+
property :parent_author_signature, :string, default: nil
|
62
62
|
entity :parent, Entities::RelatedEntity
|
63
63
|
end
|
64
64
|
|
@@ -146,19 +146,26 @@ module DiasporaFederation
|
|
146
146
|
Base64.strict_encode64(privkey.sign(DIGEST, signature_data))
|
147
147
|
end
|
148
148
|
|
149
|
-
#
|
150
|
-
# It updates also the signatures with the keys of the author and the parent
|
149
|
+
# Update the signatures with the keys of the author and the parent
|
151
150
|
# if the signatures are not there yet and if the keys are available.
|
152
151
|
#
|
153
|
-
# @return [Hash]
|
154
|
-
def
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
xml_elements[:parent_author_signature] = parent_author_signature || sign_with_parent_author_if_available.to_s
|
152
|
+
# @return [Hash] properties with updated signatures
|
153
|
+
def enriched_properties
|
154
|
+
super.merge(additional_xml_elements).tap do |hash|
|
155
|
+
hash[:author_signature] = author_signature || sign_with_author
|
156
|
+
hash[:parent_author_signature] = parent_author_signature || sign_with_parent_author_if_available.to_s
|
159
157
|
end
|
160
158
|
end
|
161
159
|
|
160
|
+
# Sort all XML elements according to the order used for the signatures.
|
161
|
+
#
|
162
|
+
# @return [Hash] sorted xml elements
|
163
|
+
def xml_elements
|
164
|
+
data = super
|
165
|
+
order = signature_order + %i(author_signature parent_author_signature)
|
166
|
+
order.map {|element| [element, data[element] || ""] }.to_h
|
167
|
+
end
|
168
|
+
|
162
169
|
# The order for signing
|
163
170
|
# @return [Array]
|
164
171
|
def signature_order
|
@@ -172,7 +179,7 @@ module DiasporaFederation
|
|
172
179
|
|
173
180
|
# @return [String] signature data string
|
174
181
|
def signature_data
|
175
|
-
data =
|
182
|
+
data = normalized_properties.merge(additional_xml_elements)
|
176
183
|
signature_order.map {|name| data[name] }.join(";")
|
177
184
|
end
|
178
185
|
|
@@ -24,25 +24,25 @@ module DiasporaFederation
|
|
24
24
|
# This signature is mandatory only when federating from an upstream author to the subscribers.
|
25
25
|
# @see Relayable#parent_author_signature
|
26
26
|
# @return [String] parent author signature
|
27
|
-
property :parent_author_signature, default: nil
|
27
|
+
property :parent_author_signature, :string, default: nil
|
28
28
|
|
29
29
|
# @!attribute [r] target_guid
|
30
30
|
# Guid of a relayable to be deleted
|
31
31
|
# @see Comment#guid
|
32
32
|
# @return [String] target guid
|
33
|
-
property :target_guid
|
33
|
+
property :target_guid, :string
|
34
34
|
|
35
35
|
# @!attribute [r] target_type
|
36
36
|
# A string describing a type of the target
|
37
37
|
# @see Retraction#target_type
|
38
38
|
# @return [String] target type
|
39
|
-
property :target_type
|
39
|
+
property :target_type, :string
|
40
40
|
|
41
41
|
# @!attribute [r] author
|
42
42
|
# The diaspora* ID of the person who deletes a relayable
|
43
43
|
# @see Person#author
|
44
44
|
# @return [String] diaspora* ID
|
45
|
-
property :author, xml_name: :sender_handle
|
45
|
+
property :author, :string, xml_name: :sender_handle
|
46
46
|
|
47
47
|
# @!attribute [r] target_author_signature
|
48
48
|
# Contains a signature of the entity using the private key of the
|
@@ -51,7 +51,7 @@ module DiasporaFederation
|
|
51
51
|
# author is done.
|
52
52
|
# @see Relayable#author_signature
|
53
53
|
# @return [String] target author signature
|
54
|
-
property :target_author_signature, default: nil
|
54
|
+
property :target_author_signature, :string, default: nil
|
55
55
|
|
56
56
|
# @!attribute [r] target
|
57
57
|
# Target entity
|
@@ -83,11 +83,11 @@ module DiasporaFederation
|
|
83
83
|
# if the signatures are not there yet and if the keys are available.
|
84
84
|
#
|
85
85
|
# @return [Hash] xml elements with updated signatures
|
86
|
-
def
|
86
|
+
def enriched_properties
|
87
87
|
privkey = DiasporaFederation.callbacks.trigger(:fetch_private_key, author)
|
88
88
|
|
89
|
-
super.tap do |
|
90
|
-
fill_required_signature(privkey,
|
89
|
+
super.tap do |hash|
|
90
|
+
fill_required_signature(privkey, hash) unless privkey.nil?
|
91
91
|
end
|
92
92
|
end
|
93
93
|
|
@@ -10,13 +10,13 @@ module DiasporaFederation
|
|
10
10
|
# The diaspora* ID of the person who share their profile
|
11
11
|
# @see Person#author
|
12
12
|
# @return [String] sender ID
|
13
|
-
property :author, xml_name: :sender_handle
|
13
|
+
property :author, :string, xml_name: :sender_handle
|
14
14
|
|
15
15
|
# @!attribute [r] recipient
|
16
16
|
# The diaspora* ID of the person who will be shared with
|
17
17
|
# @see Validation::Rule::DiasporaId
|
18
18
|
# @return [String] recipient ID
|
19
|
-
property :recipient, xml_name: :recipient_handle
|
19
|
+
property :recipient, :string, xml_name: :recipient_handle
|
20
20
|
|
21
21
|
# Use only {Contact} for receive
|
22
22
|
# @return [Contact] instance as contact
|
@@ -10,18 +10,18 @@ module DiasporaFederation
|
|
10
10
|
# The diaspora* ID of the person who posted the original post
|
11
11
|
# @see Person#author
|
12
12
|
# @return [String] diaspora* ID
|
13
|
-
property :root_author, xml_name: :root_diaspora_id
|
13
|
+
property :root_author, :string, xml_name: :root_diaspora_id
|
14
14
|
|
15
15
|
# @!attribute [r] root_guid
|
16
16
|
# Guid of the original post
|
17
17
|
# @see StatusMessage#guid
|
18
18
|
# @return [String] root guid
|
19
|
-
property :root_guid
|
19
|
+
property :root_guid, :string
|
20
20
|
|
21
21
|
# @!attribute [r] public
|
22
22
|
# Has no meaning at the moment
|
23
23
|
# @return [Boolean] public
|
24
|
-
property :public, default: true # always true? (we only reshare public posts)
|
24
|
+
property :public, :boolean, default: true # always true? (we only reshare public posts)
|
25
25
|
|
26
26
|
# @return [String] string representation of this object
|
27
27
|
def to_s
|
@@ -8,17 +8,17 @@ module DiasporaFederation
|
|
8
8
|
# The diaspora* ID of the person who deletes the entity
|
9
9
|
# @see Person#author
|
10
10
|
# @return [String] diaspora* ID
|
11
|
-
property :author, xml_name: :diaspora_handle
|
11
|
+
property :author, :string, xml_name: :diaspora_handle
|
12
12
|
|
13
13
|
# @!attribute [r] target_guid
|
14
14
|
# Guid of the entity to be deleted
|
15
15
|
# @return [String] target guid
|
16
|
-
property :target_guid, xml_name: :post_guid
|
16
|
+
property :target_guid, :string, xml_name: :post_guid
|
17
17
|
|
18
18
|
# @!attribute [r] target_type
|
19
19
|
# A string describing the type of the target
|
20
20
|
# @return [String] target type
|
21
|
-
property :target_type, xml_name: :type
|
21
|
+
property :target_type, :string, xml_name: :type
|
22
22
|
|
23
23
|
# @!attribute [r] target
|
24
24
|
# Target entity
|
@@ -10,25 +10,25 @@ module DiasporaFederation
|
|
10
10
|
# Guid of a post to be deleted
|
11
11
|
# @see Retraction#target_guid
|
12
12
|
# @return [String] target guid
|
13
|
-
property :target_guid
|
13
|
+
property :target_guid, :string
|
14
14
|
|
15
15
|
# @!attribute [r] target_type
|
16
16
|
# A string describing the type of the target
|
17
17
|
# @see Retraction#target_type
|
18
18
|
# @return [String] target type
|
19
|
-
property :target_type
|
19
|
+
property :target_type, :string
|
20
20
|
|
21
21
|
# @!attribute [r] author
|
22
22
|
# The diaspora* ID of the person who deletes a post
|
23
23
|
# @see Person#author
|
24
24
|
# @return [String] diaspora* ID
|
25
|
-
property :author, xml_name: :sender_handle
|
25
|
+
property :author, :string, xml_name: :sender_handle
|
26
26
|
|
27
27
|
# @!attribute [r] author_signature
|
28
28
|
# Contains a signature of the entity using the private key of the author of a post
|
29
29
|
# This signature is mandatory.
|
30
30
|
# @return [String] author signature
|
31
|
-
property :target_author_signature, default: nil
|
31
|
+
property :target_author_signature, :string, default: nil
|
32
32
|
|
33
33
|
# @!attribute [r] target
|
34
34
|
# Target entity
|
@@ -68,9 +68,9 @@ module DiasporaFederation
|
|
68
68
|
# if the signatures are not there yet and if the keys are available.
|
69
69
|
#
|
70
70
|
# @return [Hash] xml elements with updated signatures
|
71
|
-
def
|
72
|
-
super.tap do |
|
73
|
-
|
71
|
+
def enriched_properties
|
72
|
+
super.tap do |hash|
|
73
|
+
hash[:target_author_signature] = target_author_signature || sign_with_author.to_s
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
@@ -9,7 +9,7 @@ module DiasporaFederation
|
|
9
9
|
# @!attribute [r] text
|
10
10
|
# Text of the status message composed by the user
|
11
11
|
# @return [String] text of the status message
|
12
|
-
property :text, xml_name: :raw_message
|
12
|
+
property :text, :string, xml_name: :raw_message
|
13
13
|
|
14
14
|
# @!attribute [r] photos
|
15
15
|
# Optional photos attached to the status message
|
@@ -29,7 +29,7 @@ module DiasporaFederation
|
|
29
29
|
# @!attribute [r] public
|
30
30
|
# Shows whether the status message is visible to everyone or only to some aspects
|
31
31
|
# @return [Boolean] is it public
|
32
|
-
property :public, default: false
|
32
|
+
property :public, :boolean, default: false
|
33
33
|
|
34
34
|
private
|
35
35
|
|
@@ -76,7 +76,7 @@ module DiasporaFederation
|
|
76
76
|
properties.map {|key, value|
|
77
77
|
type = self.class.class_props[key]
|
78
78
|
|
79
|
-
if type
|
79
|
+
if type.instance_of?(Symbol) || value.nil?
|
80
80
|
[key, value]
|
81
81
|
elsif type.instance_of?(Class)
|
82
82
|
[key, value.to_h]
|
@@ -160,11 +160,15 @@ module DiasporaFederation
|
|
160
160
|
type = self.class.class_props[name]
|
161
161
|
return false if type.nil? # property undefined
|
162
162
|
|
163
|
-
|
163
|
+
setable_property?(type, val) || setable_nested?(type, val) || setable_multi?(type, val)
|
164
|
+
end
|
165
|
+
|
166
|
+
def setable_property?(type, val)
|
167
|
+
setable_string?(type, val) || type == :timestamp && val.is_a?(Time)
|
164
168
|
end
|
165
169
|
|
166
170
|
def setable_string?(type, val)
|
167
|
-
|
171
|
+
%i(string integer boolean).include?(type) && val.respond_to?(:to_s)
|
168
172
|
end
|
169
173
|
|
170
174
|
def setable_nested?(type, val)
|
@@ -215,8 +219,29 @@ module DiasporaFederation
|
|
215
219
|
end
|
216
220
|
end
|
217
221
|
|
222
|
+
def normalized_properties
|
223
|
+
properties.map {|name, value| [name, normalize_property(name, value)] }.to_h
|
224
|
+
end
|
225
|
+
|
226
|
+
def normalize_property(name, value)
|
227
|
+
case self.class.class_props[name]
|
228
|
+
when :string, :integer, :boolean
|
229
|
+
value.to_s
|
230
|
+
when :timestamp
|
231
|
+
value.nil? ? "" : value.utc.iso8601
|
232
|
+
else
|
233
|
+
value
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
237
|
+
# default: nothing to enrich
|
238
|
+
def enriched_properties
|
239
|
+
normalized_properties
|
240
|
+
end
|
241
|
+
|
242
|
+
# default: no special order
|
218
243
|
def xml_elements
|
219
|
-
|
244
|
+
enriched_properties
|
220
245
|
end
|
221
246
|
|
222
247
|
def add_property_to_xml(doc, root_element, name, value)
|
@@ -255,12 +280,12 @@ module DiasporaFederation
|
|
255
280
|
end
|
256
281
|
|
257
282
|
# @param [String] name property name to parse
|
258
|
-
# @param [Class] type target type to parse
|
283
|
+
# @param [Class, Symbol] type target type to parse
|
259
284
|
# @param [Nokogiri::XML::Element] root_node XML node to parse
|
260
285
|
# @return [Object] parsed data
|
261
286
|
private_class_method def self.parse_element_from_node(name, type, root_node)
|
262
|
-
if type
|
263
|
-
parse_string_from_node(name, root_node)
|
287
|
+
if type.instance_of?(Symbol)
|
288
|
+
parse_string_from_node(name, type, root_node)
|
264
289
|
elsif type.instance_of?(Array)
|
265
290
|
parse_array_from_node(type.first, root_node)
|
266
291
|
elsif type.ancestors.include?(Entity)
|
@@ -271,12 +296,34 @@ module DiasporaFederation
|
|
271
296
|
# Create simple entry in data hash
|
272
297
|
#
|
273
298
|
# @param [String] name xml tag to parse
|
299
|
+
# @param [Class, Symbol] type target type to parse
|
274
300
|
# @param [Nokogiri::XML::Element] root_node XML root_node to parse
|
275
301
|
# @return [String] data
|
276
|
-
private_class_method def self.parse_string_from_node(name, root_node)
|
302
|
+
private_class_method def self.parse_string_from_node(name, type, root_node)
|
277
303
|
node = root_node.xpath(name.to_s)
|
278
304
|
node = root_node.xpath(xml_names[name].to_s) if node.empty?
|
279
|
-
node.first.text if node.any?
|
305
|
+
parse_property(type, node.first.text) if node.any?
|
306
|
+
end
|
307
|
+
|
308
|
+
# @param [Symbol] type target type to parse
|
309
|
+
# @param [String] text data as string
|
310
|
+
# @return [String, Boolean, Integer, Time] data
|
311
|
+
private_class_method def self.parse_property(type, text)
|
312
|
+
case type
|
313
|
+
when :timestamp
|
314
|
+
begin
|
315
|
+
Time.parse(text).utc
|
316
|
+
rescue
|
317
|
+
nil
|
318
|
+
end
|
319
|
+
when :integer
|
320
|
+
text.to_i if text =~ /^\d+$/
|
321
|
+
when :boolean
|
322
|
+
return true if text =~ /(true|t|yes|y|1)$/i
|
323
|
+
false if text =~ /(false|f|no|n|0)$/i
|
324
|
+
else
|
325
|
+
text
|
326
|
+
end
|
280
327
|
end
|
281
328
|
|
282
329
|
# Create an entry in the data hash for the nested entity
|
@@ -18,12 +18,15 @@ module DiasporaFederation
|
|
18
18
|
|
19
19
|
# Define a generic (string-type) property
|
20
20
|
# @param [Symbol] name property name
|
21
|
+
# @param [Symbol] type property type
|
21
22
|
# @param [Hash] opts further options
|
22
23
|
# @option opts [Object, #call] :default a default value, making the
|
23
24
|
# property optional
|
24
25
|
# @option opts [Symbol] :xml_name another name used for xml generation
|
25
|
-
def property(name, opts={})
|
26
|
-
|
26
|
+
def property(name, type, opts={})
|
27
|
+
raise InvalidType unless property_type_valid?(type)
|
28
|
+
|
29
|
+
define_property name, type, opts
|
27
30
|
end
|
28
31
|
|
29
32
|
# Define a property that should contain another Entity or an array of
|
@@ -35,7 +38,7 @@ module DiasporaFederation
|
|
35
38
|
# @option opts [Object, #call] :default a default value, making the
|
36
39
|
# property optional
|
37
40
|
def entity(name, type, opts={})
|
38
|
-
raise InvalidType unless
|
41
|
+
raise InvalidType unless entity_type_valid?(type)
|
39
42
|
|
40
43
|
define_property name, type, opts
|
41
44
|
end
|
@@ -86,9 +89,11 @@ module DiasporaFederation
|
|
86
89
|
|
87
90
|
# @deprecated
|
88
91
|
def determine_xml_name(name, type, opts={})
|
89
|
-
|
92
|
+
if !type.instance_of?(Symbol) && opts.has_key?(:xml_name)
|
93
|
+
raise ArgumentError, "xml_name is not supported for nested entities"
|
94
|
+
end
|
90
95
|
|
91
|
-
if type
|
96
|
+
if type.instance_of?(Symbol)
|
92
97
|
if opts.has_key? :xml_name
|
93
98
|
raise InvalidName, "invalid xml_name" unless name_valid?(opts[:xml_name])
|
94
99
|
opts[:xml_name]
|
@@ -121,10 +126,14 @@ module DiasporaFederation
|
|
121
126
|
name.instance_of?(Symbol)
|
122
127
|
end
|
123
128
|
|
129
|
+
def property_type_valid?(type)
|
130
|
+
%i(string integer boolean timestamp).include?(type)
|
131
|
+
end
|
132
|
+
|
124
133
|
# Checks if the type extends {Entity}
|
125
134
|
# @param [Class] type the type to check
|
126
135
|
# @return [Boolean]
|
127
|
-
def
|
136
|
+
def entity_type_valid?(type)
|
128
137
|
[type].flatten.all? {|type|
|
129
138
|
type.respond_to?(:ancestors) && type.ancestors.include?(Entity)
|
130
139
|
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
if defined?(RSpec)
|
2
|
+
namespace :rails4 do
|
3
|
+
desc "Run all specs that generate fixtures for rspec with rails 4"
|
4
|
+
RSpec::Core::RakeTask.new(:generate_fixtures) do |t|
|
5
|
+
t.rspec_opts = ["--tag fixture4"]
|
6
|
+
end
|
7
|
+
|
8
|
+
desc "Run all specs in spec directory (exluding controller specs)"
|
9
|
+
RSpec::Core::RakeTask.new(:spec) do |task|
|
10
|
+
task.pattern = FileList["spec/**/*_spec.rb"].exclude("spec/controllers/**/*_spec.rb")
|
11
|
+
end
|
12
|
+
|
13
|
+
task test: %w(spec:prepare_db generate_fixtures spec)
|
14
|
+
end
|
15
|
+
end
|
data/lib/tasks/tests.rake
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: diaspora_federation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Benjamin Neff
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -34,16 +34,22 @@ dependencies:
|
|
34
34
|
name: faraday
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - "
|
37
|
+
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: 0.9.0
|
40
|
+
- - "<"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 0.11.0
|
40
43
|
type: :runtime
|
41
44
|
prerelease: false
|
42
45
|
version_requirements: !ruby/object:Gem::Requirement
|
43
46
|
requirements:
|
44
|
-
- - "
|
47
|
+
- - ">="
|
45
48
|
- !ruby/object:Gem::Version
|
46
49
|
version: 0.9.0
|
50
|
+
- - "<"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 0.11.0
|
47
53
|
- !ruby/object:Gem::Dependency
|
48
54
|
name: faraday_middleware
|
49
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -188,6 +194,7 @@ files:
|
|
188
194
|
- lib/diaspora_federation/version.rb
|
189
195
|
- lib/tasks/build.rake
|
190
196
|
- lib/tasks/diaspora_federation_tasks.rake
|
197
|
+
- lib/tasks/rails4.rake
|
191
198
|
- lib/tasks/tests.rake
|
192
199
|
homepage: https://github.com/diaspora/diaspora_federation
|
193
200
|
licenses:
|
@@ -209,7 +216,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
209
216
|
version: '0'
|
210
217
|
requirements: []
|
211
218
|
rubyforge_project:
|
212
|
-
rubygems_version: 2.5.
|
219
|
+
rubygems_version: 2.5.2
|
213
220
|
signing_key:
|
214
221
|
specification_version: 4
|
215
222
|
summary: diaspora* federation library
|