synchroniser 0.3.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ .autotest
2
+ *.gem
3
+ .bundle
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ # A sample Gemfile
2
+ source :gemcutter
3
+ #
4
+ # gem "rails"
5
+
6
+ group :test do
7
+ gem 'hpricot'
8
+ end
data/Rakefile CHANGED
@@ -1,11 +1,46 @@
1
+ require 'rubygems'
1
2
  require 'rake'
3
+
4
+ begin
5
+ require 'jeweler'
6
+ Jeweler::Tasks.new do |gem|
7
+ gem.name = "synchroniser"
8
+ gem.summary = %Q{A wee synchroniser for a data source and a data sink.}
9
+ gem.description = %Q{A wee synchroniser for a data source and a data sink.}
10
+ gem.email = "rob@sharp.id.au"
11
+ gem.homepage = "http://github.com/robsharp/synchroniser"
12
+ gem.authors = ["Rob Sharp"]
13
+ gem.add_development_dependency "rspec", ">= 1.2.9"
14
+ gem.add_development_dependency "rcov"
15
+ # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
+ end
17
+ Jeweler::GemcutterTasks.new
18
+ rescue LoadError
19
+ puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
20
+ end
21
+
2
22
  require 'spec/rake/spectask'
23
+ Spec::Rake::SpecTask.new(:spec) do |spec|
24
+ spec.libs << 'lib' << 'spec'
25
+ spec.spec_files = FileList['spec/**/*_spec.rb']
26
+ end
27
+
28
+ Spec::Rake::SpecTask.new(:rcov) do |spec|
29
+ spec.libs << 'lib' << 'spec'
30
+ spec.pattern = 'spec/**/*_spec.rb'
31
+ spec.rcov = true
32
+ end
33
+
34
+ task :spec => :check_dependencies
3
35
 
4
- desc 'Default: run specs.'
5
36
  task :default => :spec
6
37
 
7
- desc 'Run the specs'
8
- Spec::Rake::SpecTask.new(:spec) do |t|
9
- t.spec_opts = ['--colour --format progress --loadby mtime --reverse']
10
- t.spec_files = FileList['spec/**/*_spec.rb']
38
+ require 'rake/rdoctask'
39
+ Rake::RDocTask.new do |rdoc|
40
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
41
+
42
+ rdoc.rdoc_dir = 'rdoc'
43
+ rdoc.title = "synchroniser #{version}"
44
+ rdoc.rdoc_files.include('README*')
45
+ rdoc.rdoc_files.include('lib/**/*.rb')
11
46
  end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.4.1
data/init.rb ADDED
@@ -0,0 +1,2 @@
1
+ # Include hook code here
2
+ require File.dirname(__FILE__) + "/rails/init
data/install.rb ADDED
@@ -0,0 +1 @@
1
+ # Install hook code here
data/lib/sync_item.rb CHANGED
@@ -1,4 +1,19 @@
1
1
  require 'active_record'
2
2
 
3
3
  class SyncItem < ActiveRecord::Base
4
+
5
+ def self.reset_flags(container)
6
+ counter = 0
7
+
8
+ SyncItem.find_all_by_group(container.group).each {|flag|
9
+ flag.status = 0
10
+ flag.save
11
+ counter += 1
12
+ }
13
+
14
+ SyncItem.logger.info("Reset status for the set '#{container.group}'")
15
+
16
+ counter
17
+ end
18
+
4
19
  end
@@ -4,17 +4,12 @@ module Synchroniser::Config
4
4
 
5
5
  attr_accessor :config
6
6
 
7
- def initialize(file_name, ingestor_name)
8
- file_path = RAILS_ROOT
9
- config = YAML::load(File.open("#{file_path}#{file_name}"))
7
+ def initialize(file_name, ingestor_name, defaults={})
8
+ file_path = "#{RAILS_ROOT}#{file_name}"
9
+ config = YAML::load(File.open(file_path))
10
10
 
