e9_crm 0.1.17 → 0.1.18

Sign up to get free protection for your applications and to get access to all the features.
@@ -14,7 +14,8 @@ class E9Crm::OffersController < E9Crm::ResourcesController
14
14
 
15
15
  def show
16
16
  clear_breadcrumbs
17
- @show_title = resource.name
17
+ add_home_crumb
18
+ add_breadcrumb! @show_title = resource.name
18
19
  end
19
20
 
20
21
  protected
@@ -38,4 +39,12 @@ class E9Crm::OffersController < E9Crm::ResourcesController
38
39
  def determine_layout
39
40
  request.xhr? ? false : super
40
41
  end
42
+
43
+ def default_ordered_on
44
+ :name
45
+ end
46
+
47
+ def default_ordered_dir
48
+ :ASC
49
+ end
41
50
  end
@@ -1,4 +1,6 @@
1
1
  class E9Crm::ResourcesController < E9Crm::BaseController
2
+ inherit_resources
3
+
2
4
  include E9Rails::Helpers::ResourceErrorMessages
3
5
 
4
6
  # NOTE depending on e9_base pagination (which should eventually use this module)
@@ -12,8 +14,6 @@ class E9Crm::ResourcesController < E9Crm::BaseController
12
14
  class_inheritable_accessor :should_paginate_index
13
15
  self.should_paginate_index = true
14
16
 
15
- inherit_resources
16
-
17
17
  respond_to :js
18
18
 
19
19
  add_resource_breadcrumbs
@@ -1,12 +1,18 @@
1
1
  module E9Crm::CampaignsHelper
2
2
  def display_campaign_fee(val)
3
- Money === val && val || 'n/a'
3
+ Money === val && val.format || 'n/a'
4
4
  end
5
5
 
6
6
  def no_money
7
7
  @_no_money ||= Money.new(0)
8
8
  end
9
9
 
10
+ def m(val)
11
+ val ||= no_money
12
+ val = val.to_money
13
+ val.format
14
+ end
15
+
10
16
  def display_campaign_code(val)
11
17
  val && "?#{E9Crm.query_param}=#{val}" || 'n/a'
12
18
  end
@@ -16,6 +16,7 @@ module E9Crm::DealsHelper
16
16
  def deal_status_select_options
17
17
  @_deal_status_select_options ||= begin
18
18
  options = Deal::Status::OPTIONS - %w(lead)
19
+ options.map! {|o| [o.titleize, o] }
19
20
  options.unshift ['All Statuses', nil]
20
21
  options_for_select(options)
21
22
  end
@@ -23,7 +24,7 @@ module E9Crm::DealsHelper
23
24
 
24
25
  def deal_category_select_options
25
26
  @_deal_category_select_options ||= begin
26
- options = MenuOption.options_for('Deal Category')
27
+ options = MenuOption.options_for('Deal Category').sort
27
28
  options.unshift ['All Categories', nil]
28
29
  options_for_select(options)
29
30
  end
@@ -31,7 +32,7 @@ module E9Crm::DealsHelper
31
32
 
32
33
  def deal_owner_select_options
33
34
  @_deal_owner_select_options ||= begin
34
- options = Contact.deal_owners.all.map {|c| [c.name, c.id] }
35
+ options = deal_contacts_array
35
36
  options.unshift ['All Responsible', nil]
36
37
  options_for_select(options)
37
38
  end
@@ -39,7 +40,7 @@ module E9Crm::DealsHelper
39
40
 
40
41
  def deal_offer_select_options
41
42
  @_deal_offer_select_options ||= begin
42
- options = Offer.all.map {|c| [c.name, c.id] }
43
+ options = Offer.all.map {|c| [c.name, c.id] }.sort_by {|name, id| name.upcase }
43
44
  options.unshift ['Any/No Offer', nil]
44
45
  options_for_select(options)
45
46
  end
@@ -84,11 +85,11 @@ module E9Crm::DealsHelper
84
85
  def deal_contacts
85
86
  @_eligible_responsible_contacts ||= begin
