Documentation is so rad.

This commit is contained in:
Raphael Sofaer 2011-06-13 17:02:18 -07:00
parent 7171aa05ed
commit 480d7c47cf
5 changed files with 20 additions and 3 deletions

View file

@ -35,7 +35,7 @@ app/controllers/aspects_controller.rb a1d388f76b63ceeb7a6bfca489180a3c8d8147d5
app/helpers/markdownify_helper.rb 144de1c8e41cd9ea62b9f2bfd5e01d3e270db2b7
app/helpers/publics_helper.rb 391ae86656d7542f99057baf4e54384e98fc5976
lib/rake_helpers.rb 6dcf44ace70c72350ed647e35a97ce89fd90f975
lib/diaspora/encryptable.rb 2222d77333b74fa18fd34baf1434c84aa138ad3c
lib/diaspora/encryptable.rb 1546637e5d086c1d8c53214a94be9387cc6ab50d
app/mailers/notifier.rb 1a98e17916d3a63b1cee8cd2c13174e303521157
lib/diaspora/parser.rb cfb7f7f797b43fa57ae507527f32fc96801dda1c
app/models/request.rb 6ba9fafc1eed807fc9bb70f1eb80c44485c78128
@ -118,7 +118,7 @@ app/models/jobs/update_service_users.rb 87d8fb174d9a3f2402b76dff098af30c9e62c6bb
app/controllers/contacts_controller.rb 6e51e74f08eb8d476d0252ff68b8aa9c0d6a7847
app/helpers/comments_helper.rb e4bb2ef4b1d4abba48c792f4f2ae245d8b958a8b
app/models/jobs/notify_local_users.rb f1a552240566e61912b276d964ce907fcb97c5d0
lib/diaspora/relayable.rb be1958fee031be5ba9a985976aac36d62e71ea9f
lib/diaspora/relayable.rb ffef93646ef927ce597441c51ecdc0246a721fbf
lib/diaspora/ostatus_builder.rb e19d782a0f9776a1758f87dd17c5d589e176a9e1
app/models/jobs/socket_webfinger.rb 4c3a50bff8c51007108dcb4ffd277a1f20b05a36
app/models/services/facebook.rb 289d3f2c968bb9d4d6a4183b4fd71816d7e2b680

Binary file not shown.

View file

@ -44,7 +44,6 @@ class User < ActiveRecord::Base
person.save if person && person.changed?
end
attr_accessible :getting_started, :password, :password_confirmation, :language, :disable_mail
def update_user_preferences(pref_hash)

View file

@ -1,5 +1,10 @@
module Diaspora
module Encryptable
# Check that signature is a correct signature of #signable_string by person
#
# @param [String] signature The signature to be verified.
# @param [Person] person The signer.
# @return [Boolean]
def verify_signature(signature, person)
if person.nil?
Rails.logger.info("event=verify_signature status=abort reason=no_person guid=#{self.guid}")
@ -18,6 +23,8 @@ module Diaspora
validity
end
# @param [OpenSSL::PKey::RSA] key An RSA key
# @return [String] A Base64 encoded signature of #signable_string with key
def sign_with_key(key)
sig = Base64.encode64(key.sign "SHA", signable_string)
log_hash = {:event => :sign_with_key, :status => :complete}
@ -26,6 +33,7 @@ module Diaspora
sig
end
# @return [Array<String>] The ROXML attrs other than author_signature and parent_author_signature.
def signable_accessors
accessors = self.class.roxml_attrs.collect do |definition|
definition.accessor
@ -36,12 +44,15 @@ module Diaspora
accessors
end
# @return [String] Defaults to the ROXML attrs which are not signatures.
def signable_string
signable_accessors.collect{ |accessor|
(self.send accessor.to_sym).to_s
}.join(';')
end
# @abstract
# @return [String]
#def signable_string
# raise NotImplementedError.new("Implement this in your encryptable class")
#end

View file

@ -22,6 +22,7 @@ module Diaspora
def parent_guid
self.parent.guid
end
def parent_guid= new_parent_guid
self.parent = parent_class.where(:guid => new_parent_guid).first
end
@ -82,14 +83,20 @@ module Diaspora
verify_signature(self.author_signature, self.author)
end
# @abstract
# @return [Class]
def parent_class
raise NotImplementedError.new('you must override parent_class in order to enable relayable on this model')
end
# @abstract
# @return An instance of Relayable#parent_class
def parent
raise NotImplementedError.new('you must override parent in order to enable relayable on this model')
end
# @abstract
# @param parent An instance of Relayable#parent_class
def parent= parent
raise NotImplementedError.new('you must override parent= in order to enable relayable on this model')
end