11
- environment = RAILS_ENV
12
- if config[RAILS_ENV].nil?
13
- environment = "test"
14
- end
15
-
16
11
  begin
17
- @config = config[environment]
12
+ @config = config[RAILS_ENV]
18
13
  rescue
19
14
  @config = nil
20
15
  raise ArgumentError, "Unable to find the #{environment} stanza for #{ingestor_name}' in the configuration file supplied"
@@ -23,6 +18,8 @@ module Synchroniser::Config
23
18
  if @config.nil?
24
19
  raise ArgumentError, "Unable to find the stanza '#{ingestor_name}' in the configuration file supplied"
25
20
  end
21
+
22
+ @config["params"]["container"]["defaults"].merge!(defaults) unless defaults.empty?
26
23
  end
27
24
 
28
25
  def get_sync
@@ -39,13 +36,11 @@ module Synchroniser::Config
39
36
  @config['params']['url'].each { |url|
40
37
  @ingestor.load(url)
41
38
  strategies << @ingestor.clone
42
- puts url
43
39
 
44
40
  # not sure if this will actually work
45
41
  @ingestor.pagination.each do |url|
46
42
  @ingestor.load(url)
47
43
  strategies << @ingestor.clone
48
- puts url
49
44
  end
50
45
  }
51
46
  strategies
@@ -1,10 +1,6 @@
1
1
  module Synchroniser::Model
2
2
  require File.join(File.dirname(__FILE__), '..', 'sync_item.rb')
3
3
 
4
- def find_all_flags
5
- SyncItem.find_all_by_group(group)
6
- end
7
-
8
4
  def delete_expired_items
9
5
  params = {:status => false,
10
6
  :group => group}
@@ -52,4 +48,10 @@ module Synchroniser::Model
52
48
  @@group
53
49
  end
54
50
 
51
+ def verify
52
+ if self.item.nil?
53
+ raise NotImplementedError, "Method call '#{self.class}.item' is returning null. Please ensure it returns a unique value per instance."
54
+ end
55
+ end
56
+
55
57
  end
@@ -1,8 +1,8 @@
1
1
  module Synchroniser
2
2
  module VERSION
3
3
  MAJOR = 0
4
- MINOR = 3
5
- TINY = 0
4
+ MINOR = 4
5
+ TINY = 1
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/lib/synchroniser.rb CHANGED
@@ -2,6 +2,7 @@ class Synchroniser
2
2
 
3
3
  attr_accessor :container
4
4
  attr_accessor :ingestors
5
+ attr_accessor :stats
5
6
 
6
7
  def initialize(container, ingestors)
7
8
  @container = container
@@ -14,37 +15,46 @@ class Synchroniser
14
15
  }.flatten
15
16
  end
16
17
 
17
- def sync
18
- stats = {}
19
-
18
+ def verify_container
20
19
  if @container.group.nil?
21
20
  raise ArgumentError, "Group not set on container '#{@container.class}'"
22
21
  end
22
+ end
23
23
 
24
- stats[:seed] = 0
25
- @container.find_all_flags.each {|flag|
26
- flag.status = 0
27
- flag.save
28
- stats[:seed] += 1
29
- }
24
+ def sync
25
+ initialise_stats
26
+
27
+ verify_container
30
28
 
31
- SyncItem.logger.info("Reset status for the set '#{@container.group}'")
29
+ # reset flags and store the number of flags reset
30
+ @stats[:seed] = SyncItem.reset_flags(@container)
32
31
 
33
- stats[:ingestable] = 0
34
32
  ingest.each {|item|
35
- if item.item.nil?
36
- raise NotImplementedError, "Method call '#{@container.class}.item' is returning null. Please ensure it returns a unique value per instance."
37
- end
38
- item.save
39
- item.url
40
- stats[:ingestable] += 1
33
+
34
+ item.verify
35
+
36
+ if item.save
37
+ @stats[:ingested] += 1
38
+ end
39
+ @stats[:ingestable] += 1
41
40
  }