86
87
  roles = E9::Roles.list.map(&:role).select {|r| r > 'user' && r < 'e9_user' }
87
- User.includes(:contact).for_roles(roles).all.map(&:contact).compact
88
+ User.includes(:contact).for_roles(roles).all.map(&:contact).compact.sort_by {|c| c.name.upcase }
88
89
  end
89
90
  end
90
91
 
91
92
  def deal_contacts_array
92
- deal_contacts.map {|c| [c.name, c.id] }.sort_by {|name, id| name.upcase }
93
+ deal_contacts.map {|c| [c.name, c.id] }
93
94
  end
94
95
  end
@@ -70,4 +70,12 @@ class Campaign < ActiveRecord::Base
70
70
  def to_s
71
71
  name.tap {|n| n << " (#{code})" if code.present? }
72
72
  end
73
+
74
+ def to_liquid
75
+ Drop.new(self)
76
+ end
77
+
78
+ class Drop < ::E9::Liquid::Drops::Base
79
+ source_methods :name, :code
80
+ end
73
81
  end
data/app/models/deal.rb CHANGED
@@ -27,8 +27,7 @@ class Deal < ActiveRecord::Base
27
27
  # lead only validations
28
28
  # require lead_name and lead_email; gotten from current_user if it exists
29
29
  validates :lead_name, :presence => { :if => lambda {|r| r.lead? } }
30
- validates :lead_email, :presence => { :if => lambda {|r| r.lead? } },
31
- :email => { :if => lambda {|r| r.lead? }, :allow_blank => true }
30
+ validates :lead_email, :presence => { :if => lambda {|r| r.lead? } }
32
31
 
33
32
  # NOTE should offer be validated?
34
33
  #validates :offer, :presence => { :if => lambda {|r| r.lead? } }
@@ -47,6 +46,7 @@ class Deal < ActiveRecord::Base
47
46
  # If a lead with no user, find the user by email or create it, then if mailing_lists
48
47
  # were passed, assign the user those mailing lists
49
48
  after_create :handle_user_if_lead
49
+ after_create :send_offer_conversion_email_if_lead
50
50
 
51
51
  # money column definitions for pseudo attributes (added on the reports scope)
52
52
  %w(total_value average_value total_cost average_cost).each do |money_column|
@@ -173,6 +173,10 @@ class Deal < ActiveRecord::Base
173
173
  scope :owner, lambda {|owner| where(:contact_id => owner.to_param) }
174
174
  scope :status, lambda {|status| where(:status => status) }
175
175
 
176
+ def to_liquid
177
+ Drop.new(self)
178
+ end
179
+
176
180
  protected
177
181
 
178
182
  def write_options(obj={})
@@ -250,6 +254,15 @@ class Deal < ActiveRecord::Base
250
254
  end
251
255
  end
252
256
 
257
+ def send_offer_conversion_email_if_lead
258
+ if lead? && offer && email = offer.conversion_alert_email.presence
259
+ Rails.logger.debug("Sending Deal Conversion Alert to [#{email}]")
260
+ Offer.conversion_email.send!(email, :offer => offer, :lead => self)
261
+ end
262
+ rescue
263
+ Rails.logger.debug("Deal conversion alert failed: #{$!}")
264
+ end
265
+
253
266
  def update_to_pending_status
254
267
  if self.status == Status::Lead
255
268
  self.status = Status::Pending
@@ -264,6 +277,13 @@ class Deal < ActiveRecord::Base
264
277
  )
265
278
  end
266
279
 
280
+ class Drop < ::E9::Liquid::Drops::Base
281
+ source_methods :name, :category, :lead_email, :lead_name, :info, :offer,
282
+ :campaign, :contacts, :owner, :status
283
+
284
+ date_methods :closed_at, :converted_at
285
+ end
286
+
267
287
  module Status
268
288
  OPTIONS = %w(lead pending won lost)
269
289
  Lead = OPTIONS[0]
@@ -6,4 +6,8 @@ class NoCampaign < Campaign
6
6
  def cost
