ccs_survey_gem 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ pkg/*
2
+ *.gem
3
+ .bundle
4
+ nbproject/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in ccs_survey_gem.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,5 @@
1
+ class CampaignCategories < ActiveRecord::Base
2
+ establish_connection "ccs_central_#{Rails.env}"
3
+
4
+ has_many :campaign_categories
5
+ end
@@ -0,0 +1,96 @@
1
+ # To change this template, choose Tools | Templates
2
+ # and open the template in the editor.
3
+
4
+ class InstantDollarzCampaign < SurveyCampaign
5
+
6
+ belongs_to :instant_dollarz_category, :foreign_key => 'campaign_category_id'
7
+
8
+ def url_to_campaign(user_id)
9
+ "#{self.offer_url}&subid=#{user_id}&sid=#{SiteDetail.get_site_id}&email=clicks@cloudcitysites.com"
10
+ end
11
+
12
+ def self.import
13
+ InstantDollarzCategory.destroy_all
14
+ response = download_instantdollarz_campaigns
15
+ x = 0
16
+ if response
17
+ # SurveyCampaign.destroy_all
18
+ response.body.each do |line|
19
+ x += 1
20
+ if x > 1
21
+ store_in_db(line)
22
+ # puts("@@@@@@@@@ Response line 1 = #{line}")
23
+ # puts("@@@@@@@@@ Response line count = #{response.body.size}")
24
+ end
25
+ #line
26
+ end
27
+ end
28
+ disable_non_updated_campaigns
29
+ return true
30
+ end
31
+
32
+ private
33
+ def self.get_report_path
34
+ '/subscription_data_generator/?username=ccslocal&key=cbb1d79dec9c850a4843b125f9c648fd&format=tab_bare'
35
+ end
36
+
37
+ def self.download_instantdollarz_campaigns
38
+ response = ''
39
+ end_point = 'api.instantdollarz.com'
40
+ report_path = get_report_path
41
+ unless report_path.blank?
42
+ site = Net::HTTP.new(end_point, 80)
43
+ #site.use_ssl = true
44
+ response = site.get2(report_path)
45
+ end
46
+ return response
47
+ end
48
+
49
+ def self.store_in_db(line)
50
+ x = 1
51
+ words = line.split(/\t/)
52
+ # words.each do |word|
53
+ # puts("@@@@@@ Word is #{word}, word_number is #{x}")
54
+ # x += 1
55
+ # end
56
+ # puts("@@@@@@ Line size is #{line.size}")
57
+ sc = self.find_by_campaign_id(words[0].to_i)
58
+ if sc.blank?
59
+ sc = self.new
60
+ end
61
+ category = InstantDollarzCategory.find_by_name(words[8])
62
+ if category.blank?
63
+ category = InstantDollarzCategory.new
64
+ category.name = words[8]
65
+ end
66
+ sc.instant_dollarz_category = category
67
+ if words[0].to_i == 4233
68
+ puts("@@@@ Category is #{words[8]} - should be - Adult - ac.category is #{sc.instant_dollarz_category.name}")
69
+ end
70
+ if sc.instant_dollarz_category.blank?
71
+ puts("@@@@ Category is blank!")
72
+ end
73
+ sc.campaign_id = words[0].to_i
74
+ sc.offer_name = words[1]
75
+ sc.commission = words[2]
76
+ sc.banner_size = words[3]
77
+ sc.offer_url = words[4]
78
+ sc.banner_url = words[5]
79
+ sc.description = words[6]
80
+ sc.reporting = words[7]
81
+ sc.countries = words[9]
82
+ sc.updated = true
83
+ sc.save
84
+ end
85
+
86
+ def self.disable_non_updated_campaigns
87
+ #Set current to false on campaigns that were not updated
88
+ # logger.debug("@@@@ 1")
89
+ InstantDollarzCampaign.update_all({:current => false}, {:updated => false})
90
+ # ['updated IS ?', false])
91
+ #now set updated flag back to false on all campaigns ready for the next import run
92
+ # logger.debug("@@@@ 2")
93
+ InstantDollarzCampaign.update_all({:updated => false}, {:updated => true})
94
+ # ['updated IS ?', true])
95
+ end
96
+ end
@@ -0,0 +1,6 @@
1
+ # To change this template, choose Tools | Templates
2
+ # and open the template in the editor.
3
+
4
+ class InstantDollarzCategory < CampaignCategories
5
+ has_many :instant_dollarz_campaigns, :foreign_key => 'campaign_category_id'
6
+ end
@@ -0,0 +1,37 @@
1
+ class SurveyCampaign < ActiveRecord::Base
2
+ establish_connection "ccs_central_#{Rails.env}"
3
+ belongs_to :campaign_category
4
+ acts_as_list
5
+
6
+ def url_to_campaign(user_id)
7
+ end
8
+
9
+ def positive_vote
10
+ if self.positive_vote_count
11
+ self.positive_vote_count += 1
12
+ else
13
+ self.positive_vote_count = 1
14
+ end
15
+ if self.position
16
+ self.position += 1
17
+ else
18
+ self.position = 1
19
+ end
20
+ self.save
21
+ end
22
+
23
+ def negative_vote
24
+ if self.negative_vote_count
25
+ self.negative_vote_count += 1
26
+ else
27
+ self.negative_vote_count = 1
28
+ end
29
+ if self.position
30
+ self.position -= 1
31
+ else
32
+ self.position = -1
33
+ end
34
+ self.save
35
+ end
36
+
37
+ end
@@ -0,0 +1,21 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "ccs_survey_gem/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "ccs_survey_gem"
7
+ s.version = CcsSurveyGem::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["James West"]
10
+ s.email = ["jamesw@cloudcitysites.com"]
11
+ s.homepage = "http://www.cloudcitysites.com"
12
+ s.summary = %q{A private gem specific for use with Cloud City Sites projects}
13
+ s.description = %q{Provides survey functionality for ccs_local and cloud city sites websites}
14
+
15
+ s.rubyforge_project = "ccs_survey_gem"
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
+ s.require_paths = ["lib"]
21
+ end
@@ -0,0 +1,6 @@
1
+ require 'ccs_survey_gem'
2
+ require 'rails'
3
+ module CcsSurveyGem
4
+ class Engine < Rails::Engine
5
+ end
6
+ end
@@ -0,0 +1,3 @@
1
+ module CcsSurveyGem
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,3 @@
1
+ module CcsSurveyGem
2
+ # Your code goes here...
3
+ end
File without changes
@@ -0,0 +1,3 @@
1
+ file.reference.ccs_survey_gem-lib=/home/jamie/Development/rails/ccs_survey_gem/lib
2
+ file.reference.lib-ccs_survey_gem=/home/jamie/Development/rails/ccs_survey_gem/lib/ccs_survey_gem
3
+ platform.active=Ruby
@@ -0,0 +1,3 @@
1
+ build=Build ccs_survey_gem-0.0.1.gem into the pkg directory
2
+ install=Build and install ccs_survey_gem-0.0.1.gem into system gems
3
+ release=Create tag v0.0.1 and build and push ccs_survey_gem-0.0.1.gem to Rubygems
@@ -0,0 +1,7 @@
1
+ file.reference.ccs_survey_gem-lib=lib
2
+ file.reference.lib-ccs_survey_gem=lib/ccs_survey_gem
3
+ javac.classpath=
4
+ main.file=
5
+ platform.active=Ruby
6
+ source.encoding=UTF-8
7
+ src.dir=${file.reference.ccs_survey_gem-lib}
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project xmlns="http://www.netbeans.org/ns/project/1">
3
+ <type>org.netbeans.modules.ruby.rubyproject</type>
4
+ <configuration>
5
+ <data xmlns="http://www.netbeans.org/ns/ruby-project/1">
6
+ <name>ccs_survey_gem</name>
7
+ <source-roots>
8
+ <root id="src.dir"/>
9
+ </source-roots>
10
+ <test-roots/>
11
+ </data>
12
+ </configuration>
13
+ </project>
metadata ADDED
@@ -0,0 +1,83 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ccs_survey_gem
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - James West
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-01-06 00:00:00 +00:00
19
+ default_executable:
20
+ dependencies: []
21
+
22
+ description: Provides survey functionality for ccs_local and cloud city sites websites
23
+ email:
24
+ - jamesw@cloudcitysites.com
25
+ executables: []
26
+
27
+ extensions: []
28
+
29
+ extra_rdoc_files: []
30
+
31
+ files:
32
+ - .gitignore
33
+ - Gemfile
34
+ - Rakefile
35
+ - app/models/campaign_categories.rb
36
+ - app/models/instant_dollarz_campaign.rb
37
+ - app/models/instant_dollarz_category.rb
38
+ - app/models/survey_campaign.rb
39
+ - ccs_survey_gem.gemspec
40
+ - lib/ccs_survey_gem.rb
41
+ - lib/ccs_survey_gem/engine.rb
42
+ - lib/ccs_survey_gem/version.rb
43
+ - nbproject/private/config.properties
44
+ - nbproject/private/private.properties
45
+ - nbproject/private/rake-d.txt
46
+ - nbproject/project.properties
47
+ - nbproject/project.xml
48
+ has_rdoc: true
49
+ homepage: http://www.cloudcitysites.com
50
+ licenses: []
51
+
52
+ post_install_message:
53
+ rdoc_options: []
54
+
55
+ require_paths:
56
+ - lib
57
+ required_ruby_version: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ hash: 3
63
+ segments:
64
+ - 0
65
+ version: "0"
66
+ required_rubygems_version: !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ hash: 3
72
+ segments:
73
+ - 0
74
+ version: "0"
75
+ requirements: []
76
+
77
+ rubyforge_project: ccs_survey_gem
78
+ rubygems_version: 1.3.7
79
+ signing_key:
80
+ specification_version: 3
81
+ summary: A private gem specific for use with Cloud City Sites projects
82
+ test_files: []
83
+