42
41
 
43
42
  @container.delete_expired_items
43
+ end
44
44
 
45
- puts "Initial seeding of #{stats[:seed]}"
46
- puts "Ingestor found #{stats[:ingestable]} items"
45
+ def display_stats
46
+ @stats[:failed] = @stats['ingestable'] - @stats['ingested']
47
+ puts "Initial seeding of #{@stats[:seed]}"
48
+ puts "Ingestor found #{@stats[:ingestable]} items, #{@stats[:ingested]} ingested, #{@stats[:failed]} failed."
47
49
  end
50
+
51
+ def initialise_stats
52
+ @stats = {}
53
+ [:ingestable, :ingested, :seed].map() { |var|
54
+ @stats[var] = 0
55
+ }
56
+ end
57
+
48
58
  end
49
59
 
50
60
  require File.join(File.dirname(__FILE__), 'synchroniser', 'config.rb')
data/spec/.gitignore ADDED
@@ -0,0 +1 @@
1
+ *.log
@@ -0,0 +1 @@
1
+ synchroniser.sqlite3.db
data/spec/db/database.yml CHANGED
@@ -1,3 +1,3 @@
1
1
  sqlite3:
2
2
  :adapter: sqlite3
3
- :database: vendor/plugins/synchroniser/spec/db/synchroniser.sqlite3.db
3
+ :database: spec/db/synchroniser.sqlite3.db
@@ -0,0 +1,6 @@
1
+ one:
2
+ item: abc123
3
+ group: def456
4
+ class_name: classname
5
+ class_id: classid
6
+ status: status
data/spec/spec_helper.rb CHANGED
@@ -1,17 +1,18 @@
1
- begin
2
- require File.dirname(__FILE__) + '/../../../../spec/spec_helper'
3
- rescue LoadError
4
- puts "You need to install rspec in your base app"
5
- exit
6
- end
1
+ require 'rubygems'
2
+ require 'active_record'
3
+ require 'sqlite3'
4
+ require 'logger'
7
5
 
8
6
  plugin_spec_dir = File.dirname(__FILE__)
9
7
  ActiveRecord::Base.logger = Logger.new(plugin_spec_dir + "/debug.log")
10
-
11
8
  databases = YAML::load(IO.read(plugin_spec_dir + "/db/database.yml"))
12
9
  ActiveRecord::Base.establish_connection(databases[ENV["DB"] || "sqlite3"])
13
10
  load(File.join(plugin_spec_dir, "db", "schema.rb"))
14
11
 
12
+
13
+ RAILS_ENV = "test"
14
+ RAILS_ROOT = "./"
15
+
15
16
  require File.join(File.dirname(__FILE__), '..', 'lib', 'synchroniser.rb')
16
17
  require File.join(File.dirname(__FILE__), '..', 'lib', 'post.rb')
17
18
  require File.join(File.dirname(__FILE__), '..', 'lib', 'dummy_ingestor.rb')
@@ -1,11 +1,19 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper'
2
-
3
- item = "abc123"
4
- group = "def456"
2
+ require 'pp'
5
3
 
6
4
  describe Synchroniser do
5
+
6
+ before :each do
7
+ # set our defaults
8
+ @item = "abc123"
9
+ @group = "def456"
10
+
11
+ # clear out the current synchronisation
12
+ SyncItem.find(:all).map { |item| item.destroy }
13
+ end
14
+
7
15
  it "should always create a new post with new data" do
8
- container = Post.new({:url => item, :group => group})
16
+ container = Post.new({:url => @item, :group => @group})
9
17
  ingestors = [ DummyIngestor.new ]
10
18
  sync = Synchroniser.new(container, ingestors)
11
19
  sync_data = sync.ingest