7
7
  0
8
8
  end
9
+
10
+ def code
11
+ 'No Code'
12
+ end
9
13
  end
data/app/models/offer.rb CHANGED
@@ -45,6 +45,9 @@ class Offer < Renderable
45
45
  name
46
46
  end
47
47
 
48
+ def to_liquid
49
+ Drop.new(self)
50
+ end
48
51
 
49
52
  protected
50
53
 
@@ -54,6 +57,10 @@ class Offer < Renderable
54
57
  self.success_page_text ||= 'Thank you!'
55
58
  end
56
59
 
60
+ class Drop < ::E9::Liquid::Drops::Base
61
+ source_methods :name, :deals, :leads
62
+ end
63
+
57
64
  module Identifiers
58
65
  CONVERSION_EMAIL = 'offer_conversion_email'
59
66
  PAGE = 'offer_page'
@@ -6,9 +6,5 @@ class DealObserver < ActiveRecord::Observer
6
6
  end
7
7
 
8
8
  def before_convert(record)
9
- if email = record.offer && record.offer.conversion_alert_email.presence
10
- Rails.logger.debug("Sending Offer Conversion Alert to [#{email}]")
11
- Offer.conversion_email.try(:send!, email)
12
- end
13
9
  end
14
10
  end
@@ -23,9 +23,9 @@
23
23
  = record.name
24
24
  %td.record-code
25
25
  = display_campaign_code(record.code)
26
- %td.record-affiliate-fee
26
+ %td.record-affiliate-fee.num
27
27
  = display_campaign_fee(record.affiliate_fee)
28
- %td.record-sales-fee
28
+ %td.record-sales-fee.num
29
29
  = display_campaign_fee(record.sales_fee)
30
30
  %td.links
31
31
  - if record.is_a?(AdvertisingCampaign)
@@ -1,5 +1,5 @@
1
1
  = render 'e9_crm/offers/form_inner', :f => f
2
2
 
3
3
  .field{:class => request.xhr? ? 'tinymcexhr' : 'tinymce'}
4
- = f.label :success_page_text, nil, :class => :req
4
+ = help_label(f, :success_page_text, :key => :markdown_help, :header => "Markdown Help", :class => :req)
5
5
  = f.text_area :success_page_text
@@ -45,7 +45,7 @@
45
45
  .contact-deal-status
46
46
  = deal.status
47
47
  .contact-deal-name
48
- = link_to deal.name, edit_deal_path(deal)
48
+ = link_to deal.name, deal
49
49
  .contact-deal-value
50
50
  = deal.value
51
51
 
@@ -10,6 +10,6 @@
10
10
  - fid = "dated_cost_cost_#{id}"
11
11
  - unless request.xhr?
12
12
  = f.label :cost, nil, :class => :req, :for => id
13
- = f.text_field :cost, :id => id
13
+ = f.text_field :cost, :id => id, :value => f.object.cost.to_money
14
14
  .actions
15
15
  = f.submit
@@ -16,21 +16,21 @@
16
16
  = f.text_area :info
17
17
  .field
18
18
  = f.label :value, nil, :class => :req
19
- = f.text_field :value
19
+ = f.text_field :value, :value => f.object.value.to_s
20
20
  .field.select
21
- = f.label :campaign, :for => 'deal_campaign_select'
21
+ = f.label :campaign, :for => 'deal_campaign_select', :class => 'req'
22
22
  = f.collection_select :campaign_id, Campaign.ordered.all, :id, :to_s, {:prompt => true}, :id => 'deal_campaign_select'
23
23
  .field.select
24
24
  = f.label :status
25
25
  = f.select :status, Deal::Status::OPTIONS[1..-1]
26
26
  .field.select
27
27
  = f.label :contacts
28
- %input#contact_autocomplete.list{:type => 'text', 'data-values' => resource.contact_ids.join(','), 'data-iname' => resource_instance_name, 'data-field' => '[contact_ids]', :id => 'deal_contacts'}
28
+ %input#contact_autocomplete.list{:type => 'text', 'data-values' => resource.contact_ids.join(','), 'data-iname' => resource_instance_name, 'data-field' => '[contact_ids]'}
29
29
  %ul.select
