acts-as-messageable 0.3.1 → 0.4.0
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.
- data/Gemfile +2 -1
- data/README.rdoc +30 -2
- data/VERSION +1 -1
- data/acts-as-messageable.gemspec +13 -8
- data/lib/acts-as-messageable.rb +2 -1
- data/lib/acts-as-messageable/acts-as-messageable.rb +41 -19
- data/lib/acts-as-messageable/message.rb +11 -4
- data/lib/generators/acts-as-messageable/migration/migration_generator.rb +1 -0
- data/lib/generators/acts-as-messageable/migration/templates/migration.rb +1 -0
- data/lib/generators/acts-as-messageable/migration/templates/migration_permanent.rb +11 -0
- data/spec/acts-as-messageable_spec.rb +45 -0
- data/spec/custom-class_spec.rb +15 -0
- data/spec/spec_helper.rb +4 -1
- metadata +127 -68
data/Gemfile
CHANGED
data/README.rdoc
CHANGED
@@ -20,8 +20,20 @@ To use it, add it to your Gemfile:
|
|
20
20
|
class User < ActiveRecord::Base
|
21
21
|
acts_as_messageable :table_name => "table_with_messages", # default 'messages'
|
22
22
|
:required => :body # default [:topic, :body]
|
23
|
+
:class_name => "CustomMessages" # default "ActsAsMessageable::Message"
|
23
24
|
end
|
24
25
|
|
26
|
+
== Upgrade
|
27
|
+
Just type once again
|
28
|
+
|
29
|
+
rails g acts-as-messageable:migration
|
30
|
+
|
31
|
+
And new migrations should be created.
|
32
|
+
|
33
|
+
~$ rails g acts-as-messageable:migration
|
34
|
+
create db/migrate/20110811223435_add_recipient_permanent_delete_and_sender_permanent_delete_to_messages.rb
|
35
|
+
Another migration is already named create_messages_table: /home/lite/work/acts_test/db/migrate/20110811184810_create_messages_table.rb
|
36
|
+
|
25
37
|
== Send message
|
26
38
|
|
27
39
|
@alice = User.first
|
@@ -62,7 +74,7 @@ or
|
|
62
74
|
@message.conversation #=> [@message, @reply_message]
|
63
75
|
@reply_message.conversation #=> [@message, @reply_message]
|
64
76
|
|
65
|
-
==
|
77
|
+
== API
|
66
78
|
@alice.messages # all messages connected with @alice (inbox/outbox)
|
67
79
|
@alice.received_messages # @alice inbox
|
68
80
|
@alice.sent_messages # @alice outbox
|
@@ -73,7 +85,10 @@ or
|
|
73
85
|
@alice.messages.are_to(@bob) # all message to @bob
|
74
86
|
@alice.messages.with_id(@id_of_message) # message with id id_of_message
|
75
87
|
@alice.messages.readed # all readed @alice messages
|
76
|
-
@alice.messages.
|
88
|
+
@alice.messages.unread # all unreaded @alice messages
|
89
|
+
|
90
|
+
@alice.received_messages.are_from(@bob) # all messages from bob (inbox)
|
91
|
+
@alice.sent_messages.are_to(@bob) # all messages do bob (outbox)
|
77
92
|
|
78
93
|
You can use multiple filters at the same time
|
79
94
|
|
@@ -82,9 +97,22 @@ You can use multiple filters at the same time
|
|
82
97
|
|
83
98
|
=== Delete message
|
84
99
|
|
100
|
+
@message = @alice.send_message(@bob, "Topic", "Body")
|
101
|
+
|
85
102
|
@alice.messages.process do |message|
|
86
103
|
message.delete
|
87
104
|
end
|
88
105
|
|
106
|
+
Now we can find message in trash
|
107
|
+
|
108
|
+
@alice.deleted_messages #=> [@message]
|
109
|
+
|
110
|
+
@alice.deleted_messages.process do |message|
|
111
|
+
message.delete
|
112
|
+
end
|
113
|
+
|
114
|
+
@alice.delete_message #=> []
|
115
|
+
|
116
|
+
Message was permanent delete
|
89
117
|
|
90
118
|
Copyright © 2011 Piotr Niełacny (http://ruby-blog.pl), released under the MIT license
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
data/acts-as-messageable.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{acts-as-messageable}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.4.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = [
|
12
|
-
s.date = %q{2011-
|
11
|
+
s.authors = [%q{Piotr Nielacny}]
|
12
|
+
s.date = %q{2011-08-11}
|
13
13
|
s.email = %q{piotr.nielacny@gmail.com}
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"README.rdoc"
|
@@ -29,29 +29,33 @@ Gem::Specification.new do |s|
|
|
29
29
|
"lib/acts-as-messageable/relation.rb",
|
30
30
|
"lib/generators/acts-as-messageable/migration/migration_generator.rb",
|
31
31
|
"lib/generators/acts-as-messageable/migration/templates/migration.rb",
|
32
|
+
"lib/generators/acts-as-messageable/migration/templates/migration_permanent.rb",
|
32
33
|
"rails/init.rb",
|
33
34
|
"spec/acts-as-messageable_spec.rb",
|
35
|
+
"spec/custom-class_spec.rb",
|
34
36
|
"spec/custom-required_spec.rb",
|
35
37
|
"spec/spec_helper.rb",
|
36
38
|
"spec/support/user.rb"
|
37
39
|
]
|
38
40
|
s.homepage = %q{http://github.com/LTe/acts-as-messageable}
|
39
|
-
s.require_paths = [
|
40
|
-
s.rubygems_version = %q{1.6
|
41
|
+
s.require_paths = [%q{lib}]
|
42
|
+
s.rubygems_version = %q{1.8.6}
|
41
43
|
s.summary = %q{Make user messageable!;-)}
|
42
44
|
|
43
45
|
if s.respond_to? :specification_version then
|
44
46
|
s.specification_version = 3
|
45
47
|
|
46
48
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
47
|
-
s.add_runtime_dependency(%q<activerecord>, ["
|
49
|
+
s.add_runtime_dependency(%q<activerecord>, [">= 3.0.0"])
|
50
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 3.0.0"])
|
48
51
|
s.add_runtime_dependency(%q<ancestry>, ["~> 1.2.4"])
|
49
52
|
s.add_development_dependency(%q<rspec>, ["~> 2.6.0"])
|
50
53
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
51
54
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.0"])
|
52
55
|
s.add_development_dependency(%q<sqlite3-ruby>, [">= 0"])
|
53
56
|
else
|
54
|
-
s.add_dependency(%q<activerecord>, ["
|
57
|
+
s.add_dependency(%q<activerecord>, [">= 3.0.0"])
|
58
|
+
s.add_dependency(%q<activesupport>, [">= 3.0.0"])
|
55
59
|
s.add_dependency(%q<ancestry>, ["~> 1.2.4"])
|
56
60
|
s.add_dependency(%q<rspec>, ["~> 2.6.0"])
|
57
61
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -59,7 +63,8 @@ Gem::Specification.new do |s|
|
|
59
63
|
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
60
64
|
end
|
61
65
|
else
|
62
|
-
s.add_dependency(%q<activerecord>, ["
|
66
|
+
s.add_dependency(%q<activerecord>, [">= 3.0.0"])
|
67
|
+
s.add_dependency(%q<activesupport>, [">= 3.0.0"])
|
63
68
|
s.add_dependency(%q<ancestry>, ["~> 1.2.4"])
|
64
69
|
s.add_dependency(%q<rspec>, ["~> 2.6.0"])
|
65
70
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
data/lib/acts-as-messageable.rb
CHANGED
@@ -6,32 +6,32 @@ module ActsAsMessageable
|
|
6
6
|
end
|
7
7
|
|
8
8
|
module ClassMethods
|
9
|
+
mattr_accessor :class_name
|
10
|
+
|
9
11
|
# Method make ActiveRecord::Base object messageable
|
10
12
|
# @param [Symbol] :table_name - table name for messages
|
11
13
|
def acts_as_messageable(options = {})
|
12
|
-
has_many :
|
14
|
+
has_many :received_messages_relation,
|
13
15
|
:as => :received_messageable,
|
14
|
-
:class_name => "ActsAsMessageable::Message",
|
16
|
+
:class_name => options[:class_name] || "ActsAsMessageable::Message",
|
15
17
|
:dependent => :nullify
|
16
|
-
has_many :
|
18
|
+
has_many :sent_messages_relation,
|
17
19
|
:as => :sent_messageable,
|
18
|
-
:class_name => "ActsAsMessageable::Message",
|
20
|
+
:class_name => options[:class_name] || "ActsAsMessageable::Message",
|
19
21
|
:dependent => :nullify
|
20
22
|
|
21
|
-
|
22
|
-
|
23
|
-
ActsAsMessageable::Message.validates_presence_of(options[:required] || [:topic ,:body])
|
23
|
+
self.class_name = (options[:class_name] || "ActsAsMessageable::Message").constantize
|
24
|
+
self.class_name.set_table_name(options[:table_name] || "messages")
|
24
25
|
|
25
26
|
if options[:required].is_a? Symbol
|
26
|
-
|
27
|
+
self.class_name.required = [options[:required]]
|
27
28
|
elsif options[:required].is_a? Array
|
28
|
-
|
29
|
+
self.class_name.required = options[:required]
|
29
30
|
else
|
30
|
-
|
31
|
+
self.class_name.required = [:topic, :body]
|
31
32
|
end
|
32
33
|
|
33
|
-
|
34
|
-
|
34
|
+
self.class_name.validates_presence_of self.class_name.required
|
35
35
|
include ActsAsMessageable::Model::InstanceMethods
|
36
36
|
end
|
37
37
|
|
@@ -41,7 +41,21 @@ module ActsAsMessageable
|
|
41
41
|
# Get all messages connected with user
|
42
42
|
# @return [ActiveRecord::Relation] all messages connected with user
|
43
43
|
def messages(trash = false)
|
44
|
-
result =
|
44
|
+
result = self.class.class_name.connected_with(self, trash)
|
45
|
+
result.relation_context = self
|
46
|
+
|
47
|
+
result
|
48
|
+
end
|
49
|
+
|
50
|
+
def received_messages
|
51
|
+
result = received_messages_relation.scoped.where(:recipient_delete => false)
|
52
|
+
result.relation_context = self
|
53
|
+
|
54
|
+
result
|
55
|
+
end
|
56
|
+
|
57
|
+
def sent_messages
|
58
|
+
result = sent_messages_relation.scoped.where(:sender_delete => false)
|
45
59
|
result.relation_context = self
|
46
60
|
|
47
61
|
result
|
@@ -61,17 +75,17 @@ module ActsAsMessageable
|
|
61
75
|
case args.first
|
62
76
|
when String
|
63
77
|
message_attributes = {}
|
64
|
-
|
78
|
+
self.class.class_name.required.each_with_index do |attribute, index|
|
65
79
|
message_attributes[attribute] = args[index]
|
66
80
|
end
|
67
81
|
when Hash
|
68
82
|
message_attributes = args.first
|
69
83
|
end
|
70
84
|
|
71
|
-
message =
|
85
|
+
message = self.class.class_name.create! message_attributes
|
72
86
|
|
73
|
-
self.
|
74
|
-
to.
|
87
|
+
self.sent_messages_relation << message
|
88
|
+
to.received_messages_relation << message
|
75
89
|
|
76
90
|
message
|
77
91
|
end
|
@@ -88,9 +102,17 @@ module ActsAsMessageable
|
|
88
102
|
current_user = self
|
89
103
|
|
90
104
|
if message.received_messageable == current_user
|
91
|
-
message.
|
105
|
+
unless message.recipient_delete
|
106
|
+
message.update_attributes!(:recipient_delete => true)
|
107
|
+
else
|
108
|
+
message.update_attributes!(:recipient_permanent_delete => true)
|
109
|
+
end
|
92
110
|
elsif message.sent_messageable == current_user
|
93
|
-
message.
|
111
|
+
unless message.sender_delete
|
112
|
+
message.update_attributes!(:sender_delete => true)
|
113
|
+
else
|
114
|
+
message.update_attributes!(:sender_permanent_delete => true)
|
115
|
+
end
|
94
116
|
end
|
95
117
|
end
|
96
118
|
|
@@ -15,29 +15,36 @@ module ActsAsMessageable
|
|
15
15
|
:sent_messageable_id,
|
16
16
|
:opened,
|
17
17
|
:recipient_delete,
|
18
|
-
:sender_delete
|
18
|
+
:sender_delete,
|
19
|
+
:recipient_permanent_delete,
|
20
|
+
:sender_permanent_delete,
|
21
|
+
:created_at,
|
22
|
+
:updated_at
|
19
23
|
|
20
24
|
attr_accessor :removed
|
21
25
|
cattr_accessor :required
|
22
26
|
|
23
27
|
|
24
28
|
# Sample documentation for scope
|
29
|
+
default_scope order(:created_at)
|
25
30
|
scope :are_from, lambda { |*args| where("sent_messageable_id = :sender", :sender => args.first) }
|
26
31
|
scope :are_to, lambda { |*args| where("received_messageable_id = :receiver", :receiver => args.first) }
|
27
32
|
scope :with_id, lambda { |*args| where("id = :id", :id => args.first) }
|
28
33
|
|
29
34
|
scope :connected_with, lambda { |*args| where("(sent_messageable_type = :sent_type and
|
30
35
|
sent_messageable_id = :sent_id and
|
31
|
-
sender_delete = :s_delete) or
|
36
|
+
sender_delete = :s_delete and sender_permanent_delete = :s_perm_delete) or
|
32
37
|
(received_messageable_type = :received_type and
|
33
38
|
received_messageable_id = :received_id and
|
34
|
-
recipient_delete = :r_delete)",
|
39
|
+
recipient_delete = :r_delete and recipient_permanent_delete = :r_perm_delete)",
|
35
40
|
:sent_type => args.first.class.name,
|
36
41
|
:sent_id => args.first.id,
|
37
42
|
:received_type => args.first.class.name,
|
38
43
|
:received_id => args.first.id,
|
39
44
|
:r_delete => args.last,
|
40
|
-
:s_delete => args.last
|
45
|
+
:s_delete => args.last,
|
46
|
+
:r_perm_delete => false,
|
47
|
+
:s_perm_delete => false)
|
41
48
|
}
|
42
49
|
scope :readed, lambda { where("opened = :opened", :opened => true) }
|
43
50
|
scope :unread, lambda { where("opened = :opened", :opened => false) }
|
@@ -15,6 +15,7 @@ module ActsAsMessageable
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def create_migration_file
|
18
|
+
migration_template 'migration_permanent.rb', 'db/migrate/add_recipient_permanent_delete_and_sender_permanent_delete_to_messages.rb'
|
18
19
|
migration_template 'migration.rb', 'db/migrate/create_messages_table.rb'
|
19
20
|
end
|
20
21
|
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class AddRecipientPermanentDeleteAndSenderPermanentDeleteToMessages < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
add_column :<%= table_name %>, :recipient_permanent_delete, :boolean, :default => false
|
4
|
+
add_column :<%= table_name %>, :sender_permanent_delete, :boolean, :default => false
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.down
|
8
|
+
remove_column :<%= table_name %>, :recipient_permanent_delete
|
9
|
+
remove_column :<%= table_name %>, :sender_permanent_delete
|
10
|
+
end
|
11
|
+
end
|
@@ -95,4 +95,49 @@ describe "ActsAsMessageable" do
|
|
95
95
|
@message.topic.should == "Topic"
|
96
96
|
@message.body.should == "Body"
|
97
97
|
end
|
98
|
+
|
99
|
+
it "messages should return in right order :created_at" do
|
100
|
+
@message = @bob.send_message(@alice, "Topic", "First message")
|
101
|
+
@message = @bob.send_message(@alice, "Topic", "Sec message")
|
102
|
+
@alice.messages.first.body.should == "First message"
|
103
|
+
end
|
104
|
+
|
105
|
+
it "message should permanent delete" do
|
106
|
+
@message = @bob.send_message(@alice, "Topic", "Message")
|
107
|
+
@alice.messages.process { |m| m.delete }
|
108
|
+
@alice.messages.count.should == 0
|
109
|
+
|
110
|
+
@alice.deleted_messages.count.should == 1
|
111
|
+
@alice.deleted_messages.process { |m| m.delete }
|
112
|
+
@alice.deleted_messages.count.should == 0
|
113
|
+
|
114
|
+
@message.reload
|
115
|
+
@message.recipient_permanent_delete.should == true
|
116
|
+
|
117
|
+
@bob.sent_messages.count.should == 1
|
118
|
+
end
|
119
|
+
|
120
|
+
it "received_messages should return ActiveRecord::Relation" do
|
121
|
+
@message = @bob.send_message(@alice, "Topic", "Message")
|
122
|
+
@alice.received_messages.class.should == ActiveRecord::Relation
|
123
|
+
end
|
124
|
+
|
125
|
+
it "sent_messages should return ActiveRecord::Relation" do
|
126
|
+
@message = @bob.send_message(@alice, "Topic", "Message")
|
127
|
+
@bob.sent_messages.class.should == ActiveRecord::Relation
|
128
|
+
end
|
129
|
+
|
130
|
+
it "received_messages and sent_messages should work with .process method" do
|
131
|
+
@message = @bob.send_message(@alice, "Helou", "Alice")
|
132
|
+
|
133
|
+
@bob.sent_messages.count.should == 1
|
134
|
+
@alice.received_messages.count.should == 1
|
135
|
+
|
136
|
+
@bob.sent_messages.process { |m| m.delete }
|
137
|
+
@bob.sent_messages.count.should == 0
|
138
|
+
@alice.received_messages.count.should == 1
|
139
|
+
|
140
|
+
@alice.received_messages.process { |m| m.delete }
|
141
|
+
@alice.received_messages.count.should == 0
|
142
|
+
end
|
98
143
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
class CustomMessage < ActsAsMessageable::Message; end
|
4
|
+
|
5
|
+
describe "custom class" do
|
6
|
+
before(:all) do
|
7
|
+
User.acts_as_messageable :class_name => "CustomMessage"
|
8
|
+
end
|
9
|
+
|
10
|
+
it "message should have CustomMessage class" do
|
11
|
+
message = @alice.send_message(@bob, :topic => "Helou bob!", :body => "What's up?")
|
12
|
+
message.class.should == CustomMessage
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
data/spec/spec_helper.rb
CHANGED
@@ -21,7 +21,7 @@ RSpec.configure do |config|
|
|
21
21
|
end
|
22
22
|
|
23
23
|
config.after(:each) do
|
24
|
-
|
24
|
+
User.class_name.destroy_all
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -35,7 +35,10 @@ def create_database
|
|
35
35
|
t.boolean :opened, :default => false
|
36
36
|
t.boolean :recipient_delete, :default => false
|
37
37
|
t.boolean :sender_delete, :default => false
|
38
|
+
t.boolean :recipient_permanent_delete, :default => false
|
39
|
+
t.boolean :sender_permanent_delete, :default => false
|
38
40
|
t.string :ancestry
|
41
|
+
t.timestamps
|
39
42
|
end
|
40
43
|
|
41
44
|
create_table :users do |t|
|
metadata
CHANGED
@@ -1,90 +1,141 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts-as-messageable
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 15
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 4
|
9
|
+
- 0
|
10
|
+
version: 0.4.0
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Piotr Nielacny
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
16
|
-
|
17
|
-
requirement: &
|
17
|
+
|
18
|
+
date: 2011-08-11 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
type: :runtime
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
18
23
|
none: false
|
19
|
-
requirements:
|
20
|
-
- -
|
21
|
-
- !ruby/object:Gem::Version
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
hash: 7
|
28
|
+
segments:
|
29
|
+
- 3
|
30
|
+
- 0
|
31
|
+
- 0
|
22
32
|
version: 3.0.0
|
33
|
+
version_requirements: *id001
|
34
|
+
name: activerecord
|
35
|
+
prerelease: false
|
36
|
+
- !ruby/object:Gem::Dependency
|
23
37
|
type: :runtime
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 7
|
44
|
+
segments:
|
45
|
+
- 3
|
46
|
+
- 0
|
47
|
+
- 0
|
48
|
+
version: 3.0.0
|
49
|
+
version_requirements: *id002
|
50
|
+
name: activesupport
|
24
51
|
prerelease: false
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
requirement: &22114520 !ruby/object:Gem::Requirement
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
type: :runtime
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
29
55
|
none: false
|
30
|
-
requirements:
|
56
|
+
requirements:
|
31
57
|
- - ~>
|
32
|
-
- !ruby/object:Gem::Version
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 23
|
60
|
+
segments:
|
61
|
+
- 1
|
62
|
+
- 2
|
63
|
+
- 4
|
33
64
|
version: 1.2.4
|
34
|
-
|
65
|
+
version_requirements: *id003
|
66
|
+
name: ancestry
|
35
67
|
prerelease: false
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
requirement: &22113940 !ruby/object:Gem::Requirement
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
type: :development
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
40
71
|
none: false
|
41
|
-
requirements:
|
72
|
+
requirements:
|
42
73
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
hash: 23
|
76
|
+
segments:
|
77
|
+
- 2
|
78
|
+
- 6
|
79
|
+
- 0
|
44
80
|
version: 2.6.0
|
45
|
-
|
81
|
+
version_requirements: *id004
|
82
|
+
name: rspec
|
46
83
|
prerelease: false
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
requirement: &22113380 !ruby/object:Gem::Requirement
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
type: :development
|
86
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
51
87
|
none: false
|
52
|
-
requirements:
|
88
|
+
requirements:
|
53
89
|
- - ~>
|
54
|
-
- !ruby/object:Gem::Version
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
hash: 23
|
92
|
+
segments:
|
93
|
+
- 1
|
94
|
+
- 0
|
95
|
+
- 0
|
55
96
|
version: 1.0.0
|
56
|
-
|
97
|
+
version_requirements: *id005
|
98
|
+
name: bundler
|
57
99
|
prerelease: false
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
requirement: &22112860 !ruby/object:Gem::Requirement
|
100
|
+
- !ruby/object:Gem::Dependency
|
101
|
+
type: :development
|
102
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
62
103
|
none: false
|
63
|
-
requirements:
|
104
|
+
requirements:
|
64
105
|
- - ~>
|
65
|
-
- !ruby/object:Gem::Version
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
hash: 15
|
108
|
+
segments:
|
109
|
+
- 1
|
110
|
+
- 6
|
111
|
+
- 0
|
66
112
|
version: 1.6.0
|
67
|
-
|
113
|
+
version_requirements: *id006
|
114
|
+
name: jeweler
|
68
115
|
prerelease: false
|
69
|
-
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: sqlite3-ruby
|
72
|
-
requirement: &22112200 !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ! '>='
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '0'
|
116
|
+
- !ruby/object:Gem::Dependency
|
78
117
|
type: :development
|
118
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
119
|
+
none: false
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
hash: 3
|
124
|
+
segments:
|
125
|
+
- 0
|
126
|
+
version: "0"
|
127
|
+
version_requirements: *id007
|
128
|
+
name: sqlite3-ruby
|
79
129
|
prerelease: false
|
80
|
-
version_requirements: *22112200
|
81
130
|
description:
|
82
131
|
email: piotr.nielacny@gmail.com
|
83
132
|
executables: []
|
133
|
+
|
84
134
|
extensions: []
|
85
|
-
|
135
|
+
|
136
|
+
extra_rdoc_files:
|
86
137
|
- README.rdoc
|
87
|
-
files:
|
138
|
+
files:
|
88
139
|
- .rspec
|
89
140
|
- .travis.yml
|
90
141
|
- Gemfile
|
@@ -99,37 +150,45 @@ files:
|
|
99
150
|
- lib/acts-as-messageable/relation.rb
|
100
151
|
- lib/generators/acts-as-messageable/migration/migration_generator.rb
|
101
152
|
- lib/generators/acts-as-messageable/migration/templates/migration.rb
|
153
|
+
- lib/generators/acts-as-messageable/migration/templates/migration_permanent.rb
|
102
154
|
- rails/init.rb
|
103
155
|
- spec/acts-as-messageable_spec.rb
|
156
|
+
- spec/custom-class_spec.rb
|
104
157
|
- spec/custom-required_spec.rb
|
105
158
|
- spec/spec_helper.rb
|
106
159
|
- spec/support/user.rb
|
107
|
-
has_rdoc: true
|
108
160
|
homepage: http://github.com/LTe/acts-as-messageable
|
109
161
|
licenses: []
|
162
|
+
|
110
163
|
post_install_message:
|
111
164
|
rdoc_options: []
|
112
|
-
|
165
|
+
|
166
|
+
require_paths:
|
113
167
|
- lib
|
114
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
168
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
115
169
|
none: false
|
116
|
-
requirements:
|
117
|
-
- -
|
118
|
-
- !ruby/object:Gem::Version
|
119
|
-
|
120
|
-
segments:
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
hash: 3
|
174
|
+
segments:
|
121
175
|
- 0
|
122
|
-
|
123
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
176
|
+
version: "0"
|
177
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
124
178
|
none: false
|
125
|
-
requirements:
|
126
|
-
- -
|
127
|
-
- !ruby/object:Gem::Version
|
128
|
-
|
179
|
+
requirements:
|
180
|
+
- - ">="
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
hash: 3
|
183
|
+
segments:
|
184
|
+
- 0
|
185
|
+
version: "0"
|
129
186
|
requirements: []
|
187
|
+
|
130
188
|
rubyforge_project:
|
131
|
-
rubygems_version: 1.6
|
189
|
+
rubygems_version: 1.8.6
|
132
190
|
signing_key:
|
133
191
|
specification_version: 3
|
134
192
|
summary: Make user messageable!;-)
|
135
193
|
test_files: []
|
194
|
+
|