@@ -15,11 +23,11 @@ describe Synchroniser do
15
23
  it "should never create a new post with an existing object" do
16
24
  #TODO should use a fixture instead
17
25
  a = SyncItem.new
18
- a.item = item
19
- a.group = group
26
+ a.item = @item
27
+ a.group = @group
20
28
  a.save
21
29
 
22
- container = Post.new({:url => item, :group => group})
30
+ container = Post.new({:url => @item, :group => @group})
23
31
  ingestors = [ DummyIngestor.new ]
24
32
  sync = Synchroniser.new(container, ingestors)
25
33
  sync_data = sync.ingest
@@ -27,39 +35,37 @@ describe Synchroniser do
27
35
  end
28
36
 
29
37
  it "should set the correct container group from a config" do
30
- config = Synchroniser::Config::Params.new("/vendor/plugins/synchroniser/test/docs/ingestors.yml", "rss")
38
+ config = Synchroniser::Config::Params.new("test/docs/ingestors/rss.yml", "rss")
31
39
  synchroniser = config.get_sync
32
40
  synchroniser.container.group.should == "rss_test_feed"
33
41
  end
34
42
 
35
43
  it "should set the correct model group from a config" do
36
- config = Synchroniser::Config::Params.new("/vendor/plugins/synchroniser/test/docs/ingestors.yml", "rss")
44
+ config = Synchroniser::Config::Params.new("test/docs/ingestors/rss.yml", "rss")
37
45
  synchroniser = config.get_sync
38
46
  synchroniser.ingest[0].group.should == "rss_test_feed"
39
47
  end
40
48
 
41
49
  it "should set the correct url from a config" do
42
- synchroniser = Synchroniser::Config::Params.new("/vendor/plugins/synchroniser/test/docs/ingestors.yml", "rss").get_sync
50
+ synchroniser = Synchroniser::Config::Params.new("test/docs/ingestors/rss.yml", "rss").get_sync
43
51
  synchroniser.ingest[0].url.should == "http://news.bbc.co.uk/sport1/hi/football/teams/n/newcastle_united/8329055.stm"
44
52
  end
45
53
 
46
54
  it "should correctly set the title upon ingestion" do
47
- synchroniser = Synchroniser::Config::Params.new("/vendor/plugins/synchroniser/test/docs/ingestors.yml", "rss").get_sync
55
+ synchroniser = Synchroniser::Config::Params.new("test/docs/ingestors/rss.yml", "rss").get_sync
48
56
  synchroniser.ingest[0].title.should == "Ashley takes Newcastle off market"
49
57
  end
50
58
 
51
59
  it "should set container defaults corrently" do
52
- synchroniser = Synchroniser::Config::Params.new("/vendor/plugins/synchroniser/test/docs/ingestors.yml", "rss").get_sync
60
+ synchroniser = Synchroniser::Config::Params.new("test/docs/ingestors/rss.yml", "rss").get_sync
53
61
  synchroniser.container.test_default.should == "random_default_name"
54
62
  end
55
63
 
56
64
  it "should sync without error" do
57
- synchroniser = Synchroniser::Config::Params.new("/vendor/plugins/synchroniser/test/docs/ingestors.yml", "rss").get_sync
65
+ synchroniser = Synchroniser::Config::Params.new("test/docs/ingestors/rss.yml", "rss").get_sync
58
66
  synchroniser.sync
59
67
  SyncItem.find(:all)[0].item.should == "http://news.bbc.co.uk/sport1/hi/football/teams/n/newcastle_united/8329055.stm"
60
68
  SyncItem.find(:all)[0].group.should == "rss_test_feed"
61
69
  end
62
70
 
63
-
64
-
65
71
  end
