acts-as-messageable 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,6 +1,7 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem "activerecord", "~> 3.0.0"
3
+ gem "activerecord", ">= 3.0.0"
4
+ gem "activesupport", ">= 3.0.0"
4
5
  gem "ancestry", "~> 1.2.4"
5
6
 
6
7
  group :development do
@@ -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
- == New API
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.unaded # all unreaded @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.3.1
1
+ 0.4.0
@@ -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.3.1"
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 = ["Piotr Nielacny"]
12
- s.date = %q{2011-07-02}
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 = ["lib"]
40
- s.rubygems_version = %q{1.6.2}
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>, ["~> 3.0.0"])
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>, ["~> 3.0.0"])
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>, ["~> 3.0.0"])
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"])
@@ -1,5 +1,6 @@
1
1
  require "active_record"
2
- require 'acts-as-messageable/acts-as-messageable'
2
+ require "active_support/core_ext"
3
+ require "acts-as-messageable/acts-as-messageable"
3
4
 
4
5
  module ActsAsMessageable
5
6
  autoload :Message, "acts-as-messageable/message"
@@ -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 :received_messages,
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 :sent_messages,
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
- ActsAsMessageable::Message.set_table_name(options[:table_name] || "messages")
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
- ActsAsMessageable::Message.required = [options[:required]]
27
+ self.class_name.required = [options[:required]]
27
28
  elsif options[:required].is_a? Array
28
- ActsAsMessageable::Message.required = options[:required]
29
+ self.class_name.required = options[:required]
29
30
  else
30
- ActsAsMessageable::Message.required = [:topic, :body]
31
+ self.class_name.required = [:topic, :body]
31
32
  end
32
33
 
33
- ActsAsMessageable::Message.validates_presence_of ActsAsMessageable::Message.required
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 = ActsAsMessageable::Message.connected_with(self, trash)
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
- ActsAsMessageable::Message.required.each_with_index do |attribute, index|
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 = ActsAsMessageable::Message.create! message_attributes
85
+ message = self.class.class_name.create! message_attributes
72
86
 
73
- self.sent_messages << message
74
- to.received_messages << message
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.update_attributes!(:recipient_delete => true)
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.update_attributes!(:sender_delete => true)
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
 
@@ -8,6 +8,7 @@ class CreateMessagesTable < ActiveRecord::Migration
8
8
  t.boolean :opened, :default => false
9
9
  t.boolean :recipient_delete, :default => false
10
10
  t.boolean :sender_delete, :default => false
11
+ t.timestamps
11
12
 
12
13
  # ancestry
13
14
  t.string :ancestry
@@ -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
+
@@ -21,7 +21,7 @@ RSpec.configure do |config|
21
21
  end
22
22
 
23
23
  config.after(:each) do
24
- ActsAsMessageable::Message.destroy_all
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
- version: 0.3.1
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
- date: 2011-07-02 00:00:00.000000000 +02:00
13
- default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: activerecord
17
- requirement: &22115060 !ruby/object:Gem::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
- version_requirements: *22115060
26
- - !ruby/object:Gem::Dependency
27
- name: ancestry
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
- type: :runtime
65
+ version_requirements: *id003
66
+ name: ancestry
35
67
  prerelease: false
36
- version_requirements: *22114520
37
- - !ruby/object:Gem::Dependency
38
- name: rspec
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
- type: :development
81
+ version_requirements: *id004
82
+ name: rspec
46
83
  prerelease: false
47
- version_requirements: *22113940
48
- - !ruby/object:Gem::Dependency
49
- name: bundler
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
- type: :development
97
+ version_requirements: *id005
98
+ name: bundler
57
99
  prerelease: false
58
- version_requirements: *22113380
59
- - !ruby/object:Gem::Dependency
60
- name: jeweler
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
- type: :development
113
+ version_requirements: *id006
114
+ name: jeweler
68
115
  prerelease: false
69
- version_requirements: *22112860
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
- extra_rdoc_files:
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
- require_paths:
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
- version: '0'
120
- segments:
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ hash: 3
174
+ segments:
121
175
  - 0
122
- hash: -1671763449284017363
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
- version: '0'
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.2
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
+