ffcrm_cloudfuji 0.1.1 → 0.1.3
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/.gitignore +1 -0
- data/ffcrm_cloudfuji.gemspec +0 -1
- data/lib/fat_free_crm/cloudfuji.rb +0 -3
- data/lib/fat_free_crm/cloudfuji/event_observers/app_observer.rb +20 -18
- data/lib/fat_free_crm/cloudfuji/event_observers/customer_observer.rb +42 -40
- data/lib/fat_free_crm/cloudfuji/event_observers/email_observer.rb +102 -100
- data/lib/fat_free_crm/cloudfuji/event_observers/payment_observer.rb +6 -4
- data/lib/fat_free_crm/cloudfuji/event_observers/user_observer.rb +38 -36
- data/lib/fat_free_crm/cloudfuji/mail_routes.rb +24 -0
- data/lib/fat_free_crm/cloudfuji/version.rb +1 -1
- data/lib/ffcrm_cloudfuji.rb +5 -0
- metadata +5 -21
- data/Gemfile.lock +0 -193
data/.gitignore
CHANGED
data/ffcrm_cloudfuji.gemspec
CHANGED
@@ -1,23 +1,25 @@
|
|
1
|
-
module
|
2
|
-
module
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
1
|
+
module FatFreeCRM
|
2
|
+
module Cloudfuji
|
3
|
+
module EventObservers
|
4
|
+
class AppObserver < ::Cloudfuji::EventObserver
|
5
|
+
def app_claimed
|
6
|
+
puts "Updating #{User.first.inspect} with incoming data #{params.inspect}"
|
7
|
+
puts "Authlogic username column: #{::Authlogic::Cas.cas_username_column}="
|
8
|
+
puts "Setting username to: #{params.try(:[], 'ido_id')}"
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
10
|
+
user = User.first
|
11
|
+
if user
|
12
|
+
data = params['data']
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
14
|
+
user.email = data['email']
|
15
|
+
user.first_name = user.email.split('@').first
|
16
|
+
user.last_name = user.email.split('@').last
|
17
|
+
user.username = data['email']
|
18
|
+
user.deleted_at = nil
|
19
|
+
user.send("#{::Authlogic::Cas.cas_username_column}=".to_sym, params['data'].try(:[], 'ido_id'))
|
20
|
+
puts user.inspect
|
21
|
+
user.save!
|
22
|
+
end
|
21
23
|
end
|
22
24
|
end
|
23
25
|
end
|
@@ -1,53 +1,55 @@
|
|
1
|
-
module
|
2
|
-
module
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
def customer_signed_up
|
17
|
-
note_customer_activity("#{data['first_name']} #{data['last_name']} (#{data['email']}) signed up as a customer")
|
18
|
-
end
|
1
|
+
module FatFreeCRM
|
2
|
+
module Cloudfuji
|
3
|
+
module EventObservers
|
4
|
+
class CustomerObserver < ::Cloudfuji::EventObserver
|
5
|
+
# "customer_created"
|
6
|
+
# :account_balance => 0
|
7
|
+
# :object => "customer"
|
8
|
+
# :email => "s+cfdemo@cloudfuji.com"
|
9
|
+
# :created => 1332269951
|
10
|
+
# :id => "cus_cpkg4h0KfLD3lp"
|
11
|
+
# :livemode => true
|
12
|
+
# :human => "Customer CREATED (cus_cpkg4h0KfLD3lp), s+cfdemo@cloudfuji.com"}
|
13
|
+
def customer_created
|
14
|
+
note_customer_activity("#{data['email']} created as a customer with external id #{data['id']}") if data['livemode']
|
15
|
+
end
|
19
16
|
|
20
|
-
|
17
|
+
def customer_signed_up
|
18
|
+
note_customer_activity("#{data['first_name']} #{data['last_name']} (#{data['email']}) signed up as a customer")
|
19
|
+
end
|
21
20
|
|
22
|
-
|
23
|
-
subject = find_or_create_activity_subject!
|
24
|
-
puts "Found subject: #{subject.inspect}"
|
21
|
+
private
|
25
22
|
|
26
|
-
|
27
|
-
|
23
|
+
def note_customer_activity(message)
|
24
|
+
subject = find_or_create_activity_subject!
|
25
|
+
puts "Found subject: #{subject.inspect}"
|
28
26
|
|
29
|
-
|
30
|
-
|
31
|
-
end
|
27
|
+
subject.versions.create! :event => message
|
28
|
+
end
|
32
29
|
|
33
|
-
|
34
|
-
|
35
|
-
lookups.each do |model|
|
36
|
-
puts "#{model}.find_by_email( #{data['email']} )"
|
37
|
-
result = model.find_by_email(data['email'])
|
38
|
-
return result if result
|
30
|
+
def data
|
31
|
+
params['data']
|
39
32
|
end
|
40
33
|
|
41
|
-
|
42
|
-
|
34
|
+
def find_or_create_activity_subject!
|
35
|
+
lookups = [Account, Lead, Contact]
|
36
|
+
lookups.each do |model|
|
37
|
+
puts "#{model}.find_by_email( #{data['email']} )"
|
38
|
+
result = model.find_by_email(data['email'])
|
39
|
+
return result if result
|
40
|
+
end
|
43
41
|
|
44
|
-
|
45
|
-
|
46
|
-
lead.last_name ||= data['last_name'] || recipient.split("@").last if lead.last_name.blank?
|
42
|
+
lead = Lead.find_by_email(data['email'])
|
43
|
+
lead ||= Lead.new
|
47
44
|
|
48
|
-
|
45
|
+
lead.email = data['email']
|
46
|
+
lead.first_name ||= data['first_name'] || recipient.split("@").first if lead.first_name.blank?
|
47
|
+
lead.last_name ||= data['last_name'] || recipient.split("@").last if lead.last_name.blank?
|
49
48
|
|
50
|
-
|
49
|
+
lead.save
|
50
|
+
|
51
|
+
lead
|
52
|
+
end
|
51
53
|
end
|
52
54
|
end
|
53
55
|
end
|
@@ -1,123 +1,125 @@
|
|
1
|
-
module
|
2
|
-
module
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
# "email_opened"
|
22
|
-
# :recipient=>"s+cfdemo@cloudfuji.com"
|
23
|
-
# :domain=>"cloudfuji.com"
|
24
|
-
# :campaign_id=>"cloudfuji_buddies"
|
25
|
-
# :campaign_name=>"Cloudfuji Buddies"
|
26
|
-
# :tag=>nil
|
27
|
-
# :mailing_list=>nil
|
28
|
-
# :custom_variables=>nil
|
29
|
-
def email_opened
|
30
|
-
message = ""
|
31
|
-
message += "Email opened by #{recipient}"
|
32
|
-
message += " in email campaign '#{campaign.titleize}" if campaign
|
33
|
-
|
34
|
-
note_email_activity( message.strip )
|
35
|
-
end
|
1
|
+
module FatFreeCRM
|
2
|
+
module Cloudfuji
|
3
|
+
module EventObservers
|
4
|
+
class EmailObserver < ::Cloudfuji::EventObserver
|
5
|
+
# NOTE: It'd be nice to have a before_filter.
|
6
|
+
|
7
|
+
# "email_delivered"
|
8
|
+
# :message_headers => "[[\"Received\", \"by luna.mailgun.net with SMTP mgrt 7313261; Tue, 20 Mar 2012 19:00:58 +0000\"], [\"Received\", \"from localhost.localdomain (ec2-23-20-14-40.compute-1.amazonaws.com [23.20.14.40]) by mxa.mailgun.org with ESMTP id 4f68d3e9.4ddcdf0-luna; Tue, 20 Mar 2012 19:00:57 -0000 (UTC)\"], [\"Date\", \"Tue, 20 Mar 2012 19:00:57 +0000\"], [\"From\", \"Sean Grove <sean@cloudfuji.com>\"], [\"Reply-To\", \"Cloudfuji Team <support@cloudfuji.com>\"], [\"Message-Id\", \"<4f68d3e9ad834_3c29377ea432615@ip-10-190-150-17.mail>\"], [\"X-Mailgun-Campaign-Id\", \"cloudfuji_buddies\"], [\"Repy-To\", \"support@cloudfuji.com\"], [\"To\", \"s+cfdemo@cloudfuji.com\"], [\"Subject\", \"Cloudfuji Beta: Thank you for your early support. Here's a gift for you.\"], [\"List-Unsubscribe\", \"<mailto:u+na6wcn3gmqzdszbsmrrdam3ghfstkzrxgbstgn3fgvtdgzjumvrgmyzgmm6tqnlkgetheplteuzeey3gmrsw23zfgqyge5ltnbus4zdpez2d2jjsietgipjrmi4a@email.cloudfuji.com>\"], [\"X-Mailgun-Sid\", \"WyI2NWQ4MSIsICJzK2NmZGVtb0BidXNoaS5kbyIsICIxYjgiXQ==\"], [\"Sender\", \"sean=cloudfuji.com@cloudfuji.com\"]]"
|
9
|
+
# :message_id =>"<4f68d3e9ad834_3c29377ea432615@ip-10-190-150-17.mail>"
|
10
|
+
# :recipient => "s+cfdemo@cloudfuji.com"
|
11
|
+
# :domain => "cloudfuji.com"
|
12
|
+
# :custom_variables => nil
|
13
|
+
# :human =>"Mail to s+cfdemo@cloudfuji.com successfully delievered."}}
|
14
|
+
def email_delivered
|
15
|
+
message = ""
|
16
|
+
message += "Email delivered to #{recipient}"
|
17
|
+
message += " in email campaign '#{campaign.titleize}'" if campaign
|
18
|
+
|
19
|
+
note_email_activity( message.strip )
|
20
|
+
end
|
36
21
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
end
|
22
|
+
# "email_opened"
|
23
|
+
# :recipient=>"s+cfdemo@cloudfuji.com"
|
24
|
+
# :domain=>"cloudfuji.com"
|
25
|
+
# :campaign_id=>"cloudfuji_buddies"
|
26
|
+
# :campaign_name=>"Cloudfuji Buddies"
|
27
|
+
# :tag=>nil
|
28
|
+
# :mailing_list=>nil
|
29
|
+
# :custom_variables=>nil
|
30
|
+
def email_opened
|
31
|
+
message = ""
|
32
|
+
message += "Email opened by #{recipient}"
|
33
|
+
message += " in email campaign '#{campaign.titleize}'" if campaign
|
34
|
+
|
35
|
+
note_email_activity( message.strip )
|
36
|
+
end
|
53
37
|
|
38
|
+
# :event=>"clicked"
|
39
|
+
# :recipient=>"s+cfdemo@cloudfuji.com"
|
40
|
+
# :domain=>"cloudfuji.com"
|
41
|
+
# :campaign_id=>"cloudfuji_buddies"
|
42
|
+
# :campaign_name=>"Cloudfuji Buddies"
|
43
|
+
# :tag=>nil
|
44
|
+
# :mailing_list=>nil
|
45
|
+
# :custom_variables=>nil
|
46
|
+
# :url=>"https://cloudfuji.com/cas/invite/?invitation_token=8hswc7kqhPys6FsUJ1Nm&service=https://cloudfuji.com/users/service&redirect=https://cloudfuji.com/apps/new?app=fat_free_crm&src=icon"
|
47
|
+
# :human=>"s+cfdemo@cloudfuji.com clicked on link in Cloudfuji Buddies to https://cloudfuji.com/cas/invite/?invitation_token=8hswc7kqhPys6FsUJ1Nm&service=https://cloudfuji.com/users/service&redirect=https://cloudfuji.com/apps/new?app=fat_free_crm&src=icon"}
|
48
|
+
def email_clicked
|
49
|
+
message = "#{recipient} clicked #{data['url']}"
|
50
|
+
message += "in email campaign '#{campaign.titleize}'" if campaign
|
51
|
+
|
52
|
+
note_email_activity(message)
|
53
|
+
end
|
54
54
|
|
55
|
-
def email_subscribed
|
56
|
-
note_email_activity("#{recipient} subscribed to a mailing list")
|
57
|
-
end
|
58
55
|
|
59
|
-
|
56
|
+
def email_subscribed
|
57
|
+
note_email_activity("#{recipient} subscribed to a mailing list")
|
58
|
+
end
|
60
59
|
|
61
|
-
|
62
|
-
subject = find_or_create_activity_subject!
|
63
|
-
puts "Found subject: #{subject.inspect}"
|
60
|
+
private
|
64
61
|
|
65
|
-
|
66
|
-
|
62
|
+
def note_email_activity(message)
|
63
|
+
subject = find_or_create_activity_subject!
|
64
|
+
puts "Found subject: #{subject.inspect}"
|
67
65
|
|
68
|
-
|
69
|
-
|
70
|
-
end
|
66
|
+
subject.versions.create! :event => message
|
67
|
+
end
|
71
68
|
|
72
|
-
|
73
|
-
|
74
|
-
lookups.each do |model|
|
75
|
-
puts "#{model}.find_by_email( #{recipient} )"
|
76
|
-
result = model.find_by_email(recipient)
|
77
|
-
return result if result
|
69
|
+
def data
|
70
|
+
params['data']
|
78
71
|
end
|
79
72
|
|
80
|
-
|
81
|
-
|
82
|
-
|
73
|
+
def find_or_create_activity_subject!
|
74
|
+
lookups = [Account, Lead, Contact]
|
75
|
+
lookups.each do |model|
|
76
|
+
puts "#{model}.find_by_email( #{recipient} )"
|
77
|
+
result = model.find_by_email(recipient)
|
78
|
+
return result if result
|
79
|
+
end
|
83
80
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
lead.user = User.first if lead.user_id.nil?
|
81
|
+
puts "No pre-existing records found, creating a lead"
|
82
|
+
lead = Lead.find_by_email(recipient)
|
83
|
+
lead ||= Lead.new
|
88
84
|
|
89
|
-
|
90
|
-
|
85
|
+
lead.email = recipient
|
86
|
+
lead.first_name = recipient.split("@").first if lead.first_name.blank?
|
87
|
+
lead.last_name = recipient.split("@").last if lead.last_name.blank?
|
88
|
+
lead.user = User.first if lead.user_id.nil?
|
91
89
|
|
92
|
-
|
90
|
+
puts "About to save:"
|
91
|
+
puts lead.inspect
|
93
92
|
|
94
|
-
|
93
|
+
lead.save!
|
95
94
|
|
96
|
-
|
97
|
-
end
|
95
|
+
puts lead.inspect
|
98
96
|
|
99
|
-
|
100
|
-
# Good example of the necessity of deep-schema enforcement for events
|
101
|
-
def headers
|
102
|
-
begin
|
103
|
-
JSON(data['message_headers'])
|
104
|
-
rescue => e
|
105
|
-
return []
|
97
|
+
lead
|
106
98
|
end
|
107
|
-
end
|
108
99
|
|
109
|
-
|
110
|
-
|
111
|
-
|
100
|
+
# Temp workarounds until umi delivers events properly
|
101
|
+
# Good example of the necessity of deep-schema enforcement for events
|
102
|
+
def headers
|
103
|
+
begin
|
104
|
+
JSON(data['message_headers'])
|
105
|
+
rescue => e
|
106
|
+
return []
|
107
|
+
end
|
108
|
+
end
|
112
109
|
|
113
|
-
|
114
|
-
|
115
|
-
|
110
|
+
def recipient
|
111
|
+
data['recipient']
|
112
|
+
end
|
116
113
|
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
114
|
+
def custom_variables
|
115
|
+
JSON(data['custom_variables'])
|
116
|
+
end
|
117
|
+
|
118
|
+
def campaign
|
119
|
+
campaign = data['campaign_id'] || data['campaign_name']
|
120
|
+
campaign ||= headers.select{|key, value| key == "X-Mailgun-Campaign-Id"}.try(:first).try(:last) unless headers.empty?
|
121
|
+
campaign
|
122
|
+
end
|
121
123
|
end
|
122
124
|
end
|
123
125
|
end
|
@@ -1,7 +1,9 @@
|
|
1
|
-
module
|
2
|
-
module
|
3
|
-
|
4
|
-
|
1
|
+
module FatFreeCRM
|
2
|
+
module Cloudfuji
|
3
|
+
module EventObservers
|
4
|
+
class PaymentObserver < ::Cloudfuji::EventObserver
|
5
|
+
# NOTE: It'd be nice to have a before_filter.
|
6
|
+
end
|
5
7
|
end
|
6
8
|
end
|
7
9
|
end
|
@@ -1,50 +1,52 @@
|
|
1
|
-
module
|
2
|
-
module
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
1
|
+
module FatFreeCRM
|
2
|
+
module Cloudfuji
|
3
|
+
module EventObservers
|
4
|
+
class UserObserver < ::Cloudfuji::EventObserver
|
5
|
+
def user_added
|
6
|
+
puts "Adding a new user with incoming data #{params.inspect}"
|
7
|
+
puts "Authlogic username column: #{::Authlogic::Cas.cas_username_column}="
|
8
|
+
puts "Setting username to: #{params['data'].try(:[], 'ido_id')}"
|
8
9
|
|
9
|
-
|
10
|
+
data = params['data']
|
10
11
|
|
11
|
-
|
12
|
+
user = User.unscoped.find_or_create_by_ido_id(data['ido_id'])
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
14
|
+
user.email = data['email']
|
15
|
+
user.first_name = user.email.split('@').first
|
16
|
+
user.last_name = user.email.split('@').last
|
17
|
+
user.username = data['email']
|
18
|
+
user.deleted_at = nil
|
19
|
+
user.send("#{::Authlogic::Cas.cas_username_column}=".to_sym, data.try(:[], 'ido_id'))
|
19
20
|
|
20
|
-
|
21
|
+
puts user.inspect
|
21
22
|
|
22
|
-
|
23
|
-
|
23
|
+
user.save!
|
24
|
+
end
|
24
25
|
|
25
|
-
|
26
|
-
|
27
|
-
|
26
|
+
def user_removed
|
27
|
+
puts "Removing user based on incoming data #{params.inspect}"
|
28
|
+
puts "Authlogic username column: #{::Authlogic::Cas.cas_username_column}="
|
28
29
|
|
29
|
-
|
30
|
+
user = User.unscoped.find_by_ido_id(params['data']['ido_id'])
|
30
31
|
|
31
|
-
|
32
|
-
|
33
|
-
|
32
|
+
# TODO: Disable the user instead of destroying them (to prevent data loss)
|
33
|
+
user.try(:destroy)
|
34
|
+
end
|
34
35
|
|
35
|
-
|
36
|
-
|
37
|
-
|
36
|
+
def user_updated
|
37
|
+
puts "Updating user based on incoming data #{params.inspect}"
|
38
|
+
puts "Authlogic username column: #{::Authlogic::Cas.cas_username_column}="
|
38
39
|
|
39
|
-
|
40
|
-
|
40
|
+
data = params['data']
|
41
|
+
user = User.unscoped.find_by_ido_id(data['ido_id'])
|
41
42
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
43
|
+
if user
|
44
|
+
# Re-use the CAS login method to set all the extra attributes we
|
45
|
+
# care about (first_name, last_name, email, local, timezone,
|
46
|
+
# etc.)
|
47
|
+
user.cloudfuji_extra_attributes(data)
|
48
|
+
user.save
|
49
|
+
end
|
48
50
|
end
|
49
51
|
end
|
50
52
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# Mail routes
|
2
|
+
Cloudfuji::Mailroute.map do |m|
|
3
|
+
m.route("mail.new_comment") do
|
4
|
+
m.subject('{:project_title}: {:mock_title} #{:mock_version} comment {:parent_comment_id}',
|
5
|
+
:project_title => m.words_and_spaces,
|
6
|
+
:mock_title => m.words_and_spaces,
|
7
|
+
:mock_version => m.number,
|
8
|
+
:parent_comment_id => m.number)
|
9
|
+
|
10
|
+
|
11
|
+
# Must be replying to send a new comment via email
|
12
|
+
m.add_constraint(:reply, :required)
|
13
|
+
end
|
14
|
+
|
15
|
+
m.route("mail.new_project") do
|
16
|
+
m.subject("{:project_title}: {:mock_title}",
|
17
|
+
:project_title => m.words_and_spaces,
|
18
|
+
:mock_title => m.words_and_spaces)
|
19
|
+
end
|
20
|
+
|
21
|
+
m.route("mail.simple") do
|
22
|
+
m.subject("hello")
|
23
|
+
end
|
24
|
+
end
|
data/lib/ffcrm_cloudfuji.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffcrm_cloudfuji
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,24 +10,8 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-05-
|
13
|
+
date: 2012-05-11 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
16
|
-
name: fat_free_crm
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
|
-
requirements:
|
20
|
-
- - ! '>='
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 0.11.3
|
23
|
-
type: :runtime
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
|
-
requirements:
|
28
|
-
- - ! '>='
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
version: 0.11.3
|
31
15
|
- !ruby/object:Gem::Dependency
|
32
16
|
name: cloudfuji
|
33
17
|
requirement: !ruby/object:Gem::Requirement
|
@@ -68,7 +52,6 @@ extra_rdoc_files: []
|
|
68
52
|
files:
|
69
53
|
- .gitignore
|
70
54
|
- Gemfile
|
71
|
-
- Gemfile.lock
|
72
55
|
- MIT-LICENSE
|
73
56
|
- README
|
74
57
|
- Rakefile
|
@@ -85,6 +68,7 @@ files:
|
|
85
68
|
- lib/fat_free_crm/cloudfuji/event_observers/email_observer.rb
|
86
69
|
- lib/fat_free_crm/cloudfuji/event_observers/payment_observer.rb
|
87
70
|
- lib/fat_free_crm/cloudfuji/event_observers/user_observer.rb
|
71
|
+
- lib/fat_free_crm/cloudfuji/mail_routes.rb
|
88
72
|
- lib/fat_free_crm/cloudfuji/version.rb
|
89
73
|
- lib/ffcrm_cloudfuji.rb
|
90
74
|
- uninstall.rb
|
@@ -102,7 +86,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
102
86
|
version: '0'
|
103
87
|
segments:
|
104
88
|
- 0
|
105
|
-
hash:
|
89
|
+
hash: -564127629
|
106
90
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
91
|
none: false
|
108
92
|
requirements:
|
@@ -111,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
95
|
version: '0'
|
112
96
|
segments:
|
113
97
|
- 0
|
114
|
-
hash:
|
98
|
+
hash: -564127629
|
115
99
|
requirements: []
|
116
100
|
rubyforge_project:
|
117
101
|
rubygems_version: 1.8.24
|
data/Gemfile.lock
DELETED
@@ -1,193 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
ffcrm_cloudfuji (0.1.1)
|
5
|
-
authlogic_cloudfuji (~> 0.9)
|
6
|
-
cloudfuji
|
7
|
-
fat_free_crm (>= 0.11.3)
|
8
|
-
|
9
|
-
GEM
|
10
|
-
remote: http://rubygems.org/
|
11
|
-
specs:
|
12
|
-
actionmailer (3.2.3)
|
13
|
-
actionpack (= 3.2.3)
|
14
|
-
mail (~> 2.4.4)
|
15
|
-
actionpack (3.2.3)
|
16
|
-
activemodel (= 3.2.3)
|
17
|
-
activesupport (= 3.2.3)
|
18
|
-
builder (~> 3.0.0)
|
19
|
-
erubis (~> 2.7.0)
|
20
|
-
journey (~> 1.0.1)
|
21
|
-
rack (~> 1.4.0)
|
22
|
-
rack-cache (~> 1.2)
|
23
|
-
rack-test (~> 0.6.1)
|
24
|
-
sprockets (~> 2.1.2)
|
25
|
-
activemodel (3.2.3)
|
26
|
-
activesupport (= 3.2.3)
|
27
|
-
builder (~> 3.0.0)
|
28
|
-
activerecord (3.2.3)
|
29
|
-
activemodel (= 3.2.3)
|
30
|
-
activesupport (= 3.2.3)
|
31
|
-
arel (~> 3.0.2)
|
32
|
-
tzinfo (~> 0.3.29)
|
33
|
-
activeresource (3.2.3)
|
34
|
-
activemodel (= 3.2.3)
|
35
|
-
activesupport (= 3.2.3)
|
36
|
-
activesupport (3.2.3)
|
37
|
-
i18n (~> 0.6)
|
38
|
-
multi_json (~> 1.0)
|
39
|
-
acts-as-taggable-on (2.2.2)
|
40
|
-
rails (~> 3.0)
|
41
|
-
acts_as_commentable (3.0.1)
|
42
|
-
acts_as_list (0.1.6)
|
43
|
-
addressable (2.2.8)
|
44
|
-
ajax-chosen-rails (0.2.0)
|
45
|
-
chosen-rails_ffcrm
|
46
|
-
railties (~> 3.0)
|
47
|
-
thor (~> 0.14)
|
48
|
-
arel (3.0.2)
|
49
|
-
authlogic (3.1.0)
|
50
|
-
activerecord (>= 3.0.7)
|
51
|
-
activerecord (>= 3.0.7)
|
52
|
-
authlogic_cloudfuji (0.9.4)
|
53
|
-
authlogic
|
54
|
-
rubycas-client (= 2.2.1)
|
55
|
-
builder (3.0.0)
|
56
|
-
cancan (1.6.7)
|
57
|
-
chosen-rails_ffcrm (0.9.5)
|
58
|
-
railties (~> 3.0)
|
59
|
-
thor (~> 0.14)
|
60
|
-
chronic (0.6.7)
|
61
|
-
cloudfuji (0.0.39)
|
62
|
-
highline (>= 1.6.1)
|
63
|
-
json (>= 1.4.6)
|
64
|
-
orm_adapter (~> 0.0.3)
|
65
|
-
rest-client (>= 1.6.1)
|
66
|
-
cocaine (0.2.1)
|
67
|
-
css_parser (1.2.6)
|
68
|
-
addressable
|
69
|
-
rdoc
|
70
|
-
dynamic_form (1.1.4)
|
71
|
-
email_reply_parser_ffcrm (0.5.0)
|
72
|
-
erubis (2.7.0)
|
73
|
-
fat_free_crm (0.11.3)
|
74
|
-
acts-as-taggable-on (~> 2.2.1)
|
75
|
-
acts_as_commentable (~> 3.0.1)
|
76
|
-
acts_as_list (~> 0.1.4)
|
77
|
-
ajax-chosen-rails (>= 0.2.0)
|
78
|
-
authlogic (~> 3.1.0)
|
79
|
-
cancan
|
80
|
-
chosen-rails_ffcrm
|
81
|
-
dynamic_form
|
82
|
-
email_reply_parser_ffcrm
|
83
|
-
ffaker (>= 1.12.0)
|
84
|
-
haml (~> 3.1.3)
|
85
|
-
jquery-rails
|
86
|
-
nokogiri
|
87
|
-
paper_trail
|
88
|
-
paperclip (~> 2.7.0)
|
89
|
-
premailer
|
90
|
-
prototype-rails
|
91
|
-
rails (~> 3.2.2)
|
92
|
-
ransack_ffcrm (~> 0.6.0)
|
93
|
-
responds_to_parent_ffcrm
|
94
|
-
sass (~> 3.1.10)
|
95
|
-
simple_form (~> 2.0.1)
|
96
|
-
squeel (~> 0.9.3)
|
97
|
-
will_paginate (~> 3.0.2)
|
98
|
-
ffaker (1.14.0)
|
99
|
-
haml (3.1.5)
|
100
|
-
highline (1.6.12)
|
101
|
-
hike (1.2.1)
|
102
|
-
htmlentities (4.3.1)
|
103
|
-
i18n (0.6.0)
|
104
|
-
journey (1.0.3)
|
105
|
-
jquery-rails (2.0.2)
|
106
|
-
railties (>= 3.2.0, < 5.0)
|
107
|
-
thor (~> 0.14)
|
108
|
-
json (1.7.0)
|
109
|
-
mail (2.4.4)
|
110
|
-
i18n (>= 0.4.0)
|
111
|
-
mime-types (~> 1.16)
|
112
|
-
treetop (~> 1.4.8)
|
113
|
-
mime-types (1.18)
|
114
|
-
multi_json (1.3.4)
|
115
|
-
nokogiri (1.5.2)
|
116
|
-
orm_adapter (0.0.7)
|
117
|
-
paper_trail (2.6.3)
|
118
|
-
activerecord (~> 3.0)
|
119
|
-
railties (~> 3.0)
|
120
|
-
paperclip (2.7.0)
|
121
|
-
activerecord (>= 2.3.0)
|
122
|
-
activesupport (>= 2.3.2)
|
123
|
-
cocaine (>= 0.0.2)
|
124
|
-
mime-types
|
125
|
-
polyamorous (0.5.0)
|
126
|
-
activerecord (~> 3.0)
|
127
|
-
polyglot (0.3.3)
|
128
|
-
premailer (1.7.3)
|
129
|
-
css_parser (>= 1.1.9)
|
130
|
-
htmlentities (>= 4.0.0)
|
131
|
-
prototype-rails (3.2.1)
|
132
|
-
rails (~> 3.2)
|
133
|
-
rack (1.4.1)
|
134
|
-
rack-cache (1.2)
|
135
|
-
rack (>= 0.4)
|
136
|
-
rack-ssl (1.3.2)
|
137
|
-
rack
|
138
|
-
rack-test (0.6.1)
|
139
|
-
rack (>= 1.0)
|
140
|
-
rails (3.2.3)
|
141
|
-
actionmailer (= 3.2.3)
|
142
|
-
actionpack (= 3.2.3)
|
143
|
-
activerecord (= 3.2.3)
|
144
|
-
activeresource (= 3.2.3)
|
145
|
-
activesupport (= 3.2.3)
|
146
|
-
bundler (~> 1.0)
|
147
|
-
railties (= 3.2.3)
|
148
|
-
railties (3.2.3)
|
149
|
-
actionpack (= 3.2.3)
|
150
|
-
activesupport (= 3.2.3)
|
151
|
-
rack-ssl (~> 1.3.2)
|
152
|
-
rake (>= 0.8.7)
|
153
|
-
rdoc (~> 3.4)
|
154
|
-
thor (~> 0.14.6)
|
155
|
-
rake (0.9.2.2)
|
156
|
-
ransack_ffcrm (0.6.0)
|
157
|
-
actionpack (~> 3.0)
|
158
|
-
activerecord (~> 3.0)
|
159
|
-
chronic (~> 0.6.7)
|
160
|
-
polyamorous (~> 0.5.0)
|
161
|
-
rdoc (3.12)
|
162
|
-
json (~> 1.4)
|
163
|
-
responds_to_parent_ffcrm (1.1.0)
|
164
|
-
rest-client (1.6.7)
|
165
|
-
mime-types (>= 1.16)
|
166
|
-
rubycas-client (2.2.1)
|
167
|
-
activesupport
|
168
|
-
sass (3.1.16)
|
169
|
-
simple_form (2.0.2)
|
170
|
-
actionpack (~> 3.0)
|
171
|
-
activemodel (~> 3.0)
|
172
|
-
sprockets (2.1.3)
|
173
|
-
hike (~> 1.2)
|
174
|
-
rack (~> 1.0)
|
175
|
-
tilt (~> 1.1, != 1.3.0)
|
176
|
-
squeel (0.9.5)
|
177
|
-
activerecord (~> 3.0)
|
178
|
-
activesupport (~> 3.0)
|
179
|
-
polyamorous (~> 0.5.0)
|
180
|
-
thor (0.14.6)
|
181
|
-
tilt (1.3.3)
|
182
|
-
treetop (1.4.10)
|
183
|
-
polyglot
|
184
|
-
polyglot (>= 0.3.1)
|
185
|
-
tzinfo (0.3.33)
|
186
|
-
will_paginate (3.0.3)
|
187
|
-
|
188
|
-
PLATFORMS
|
189
|
-
ruby
|
190
|
-
|
191
|
-
DEPENDENCIES
|
192
|
-
fat_free_crm
|
193
|
-
ffcrm_cloudfuji!
|