30
30
  - f.object.contacts.each do |contact|
31
31
  %li.ui-state-default
32
32
  %span.content= contact.name
33
- %input{:type => :hidden, :name => "contact[contact_ids][]", :value => contact.id}
33
+ %input{:type => :hidden, :name => "#{resource_instance_name}[contact_ids][]", :value => contact.id}
34
34
  %a{:class => :remove, :title => "Remove", :alt => "Remove"} Remove
35
35
  .field.select
36
36
  = f.label :owner
@@ -2,8 +2,8 @@
2
2
  %thead
3
3
  %tr
4
4
  %th= orderable_column_link(:campaign_type)
5
- %th= orderable_column_link(:campaign_name)
6
5
  %th= orderable_column_link(:campaign_group)
6
+ %th= orderable_column_link(:campaign_name)
7
7
  %th= orderable_column_link(:new_visits)
8
8
  %th= orderable_column_link(:repeat_visits)
9
9
  %th= orderable_column_link(:lead_count)
@@ -26,61 +26,61 @@
26
26
  %tr{:id => "ids_#{record.id}", :class => cycle('odd', 'even')}
27
27
  %td.record-campaign-type
28
28
  = display_campaign_type(record.campaign_type)
29
- %td.record-campaign-name
30
- = record.campaign_name || 'n/a'
31
29
  %td.record-campaign-group
32
30
  = record.campaign_group || 'n/a'
33
- %td.record-new-visits
31
+ %td.record-campaign-name
32
+ = record.campaign_name || 'n/a'
33
+ %td.record-new-visits.num
34
34
  - dat[:new_visits] << record.new_visits
35
35
  = record.new_visits
36
- %td.record-repeat-visits
36
+ %td.record-repeat-visits.num
37
37
  - dat[:repeat_visits] << record.repeat_visits
38
38
  = record.repeat_visits
39
- %td.record-lead-count
39
+ %td.record-lead-count.num
40
40
  - dat[:lead_count] << record.lead_count
41
41
  = record.lead_count.to_i
42
- %td.record-deal-count
42
+ %td.record-deal-count.num
43
43
  - dat[:deal_count] << record.deal_count
44
44
  = record.deal_count.to_i
45
- %td.record-won-deal-count
45
+ %td.record-won-deal-count.num
46
46
  - dat[:won_deal_count] << record.won_deal_count
47
47
  = record.won_deal_count.to_i
48
- %td.record-total-value
48
+ %td.record-total-value.num
49
49
  - dat[:total_value] << record.total_value
50
- = record.total_value || no_money
51
- %td.record-averate-value
50
+ = m record.total_value
51
+ %td.record-averate-value.num
52
52
  - dat[:average_value] << record.average_value
53
- = record.average_value || no_money
54
- %td.record-total-cost
53
+ = m record.average_value
54
+ %td.record-total-cost.num
55
55
  - dat[:total_cost] << record.total_cost
56
- = record.total_cost || no_money
57
- %td.record-average-cost
56
+ = m record.total_cost
57
+ %td.record-average-cost.num
58
58
  - dat[:average_cost] << record.average_cost
59
- = record.average_cost || no_money
60
- %td.record-average-elapsed
59
+ = m record.average_cost
60
+ %td.record-average-elapsed.num
61
61
  - dat[:average_elapsed] << record.average_elapsed
62
62
  = record.average_elapsed && "%s days" % record.average_elapsed || 'n/a'
63
63
  %tfooter
64
64
  %tr{:class => 'record-totals'}
65
65
  %td.record-totals-label{:colspan => 3}
66
66
  #{t(:totals)}:
67
- %td.record-new-visits
67
+ %td.record-new-visits.num
68
68
  = dat[:new_visits].sum
69
- %td.record-repeat-visits
69
+ %td.record-repeat-visits.num
70
70
  = dat[:repeat_visits].sum
