power_reviews 0.1.1
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/MIT-LICENSE +20 -0
- data/README +13 -0
- data/Rakefile +72 -0
- data/VERSION +1 -0
- data/generators/power_reviews/USAGE +16 -0
- data/generators/power_reviews/power_reviews_generator.rb +15 -0
- data/generators/power_reviews/templates/config/initializers/power_reviews.rb +20 -0
- data/generators/power_reviews/templates/config/power_reviews.yml +16 -0
- data/generators/power_reviews/templates/config/schedule.rb +3 -0
- data/generators/power_reviews/templates/lib/tasks/power_reviews_tasks.rake +21 -0
- data/lib/power_reviews/config.rb +21 -0
- data/lib/power_reviews/feed.rb +42 -0
- data/lib/power_reviews/feed_item.rb +36 -0
- data/lib/power_reviews/protocols/base.rb +36 -0
- data/lib/power_reviews/protocols/cp.rb +21 -0
- data/lib/power_reviews/protocols/ftp.rb +37 -0
- data/lib/power_reviews/routes.rb +9 -0
- data/lib/power_reviews/sync.rb +43 -0
- data/lib/power_reviews/view_helpers.rb +62 -0
- data/lib/power_reviews.rb +9 -0
- data/power_reviews.gemspec +70 -0
- data/rails/init.rb +2 -0
- data/test/power_reviews_test.rb +11 -0
- data/test/test_helper.rb +4 -0
- metadata +99 -0
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
pkg/*
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2009 [name of plugin creator]
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/testtask'
|
3
|
+
require 'rake/rdoctask'
|
4
|
+
# require 'rake/gempackagetask'
|
5
|
+
|
6
|
+
begin
|
7
|
+
require 'jeweler'
|
8
|
+
Jeweler::Tasks.new do |gemspec|
|
9
|
+
gemspec.name = "power_reviews"
|
10
|
+
gemspec.summary = "Helps integrate Power Reviews into a rails site"
|
11
|
+
gemspec.description = "Tools and library for integrating Power Reviews into a rails website."
|
12
|
+
gemspec.email = "beaucollins@gmail.com"
|
13
|
+
gemspec.homepage = "http://github.com/beaucollins/power_reviews"
|
14
|
+
gemspec.authors = ["Beau Collins"]
|
15
|
+
gemspec.add_runtime_dependency 'javan-whenever'
|
16
|
+
gemspec.add_runtime_dependency 'fastercsv'
|
17
|
+
end
|
18
|
+
rescue LoadError
|
19
|
+
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
desc 'Default: run unit tests.'
|
24
|
+
task :default => :test
|
25
|
+
|
26
|
+
desc 'Test the power_reviews plugin.'
|
27
|
+
Rake::TestTask.new(:test) do |t|
|
28
|
+
t.libs << 'lib'
|
29
|
+
t.libs << 'test'
|
30
|
+
t.pattern = 'test/**/*_test.rb'
|
31
|
+
t.verbose = true
|
32
|
+
end
|
33
|
+
|
34
|
+
desc 'Generate documentation for the power_reviews plugin.'
|
35
|
+
Rake::RDocTask.new(:rdoc) do |rdoc|
|
36
|
+
rdoc.rdoc_dir = 'rdoc'
|
37
|
+
rdoc.title = 'PowerReviews'
|
38
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
39
|
+
rdoc.rdoc_files.include('README')
|
40
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
# PKG_FILES = FileList[
|
46
|
+
# '[a-zA-Z]*',
|
47
|
+
# 'generators/**/*',
|
48
|
+
# 'lib/**/*',
|
49
|
+
# 'rails/**/*',
|
50
|
+
# 'test/**/*'
|
51
|
+
# ]
|
52
|
+
#
|
53
|
+
# spec = Gem::Specification.new do |s|
|
54
|
+
# s.name = 'power_reviews'
|
55
|
+
# s.version = "0.0.1"
|
56
|
+
# s.author = 'Beau Collins'
|
57
|
+
# s.email = 'beau_collins@k2sports.com'
|
58
|
+
# s.homepage = 'http://k2sports.com'
|
59
|
+
# s.platform = Gem::Platform::RUBY
|
60
|
+
# s.summary = s.description = "Helps integrate Power Reviews into a rails site"
|
61
|
+
# s.files = PKG_FILES.to_a
|
62
|
+
# s.require_path = "lib"
|
63
|
+
# s.has_rdoc = false
|
64
|
+
# s.extra_rdoc_files = ['README']
|
65
|
+
# s.add_runtime_dependency 'javan-whenever' # this is a github gem
|
66
|
+
# s.add_runtime_dependency 'fastercsv'
|
67
|
+
# end
|
68
|
+
|
69
|
+
# desc "Turn this plugin into a a gem."
|
70
|
+
# Rake::GemPackageTask.new(spec) do |pkg|
|
71
|
+
# pkg.gem_spec = spec
|
72
|
+
# end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.1
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Description:
|
2
|
+
For integrating power reviews into your Rails site. Handles the downloading of PowerReviews
|
3
|
+
zip files via FTP and provides helpers to display power reviews data in your site.
|
4
|
+
|
5
|
+
Also provides an interface for creating a product data feed in CSV format to help making data
|
6
|
+
feeds easier.
|
7
|
+
|
8
|
+
Uses whenever [http://github.com/javan/whenever] to provide a cron schedule.
|
9
|
+
|
10
|
+
Example:
|
11
|
+
./script/generate power_reviews
|
12
|
+
|
13
|
+
This will create:
|
14
|
+
config/power_reviews.yml
|
15
|
+
config/schedule.rb
|
16
|
+
config/initializer/power_reviews.rb
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class PowerReviewsGenerator < Rails::Generator::Base
|
2
|
+
def manifest
|
3
|
+
record do |m|
|
4
|
+
m.directory "lib/tasks"
|
5
|
+
m.file 'lib/tasks/power_reviews_tasks.rake', 'lib/tasks/power_reviews_tasks.rake'
|
6
|
+
|
7
|
+
m.directory "config/initializers"
|
8
|
+
|
9
|
+
m.file 'config/power_reviews.yml', 'config/power_reviews.yml', :collision => :skip
|
10
|
+
m.file 'config/initializers/power_reviews.rb', 'config/initializers/power_reviews.rb', :collision => :skip
|
11
|
+
m.file 'config/schedule.rb', 'config/schedule.rb'
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# Unique for each merchant. Your merchant_group_id is located in the PowerReviews Dashboard > Merchant
|
2
|
+
# Group Properties section.
|
3
|
+
|
4
|
+
# PowerReviews::Config.merchant_group_id = 0
|
5
|
+
|
6
|
+
# ID representing your website (default value is "1"). If you have multiple websites and would like to
|
7
|
+
# integrate PowerReviews onto each site, we can set your account as a Master Merchant. This enables
|
8
|
+
# review sharing and consolidated management among your different websites. When using the “Master
|
9
|
+
# Merchant” configuration, you assign a different Site ID to each site that will have reviews. This ID
|
10
|
+
# can be your own internal ID for the site or an ID assigned by PowerReviews. If you are implementing
|
11
|
+
# a single merchant, please leave the default Site ID set to "1". The Site ID is configurable in the
|
12
|
+
# Dashboard in the Merchant Properties section.
|
13
|
+
|
14
|
+
# PowerReviews::Config.site_id = 1
|
15
|
+
|
16
|
+
# Supply the Power Reviews feed processor with items to produce. Feed is an
|
17
|
+
# instance of PowerReviews::Feed.
|
18
|
+
#
|
19
|
+
#
|
20
|
+
# PowerReviews::Feed.processor = lambda { |feed| }
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# For retrieving the zip file from PowerReviews
|
2
|
+
#
|
3
|
+
#
|
4
|
+
|
5
|
+
development:
|
6
|
+
protocol: cp
|
7
|
+
zip: test/k2skis.zip
|
8
|
+
done: test/k2skis_done.txt
|
9
|
+
|
10
|
+
production:
|
11
|
+
protocol: ftp
|
12
|
+
zip: k2skis.zip
|
13
|
+
done: k2skis_done.txt
|
14
|
+
# host: partners.powerreviews.com
|
15
|
+
# username: user
|
16
|
+
# password: passy
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# desc "Explaining what the task does"
|
2
|
+
# task :power_reviews do
|
3
|
+
# # Task goes here
|
4
|
+
# end
|
5
|
+
namespace :power_reviews do
|
6
|
+
|
7
|
+
desc "Generates the product data feed in csv format"
|
8
|
+
task :feed => :environment do
|
9
|
+
puts "Generating Power Reviews product feed"
|
10
|
+
PowerReviews::Feed.process
|
11
|
+
puts "Completed"
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "Copy the zip file from the ftp and unpack it"
|
15
|
+
task :sync => :environment do
|
16
|
+
puts "Fetching power review data"
|
17
|
+
PowerReviews::Sync.execute
|
18
|
+
puts "Completed"
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module PowerReviews
|
2
|
+
class Config
|
3
|
+
|
4
|
+
def self.merchant_group_id
|
5
|
+
@@merchant_group_id
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.merchant_group_id=id
|
9
|
+
@@merchant_group_id = id
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.site_id
|
13
|
+
@@site_id
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.site_id=id
|
17
|
+
@@site_id = id
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module PowerReviews
|
2
|
+
|
3
|
+
# Collects the feed data then outputs to CSV file for delivery to the power review peeps
|
4
|
+
# Requires a proc that will find the data and populate
|
5
|
+
class Feed
|
6
|
+
|
7
|
+
@@processor = nil
|
8
|
+
attr_reader :items
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
@items = Array.new
|
12
|
+
end
|
13
|
+
|
14
|
+
# add an item to the feed
|
15
|
+
def << item
|
16
|
+
raise ArgumentError unless item.is_a?(FeedItem)
|
17
|
+
@items << item
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.processor=blk
|
21
|
+
@@processor = blk
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.process
|
25
|
+
feed = self.new
|
26
|
+
@@processor[feed] unless @@processor.nil?
|
27
|
+
feed.to_csv
|
28
|
+
end
|
29
|
+
|
30
|
+
def to_csv
|
31
|
+
require 'fastercsv'
|
32
|
+
FasterCSV.open("#{RAILS_ROOT}/tmp/power_reviews.csv", 'w') do |csv|
|
33
|
+
csv << FeedItem.field_names
|
34
|
+
@items.each do |item|
|
35
|
+
csv << item.values
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module PowerReviews
|
2
|
+
|
3
|
+
class FeedItem
|
4
|
+
|
5
|
+
CATEGORY_SEPARATOR = " > "
|
6
|
+
|
7
|
+
REQUIRED_FIELDS = [:product_url, :name, :description, :price, :image_url, :category, :page_id]
|
8
|
+
OPTIONAL_FIELDS = [:manufacturer_id, :shipping, :brand, :upc, :specifications, :in_stock,
|
9
|
+
:affiliate_id, :affiliate_url, :add_to_cart_url, :page_id_variant]
|
10
|
+
|
11
|
+
FIELDS = REQUIRED_FIELDS + OPTIONAL_FIELDS
|
12
|
+
|
13
|
+
FIELDS.each {|field| attr_accessor field }
|
14
|
+
|
15
|
+
def initialize(attributes = {})
|
16
|
+
attributes ||= {}
|
17
|
+
attributes.each do |field, value|
|
18
|
+
self.send("#{field.to_s}=".intern, value)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def category=cat
|
23
|
+
@category = cat.is_a?(Array) ? cat.join(CATEGORY_SEPARATOR) : cat.to_s
|
24
|
+
end
|
25
|
+
|
26
|
+
def values
|
27
|
+
FIELDS.collect {|f| self.send(f) }
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.field_names
|
31
|
+
FIELDS.collect { |f| f.to_s }
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module PowerReviews
|
2
|
+
module Protocols
|
3
|
+
|
4
|
+
# This should provide the necessary actions for moving the zip
|
5
|
+
# and
|
6
|
+
class Base
|
7
|
+
|
8
|
+
def initialize(config={})
|
9
|
+
@config = config || {}
|
10
|
+
end
|
11
|
+
|
12
|
+
# Returns true if the done file is missing
|
13
|
+
def done?
|
14
|
+
true
|
15
|
+
end
|
16
|
+
|
17
|
+
# Delete the done file
|
18
|
+
def done!
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
# Do the copying of the zip file to the preferred destination
|
23
|
+
def copy_zip(to)
|
24
|
+
puts 'This is the base class'
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
# do any cleanup necessary
|
29
|
+
def cleanup
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module PowerReviews
|
2
|
+
module Protocols
|
3
|
+
class Cp < Base
|
4
|
+
|
5
|
+
require 'fileutils'
|
6
|
+
|
7
|
+
def done?
|
8
|
+
!File.exists?(@config['done'])
|
9
|
+
end
|
10
|
+
|
11
|
+
def done!
|
12
|
+
File.delete(@config['done'])
|
13
|
+
end
|
14
|
+
|
15
|
+
def copy_zip(to)
|
16
|
+
FileUtils.cp(@config['zip'], to)
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
|
2
|
+
require "net/ftp"
|
3
|
+
|
4
|
+
module PowerReviews
|
5
|
+
module Protocols
|
6
|
+
class Ftp < Base
|
7
|
+
|
8
|
+
# Returns true if the done file is missing
|
9
|
+
def done?
|
10
|
+
!client.nlst.include?(@config['done'])
|
11
|
+
end
|
12
|
+
|
13
|
+
# Delete the done file
|
14
|
+
def done!
|
15
|
+
client.delete(@config['done'])
|
16
|
+
end
|
17
|
+
|
18
|
+
# Do the copying of the zip file to the preferred destination
|
19
|
+
def copy_zip(to)
|
20
|
+
client.getbinaryfile(@config['zip'], to)
|
21
|
+
end
|
22
|
+
|
23
|
+
# do any cleanup necessary
|
24
|
+
def cleanup
|
25
|
+
@client.close
|
26
|
+
end
|
27
|
+
|
28
|
+
def client
|
29
|
+
return @client unless @client.nil?
|
30
|
+
@client = Net::FTP.new(@config['host'])
|
31
|
+
@client.login(@config['username'], @config['password'])
|
32
|
+
@client
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'power_reviews/protocols/base'
|
2
|
+
require 'power_reviews/protocols/cp'
|
3
|
+
require 'power_reviews/protocols/ftp'
|
4
|
+
|
5
|
+
module PowerReviews
|
6
|
+
# Downloads the ftp file and stores it in the correct location unzipped
|
7
|
+
class Sync
|
8
|
+
require 'yaml'
|
9
|
+
require 'fileutils'
|
10
|
+
|
11
|
+
PROTOCOLS = {
|
12
|
+
:cp => Protocols::Cp,
|
13
|
+
:ftp => Protocols::Ftp
|
14
|
+
}
|
15
|
+
|
16
|
+
# Execute the necessary actions
|
17
|
+
def self.execute
|
18
|
+
self.start do |client, config|
|
19
|
+
|
20
|
+
zip_path = "#{RAILS_ROOT}/public/system/reviews.zip"
|
21
|
+
|
22
|
+
unless client.done?
|
23
|
+
FileUtils.mkdir_p(File.dirname(zip_path))
|
24
|
+
# we need the correct path to be setup
|
25
|
+
client.copy_zip(zip_path)
|
26
|
+
`cd #{File.dirname(zip_path)} && unzip -o #{zip_path}`
|
27
|
+
client.done!
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# Given the environment loads up the yaml file and creates a new instance
|
34
|
+
def self.start
|
35
|
+
config = YAML::load(File.open("#{RAILS_ROOT}/config/power_reviews.yml"))[RAILS_ENV] || {}
|
36
|
+
syncer = PROTOCOLS[config.delete('protocol').intern].new(config)
|
37
|
+
yield syncer, config
|
38
|
+
syncer.cleanup
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module PowerReviews
|
2
|
+
module ViewHelpers
|
3
|
+
|
4
|
+
def power_reviews_javascript_tag
|
5
|
+
javascript_include_tag('/system/pwr/engine/js/full')
|
6
|
+
end
|
7
|
+
|
8
|
+
def power_reviews_javascript_variables(options = {})
|
9
|
+
options = {
|
10
|
+
:locale => 'en_US',
|
11
|
+
:zip_location => '/system/',
|
12
|
+
:pr_style_sheet => ''
|
13
|
+
}.merge(options)
|
14
|
+
javascript_tag do
|
15
|
+
options.collect { |key, val| "var pr_#{key} = '#{val}';" unless val.blank? }.compact!.join("\n")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def power_reviews_snippet(page_id, write_review_url, review_anchor = '#ReviewHeader')
|
20
|
+
javascript_tag do
|
21
|
+
<<-eos
|
22
|
+
POWERREVIEWS.display.snippet(document, {
|
23
|
+
pr_page_id : '#{page_id}',
|
24
|
+
pr_write_review : '#{write_review_url}',
|
25
|
+
pr_read_review : '#{review_anchor}'
|
26
|
+
});
|
27
|
+
eos
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def power_reviews_display(page_id, write_review_url)
|
32
|
+
javascript_tag do
|
33
|
+
<<-eos
|
34
|
+
POWERREVIEWS.display.engine(document, {
|
35
|
+
pr_page_id : '#{page_id}',
|
36
|
+
pr_write_review : '#{write_review_url}'
|
37
|
+
});
|
38
|
+
eos
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def power_reviews_form(page_id, options = {})
|
43
|
+
options = {
|
44
|
+
:locale => '',
|
45
|
+
:site_id => PowerReviews::Config.site_id,
|
46
|
+
:merchant_group_id => PowerReviews::Config.merchant_group_id,
|
47
|
+
:source => 'web',
|
48
|
+
:merchant_user_id => '',
|
49
|
+
:merchant_user_email => '',
|
50
|
+
:promo_code => '',
|
51
|
+
:style_sheet => ''
|
52
|
+
}.merge(options)
|
53
|
+
|
54
|
+
javascript_tag do
|
55
|
+
options.collect { |key, val| "var pr_#{key} = '#{val}';" unless val.blank? }.unshift("var pr_page_id = '#{page_id}';").compact!.join("\n")
|
56
|
+
end << javascript_include_tag('/system/pwr/engine/js/appLaunch')
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{power_reviews}
|
8
|
+
s.version = "0.1.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Beau Collins"]
|
12
|
+
s.date = %q{2009-09-29}
|
13
|
+
s.description = %q{Tools and library for integrating Power Reviews into a rails website.}
|
14
|
+
s.email = %q{beaucollins@gmail.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"README"
|
17
|
+
]
|
18
|
+
s.files = [
|
19
|
+
".gitignore",
|
20
|
+
"MIT-LICENSE",
|
21
|
+
"README",
|
22
|
+
"Rakefile",
|
23
|
+
"VERSION",
|
24
|
+
"generators/power_reviews/USAGE",
|
25
|
+
"generators/power_reviews/power_reviews_generator.rb",
|
26
|
+
"generators/power_reviews/templates/config/initializers/power_reviews.rb",
|
27
|
+
"generators/power_reviews/templates/config/power_reviews.yml",
|
28
|
+
"generators/power_reviews/templates/config/schedule.rb",
|
29
|
+
"generators/power_reviews/templates/lib/tasks/power_reviews_tasks.rake",
|
30
|
+
"lib/power_reviews.rb",
|
31
|
+
"lib/power_reviews/config.rb",
|
32
|
+
"lib/power_reviews/feed.rb",
|
33
|
+
"lib/power_reviews/feed_item.rb",
|
34
|
+
"lib/power_reviews/protocols/base.rb",
|
35
|
+
"lib/power_reviews/protocols/cp.rb",
|
36
|
+
"lib/power_reviews/protocols/ftp.rb",
|
37
|
+
"lib/power_reviews/routes.rb",
|
38
|
+
"lib/power_reviews/sync.rb",
|
39
|
+
"lib/power_reviews/view_helpers.rb",
|
40
|
+
"power_reviews.gemspec",
|
41
|
+
"rails/init.rb",
|
42
|
+
"test/power_reviews_test.rb",
|
43
|
+
"test/test_helper.rb"
|
44
|
+
]
|
45
|
+
s.homepage = %q{http://github.com/beaucollins/power_reviews}
|
46
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
47
|
+
s.require_paths = ["lib"]
|
48
|
+
s.rubygems_version = %q{1.3.5}
|
49
|
+
s.summary = %q{Helps integrate Power Reviews into a rails site}
|
50
|
+
s.test_files = [
|
51
|
+
"test/power_reviews_test.rb",
|
52
|
+
"test/test_helper.rb"
|
53
|
+
]
|
54
|
+
|
55
|
+
if s.respond_to? :specification_version then
|
56
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
57
|
+
s.specification_version = 3
|
58
|
+
|
59
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
60
|
+
s.add_runtime_dependency(%q<javan-whenever>, [">= 0"])
|
61
|
+
s.add_runtime_dependency(%q<fastercsv>, [">= 0"])
|
62
|
+
else
|
63
|
+
s.add_dependency(%q<javan-whenever>, [">= 0"])
|
64
|
+
s.add_dependency(%q<fastercsv>, [">= 0"])
|
65
|
+
end
|
66
|
+
else
|
67
|
+
s.add_dependency(%q<javan-whenever>, [">= 0"])
|
68
|
+
s.add_dependency(%q<fastercsv>, [">= 0"])
|
69
|
+
end
|
70
|
+
end
|
data/rails/init.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'power_reviews'
|
3
|
+
|
4
|
+
class PowerReviewsTest < ActiveSupport::TestCase
|
5
|
+
# Replace this with your real tests.
|
6
|
+
should "have itemdata with correct attributes" do
|
7
|
+
item = PowerReviews::FeedItem.new
|
8
|
+
assert PowerReviews::FeedItem::FIELDS.is_a?(Array)
|
9
|
+
PowerReviews::FeedItem::FIELDS.each {|f| assert item.respond_to?(f), "Item did not have attribute #{f}" }
|
10
|
+
end
|
11
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: power_reviews
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Beau Collins
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-09-29 00:00:00 -07:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: javan-whenever
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: fastercsv
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
34
|
+
version:
|
35
|
+
description: Tools and library for integrating Power Reviews into a rails website.
|
36
|
+
email: beaucollins@gmail.com
|
37
|
+
executables: []
|
38
|
+
|
39
|
+
extensions: []
|
40
|
+
|
41
|
+
extra_rdoc_files:
|
42
|
+
- README
|
43
|
+
files:
|
44
|
+
- .gitignore
|
45
|
+
- MIT-LICENSE
|
46
|
+
- README
|
47
|
+
- Rakefile
|
48
|
+
- VERSION
|
49
|
+
- generators/power_reviews/USAGE
|
50
|
+
- generators/power_reviews/power_reviews_generator.rb
|
51
|
+
- generators/power_reviews/templates/config/initializers/power_reviews.rb
|
52
|
+
- generators/power_reviews/templates/config/power_reviews.yml
|
53
|
+
- generators/power_reviews/templates/config/schedule.rb
|
54
|
+
- generators/power_reviews/templates/lib/tasks/power_reviews_tasks.rake
|
55
|
+
- lib/power_reviews.rb
|
56
|
+
- lib/power_reviews/config.rb
|
57
|
+
- lib/power_reviews/feed.rb
|
58
|
+
- lib/power_reviews/feed_item.rb
|
59
|
+
- lib/power_reviews/protocols/base.rb
|
60
|
+
- lib/power_reviews/protocols/cp.rb
|
61
|
+
- lib/power_reviews/protocols/ftp.rb
|
62
|
+
- lib/power_reviews/routes.rb
|
63
|
+
- lib/power_reviews/sync.rb
|
64
|
+
- lib/power_reviews/view_helpers.rb
|
65
|
+
- power_reviews.gemspec
|
66
|
+
- rails/init.rb
|
67
|
+
- test/power_reviews_test.rb
|
68
|
+
- test/test_helper.rb
|
69
|
+
has_rdoc: true
|
70
|
+
homepage: http://github.com/beaucollins/power_reviews
|
71
|
+
licenses: []
|
72
|
+
|
73
|
+
post_install_message:
|
74
|
+
rdoc_options:
|
75
|
+
- --charset=UTF-8
|
76
|
+
require_paths:
|
77
|
+
- lib
|
78
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: "0"
|
83
|
+
version:
|
84
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: "0"
|
89
|
+
version:
|
90
|
+
requirements: []
|
91
|
+
|
92
|
+
rubyforge_project:
|
93
|
+
rubygems_version: 1.3.5
|
94
|
+
signing_key:
|
95
|
+
specification_version: 3
|
96
|
+
summary: Helps integrate Power Reviews into a rails site
|
97
|
+
test_files:
|
98
|
+
- test/power_reviews_test.rb
|
99
|
+
- test/test_helper.rb
|