@@ -0,0 +1,82 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{synchroniser}
8
+ s.version = "0.4.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Rob Sharp"]
12
+ s.date = %q{2010-08-30}
13
+ s.description = %q{A wee synchroniser for a data source and a data sink.}
14
+ s.email = %q{rob@sharp.id.au}
15
+ s.files = [
16
+ ".gitignore",
17
+ "Gemfile",
18
+ "MIT-LICENSE",
19
+ "Rakefile",
20
+ "Readme.rdoc",
21
+ "VERSION",
22
+ "autotest/discover.rb",
23
+ "generators/synchroniser/USAGE",
24
+ "generators/synchroniser/synchroniser_generator.rb",
25
+ "generators/synchroniser/templates/create_sync_items.rb",
26
+ "init.rb",
27
+ "install.rb",
28
+ "lib/dummy_ingestor.rb",
29
+ "lib/post.rb",
30
+ "lib/rss_ingestor.rb",
31
+ "lib/sync_item.rb",
32
+ "lib/synchroniser.rb",
33
+ "lib/synchroniser/config.rb",
34
+ "lib/synchroniser/ingestor.rb",
35
+ "lib/synchroniser/ingestor/uri.rb",
36
+ "lib/synchroniser/ingestor/yql.rb",
37
+ "lib/synchroniser/model.rb",
38
+ "lib/synchroniser/tasks/synchroniser.rake",
39
+ "lib/synchroniser/version.rb",
40
+ "rails/init.rb",
41
+ "spec/.gitignore",
42
+ "spec/db/.gitignore",
43
+ "spec/db/database.yml",
44
+ "spec/db/schema.rb",
45
+ "spec/fixtures/sync_item.yml",
46
+ "spec/spec.opts",
47
+ "spec/spec_helper.rb",
48
+ "spec/synchroniser_spec.rb",
49
+ "synchroniser.gemspec",
50
+ "tasks/synchroniser_tasks.rake",
51
+ "test/docs/ingestors/rss.yml",
52
+ "test/docs/rss.xml",
53
+ "uninstall.rb"
54
+ ]
55
+ s.homepage = %q{http://github.com/robsharp/synchroniser}
56
+ s.rdoc_options = ["--charset=UTF-8"]
57
+ s.require_paths = ["lib"]
58
+ s.rubygems_version = %q{1.3.7}
59
+ s.summary = %q{A wee synchroniser for a data source and a data sink.}
60
+ s.test_files = [
61
+ "spec/db/schema.rb",
62
+ "spec/synchroniser_spec.rb",
63
+ "spec/spec_helper.rb"
64
+ ]
65
+
66
+ if s.respond_to? :specification_version then
67
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
68
+ s.specification_version = 3
69
+
70
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
71
+ s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
72
+ s.add_development_dependency(%q<rcov>, [">= 0"])
73
+ else
74
+ s.add_dependency(%q<rspec>, [">= 1.2.9"])
75
+ s.add_dependency(%q<rcov>, [">= 0"])
76
+ end
77
+ else
78
+ s.add_dependency(%q<rspec>, [">= 1.2.9"])
79
+ s.add_dependency(%q<rcov>, [">= 0"])
80
+ end
81
+ end
82
+
@@ -0,0 +1,9 @@
1
+ test:
2
+ ingestor: rss
3
+ params:
4
+ url: test/docs/rss.xml
5
+ container:
6
+ object: Post
7
+ defaults:
8
+ group: rss_test_feed
9
+ test_default: random_default_name
data/uninstall.rb ADDED
@@ -0,0 +1 @@
1
+ # Uninstall hook code here
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: synchroniser
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 13
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 3
9
- - 0
10
- version: 0.3.0
8
+ - 4
9
+ - 1
10
+ version: 0.4.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Rob Sharp
@@ -15,11 +15,40 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-05 00:00:00 +10:00
18
+ date: 2010-08-30 00:00:00 +10:00
19
19
  default_executable:
20
- dependencies: []
21
-
22
- description: " Synchroniser is a simple class to class synchronisation plugin.\n"
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rspec
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 13
30
+ segments:
31
+ - 1
32
+ - 2
33
+ - 9
34
+ version: 1.2.9
35
+ type: :development
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: rcov
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ type: :development
50
+ version_requirements: *id002
51
+ description: A wee synchroniser for a data source and a data sink.
23
52
  email: rob@sharp.id.au
24
53
  executables: []
25
54
 
@@ -28,41 +57,51 @@ extensions: []
28
57
  extra_rdoc_files: []
29
58
 
30
59
  files:
31
- - Readme.rdoc
32
- - Rakefile
60
+ - .gitignore
61
+ - Gemfile
33
62
  - MIT-LICENSE
63
+ - Rakefile
64
+ - Readme.rdoc
65
+ - VERSION
34
66
  - autotest/discover.rb
35
67
  - generators/synchroniser/USAGE
36
68
  - generators/synchroniser/synchroniser_generator.rb
37
69
  - generators/synchroniser/templates/create_sync_items.rb
70
+ - init.rb
71
+ - install.rb
72
+ - lib/dummy_ingestor.rb
73
+ - lib/post.rb
38
74
  - lib/rss_ingestor.rb
39
- - lib/synchroniser.rb
40
75
  - lib/sync_item.rb
41
- - lib/dummy_ingestor.rb
42
- - lib/synchroniser/ingestor/yql.rb
76
+ - lib/synchroniser.rb
77
+ - lib/synchroniser/config.rb
78
+ - lib/synchroniser/ingestor.rb
43
79
  - lib/synchroniser/ingestor/uri.rb
80
+ - lib/synchroniser/ingestor/yql.rb
44
81
  - lib/synchroniser/model.rb
45
82
  - lib/synchroniser/tasks/synchroniser.rake
46
83
  - lib/synchroniser/version.rb
47
- - lib/synchroniser/config.rb
48
- - lib/synchroniser/ingestor.rb
49
- - lib/post.rb
50
84
  - rails/init.rb
51
- - spec/spec.opts
85
+ - spec/.gitignore
86
+ - spec/db/.gitignore
52
87
  - spec/db/database.yml
53
88
  - spec/db/schema.rb
54
- - spec/synchroniser_spec.rb
89
+ - spec/fixtures/sync_item.yml
90
+ - spec/spec.opts
55
91
  - spec/spec_helper.rb
56
- - test/docs/ingestors.yml
57
- - test/docs/rss.xml
92
+ - spec/synchroniser_spec.rb
93
+ - synchroniser.gemspec
58
94
  - tasks/synchroniser_tasks.rake
95
+ - test/docs/ingestors/rss.yml
96
+ - test/docs/rss.xml
97
+ - uninstall.rb
59
98
  has_rdoc: true
60
- homepage: http://github.com/iondrive/synchroniser
99
+ homepage: http://github.com/robsharp/synchroniser
61
100
  licenses: []
62
101
 
63
102
  post_install_message:
64
- rdoc_options: []
65
-
103
+ rdoc_options:
104
+ - --charset=UTF-8
66
105
  require_paths:
67
106
  - lib
68
107
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -89,6 +128,8 @@ rubyforge_project:
89
128
  rubygems_version: 1.3.7
90
129
  signing_key:
91
130
  specification_version: 3
92
- summary: A basic synchronisation plugin for rails
93
- test_files: []
94
-
131
+ summary: A wee synchroniser for a data source and a data sink.
132
+ test_files:
133
+ - spec/db/schema.rb
134
+ - spec/synchroniser_spec.rb
135
+ - spec/spec_helper.rb
@@ -1,10 +0,0 @@
1
- test:
2
- rss:
3
- ingestor: rss
4
- params:
5
- url: /home/robsharp/Dropbox/workspace/synchroniser_tests/vendor/plugins/synchroniser/test/docs/rss.xml
6
- container:
7
- object: Post
8
- defaults:
9
- group: rss_test_feed
10
- test_default: random_default_name