71
- %td.record-lead-count
71
+ %td.record-lead-count.num
72
72
  = dat[:lead_count].sum
73
- %td.record-deal-count
73
+ %td.record-deal-count.num
74
74
  = dat[:deal_count].sum.to_i
75
- %td.record-won-deal-count
75
+ %td.record-won-deal-count.num
76
76
  = dat[:won_deal_count].sum.to_i
77
- %td.record-total-value
78
- = dat[:total_value].compact.sum.to_money
79
- %td.record-average-value
80
- = dat[:average_value].compact.average.to_money
81
- %td.record-total-cost
82
- = dat[:total_cost].compact.sum.to_money
83
- %td.record-average-cost
84
- = dat[:average_cost].compact.average.to_money
85
- %td.record-average-elapsed
77
+ %td.record-total-value.num
78
+ = m dat[:total_value].compact.sum
79
+ %td.record-average-value.num
80
+ = m dat[:average_value].compact.average
81
+ %td.record-total-cost.num
82
+ = m dat[:total_cost].compact.sum
83
+ %td.record-average-cost.num
84
+ = m dat[:average_cost].compact.average
85
+ %td.record-average-elapsed.num
86
86
  = "%s days" % dat[:average_elapsed].compact.average
@@ -1,7 +1,7 @@
1
1
  = render 'e9_crm/offers/form_inner', :f => f
2
2
 
3
3
  .field{:class => request.xhr? ? 'tinymcexhr' : 'tinymce'}
4
- = f.label :success_page_text, nil, :class => :req
4
+ = help_label(f, :success_page_text, :key => :markdown_help, :header => "Markdown Help", :class => :req)
5
5
  = f.text_area :success_page_text
6
6
 
7
7
  %fieldset.upload
@@ -1,6 +1,6 @@
1
1
  = title @offer.name
2
2
 
3
3
  .offer-body
4
- = @offer.template
4
+ = k @offer.template
5
5
 
6
6
  = render 'form'
@@ -3,7 +3,7 @@
3
3
  = f.text_field :name
4
4
 
5
5
  .field.tinymce
6
- = f.label :template
6
+ = help_label(f, :template, :markdown => true)
7
7
  = f.text_area :template
8
8
 
9
9
  .field
@@ -1,5 +1,5 @@
1
1
  #offer-body
2
- = resource.success_page_text
2
+ = k resource.success_page_text
3
3
 
4
4
  - if resource.file?
5
5
  #offer-download-link
@@ -1,5 +1,5 @@
1
1
  = render 'e9_crm/offers/form_inner', :f => f
2
2
 
3
3
  .field{:class => request.xhr? ? 'tinymcexhr' : 'tinymce'}
4
- = f.label :success_page_text, nil, :class => :req
4
+ = help_label(f, :success_page_text, :key => :markdown_help, :header => "Markdown Help", :class => :req)
5
5
  = f.text_area :success_page_text
@@ -14,6 +14,12 @@ en:
14
14
  view: View
15
15
  save: Save
16
16
 
17
+ flash:
18
+ e9_crm:
19
+ contact_emails:
20
+ create:
21
+ notice: Contact email sent to recipients.
22
+
17
23
  e9_crm:
18
24
  add_record_attribute: Add
19
25
  destroy_record_attribute: Remove
@@ -23,7 +29,6 @@ en:
23
29
  show: 'Show %{model}'
24
30
  campaign:
25
31
  show: '%{model}'
26
-
27
32
  links:
28
33
  index: "Manage %{models}"
29
34
  new: "New %{model}"
@@ -31,14 +36,12 @@ en:
31
36
  destroy: "Delete"
32
37
  show: "View"
33
38
  confirm_destroy: Are you sure? This cannot be undone.
34
-
35
39
  campaign_group:
36
40
  confirm_destroy: Are you sure? This cannot be undone. Any campaigns which are associated with this group will become groupless.
37
41
 
38
42
  errors:
39
43
  messages:
40
44
  merge_required: 'Merge Required! <a href="%{merge_path}">MERGE ME</a>.'
41
-
42
45
  models:
43
46
  campaign:
44
47
  not_a_number: "%{attribute} must be a number (maximum 2 decimal places)."
@@ -46,7 +49,7 @@ en:
46
49
  code:
47
50
  invalid: "%{attribute} must be comprised of letters and numbers only."
48
51
  contact:
49
- delete_restricted: "This contact is related to leads and/or deals and can not be deleted."
52
+ delete_restricted: "You cannot delete a contact that has deals or leads."
50
53
  attributes:
51
54
  users:
52
55
  taken: "Two or more of the login accounts entered share a duplicate email."
@@ -115,6 +118,18 @@ en:
115
118
  no_leads: 'There are no leads associated with this contact.'
116
119
  company:
117
120
  info: Background Information
121
+ email:
122
+ body_help:
123
+ <p>System emails have variable data which you can interpolate into the fields</p>
124
+ <h3>Offer Conversion Email:</h3>
125
+ <p>
126
+ &#123;&#123; offer.name &#125;&#125;<br/>
127
+ &#123;&#123; lead.lead_email &#125;&#125;<br/>
128
+ &#123;&#123; lead.lead_name &#125;&#125;<br/>
129
+ &#123;&#123; lead.info &#125;&#125;<br/>
130
+ &#123;&#123; lead.created_at &#125;&#125;<br/>
131
+ </p>
132
+
118
133
  email_template:
119
134
  text_body_help: |
120
135
  <h3>Variables:</h3>
@@ -131,8 +146,16 @@ en:
131
146
  offer_name: Offer
132
147
  created_at: Date
133
148
  owner: Responsible
149
+ won_deal_count: Won count
134
150
  offer:
135
151
  template: Teaser Text
152
+ template_help: |
153
+ <h3>Variables:</h3>
154
+ <p>You can insert the following to render variable data in the field</p>
155
+ <p>
156
+ &#123;&#123;campaign.name&#125;&#125;<br/>
157
+ &#123;&#123;campaign.code&#125;&#125;<br/>
158
+ </p>
136
159
  alert_email_instructions: (Enter an email if you want to be notified of conversions)
137
160
  submit_button_text: Submit Button Text
138
161
  success_alert_text: Success Alert Text
@@ -12,6 +12,14 @@ module E9Crm
12
12
  prepend_before_filter do
13
13
  E9Crm.log("E9Crm controller request")
14
14
  end
15
+
16
+ alias :liquid_env_without_crm :liquid_env
17
+
18
+ def liquid_env
19
+ liquid_env_without_crm.tap do |env|
20
+ env[:campaign] = tracking_campaign
21
+ end
22
+ end
15
23
  end
16
24
 
17
25
  protected
@@ -1,3 +1,3 @@
1
1
  module E9Crm
2
- VERSION = '0.1.17'
2
+ VERSION = '0.1.18'
3
3
  end
data/lib/e9_crm.rb CHANGED
@@ -1,10 +1,5 @@
1
1
  require 'e9_base'
2
- require 'e9_rails'
3
- require 'e9_tags'
4
- require 'e9_attributes'
5
-
6
2
  require 'money'
7
-
8
3
  require 'e9_crm/rails_extensions'
9
4
 
10
5
  module E9Crm
@@ -55,7 +50,7 @@ module E9Crm
55
50
  user_model.send(:include, E9Crm::Model)
56
51
  end
57
52
 
58
- ActionController::Base.send(:include, E9Crm::Controller)
53
+ ApplicationController.send(:include, E9Crm::Controller)
59
54
 
60
55
  ::Email.send(:include, E9Crm::Email)
61
56
 
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: e9_crm
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 17
9
- version: 0.1.17
4
+ prerelease:
5
+ version: 0.1.18
10
6
  platform: ruby
11
7
  authors:
12
8
  - Travis Cox
@@ -14,8 +10,7 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2011-09-09 00:00:00 -04:00
18
- default_executable:
13
+ date: 2011-09-12 00:00:00 Z
19
14
  dependencies:
20
15
  - !ruby/object:Gem::Dependency
21
16
  name: rails
@@ -25,10 +20,6 @@ dependencies:
25
20
  requirements:
26
21
  - - ~>
27
22
  - !ruby/object:Gem::Version
28
- segments:
29
- - 3
30
- - 0
31
- - 0
32
23
  version: 3.0.0
33
24
  type: :runtime
34
25
  version_requirements: *id001
@@ -40,10 +31,6 @@ dependencies:
40
31
  requirements:
41
32
  - - ~>
42
33
  - !ruby/object:Gem::Version
43
- segments:
44
- - 1
45
- - 1
46
- - 2
47
34
  version: 1.1.2
48
35
  type: :runtime
49
36
  version_requirements: *id002
@@ -55,8 +42,6 @@ dependencies:
55
42
  requirements:
56
43
  - - ">="
57
44
  - !ruby/object:Gem::Version
58
- segments:
59
- - 0
60
45
  version: "0"
61
46
  type: :runtime
62
47
  version_requirements: *id003
@@ -68,8 +53,6 @@ dependencies:
68
53
  requirements:
69
54
  - - ">="
70
55
  - !ruby/object:Gem::Version
71
- segments:
72
- - 0
73
56
  version: "0"
74
57
  type: :runtime
75
58
  version_requirements: *id004
@@ -81,8 +64,6 @@ dependencies:
81
64
  requirements:
82
65
  - - ">="
83
66
  - !ruby/object:Gem::Version
84
- segments:
85
- - 0
86
67
  version: "0"
87
68
  type: :runtime
88
69
  version_requirements: *id005
@@ -94,8 +75,6 @@ dependencies:
94
75
  requirements:
95
76
  - - ">="
96
77
  - !ruby/object:Gem::Version
97
- segments:
98
- - 0
99
78
  version: "0"
100
79
  type: :runtime
101
80
  version_requirements: *id006
@@ -107,8 +86,6 @@ dependencies:
107
86
  requirements:
108
87
  - - ">="
109
88
  - !ruby/object:Gem::Version
110
- segments:
111
- - 0
112
89
  version: "0"
113
90
  type: :runtime
114
91
  version_requirements: *id007
@@ -120,8 +97,6 @@ dependencies:
120
97
  requirements:
121
98
  - - ">="
122
99
  - !ruby/object:Gem::Version
123
- segments:
124
- - 0
125
100
  version: "0"
126
101
  type: :runtime
127
102
  version_requirements: *id008
@@ -133,9 +108,6 @@ dependencies:
133
108
  requirements:
134
109
  - - ~>
135
110
  - !ruby/object:Gem::Version
136
- segments:
137
- - 0
138
- - 13
139
111
  version: "0.13"
140
112
  type: :runtime
141
113
  version_requirements: *id009
@@ -353,7 +325,6 @@ files:
353
325
  - lib/generators/e9_crm/templates/migration.rb
354
326
  - test/functional/e9_crm/campaign_types_controller_test.rb
355
327
  - test/functional/home_controller_test.rb
356
- has_rdoc: true
357
328
  homepage: http://www.e9digital.com
358
329
  licenses: []
359
330
 
@@ -367,21 +338,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
367
338
  requirements:
368
339
  - - ">="
369
340
  - !ruby/object:Gem::Version
370
- segments:
371
- - 0
372
341
  version: "0"
373
342
  required_rubygems_version: !ruby/object:Gem::Requirement
374
343
  none: false
375
344
  requirements:
376
345
  - - ">="
377
346
  - !ruby/object:Gem::Version
378
- segments:
379
- - 0
380
347
  version: "0"
381
348
  requirements: []
382
349
 
383
350
  rubyforge_project: e9_crm
384
- rubygems_version: 1.3.7
351
+ rubygems_version: 1.8.10
385
352
  signing_key:
386
353
  specification_version: 3
387
354
  summary: CRM engine plugin for the e9 CMS