jm81-dm-svn 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -19,4 +19,5 @@ src/*
19
19
  .project
20
20
  .loadpath
21
21
  lib/wistle/tmp/*
22
- config/recaptcha.yml
22
+ config/recaptcha.yml
23
+ *qt_temp*
data/Rakefile CHANGED
@@ -9,9 +9,9 @@ begin
9
9
  gem.email = "jmorgan@morgancreative.net"
10
10
  gem.homepage = "http://github.com/jm81/dm-svn"
11
11
  gem.authors = ["Jared Morgan"]
12
- gem.add_dependency('dm-core')
13
- gem.add_dependency('dm-aggregates')
14
- gem.add_dependency('dm-validations')
12
+ gem.add_dependency('dm-core', '>= 0.10.0')
13
+ gem.add_dependency('dm-aggregates', '>= 0.10.0')
14
+ gem.add_dependency('dm-validations', '>= 0.10.0')
15
15
  gem.add_dependency('jm81-svn-fixture', '>= 0.1.1')
16
16
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
17
17
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
data/dm-svn.gemspec ADDED
@@ -0,0 +1,82 @@
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{dm-svn}
8
+ s.version = "0.2.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Jared Morgan"]
12
+ s.date = %q{2009-09-19}
13
+ s.email = %q{jmorgan@morgancreative.net}
14
+ s.files = [
15
+ ".gitignore",
16
+ "Rakefile",
17
+ "VERSION",
18
+ "dm-svn.gemspec",
19
+ "lib/dm-svn.rb",
20
+ "lib/dm-svn/config.rb",
21
+ "lib/dm-svn/model.rb",
22
+ "lib/dm-svn/svn.rb",
23
+ "lib/dm-svn/svn/categorized.rb",
24
+ "lib/dm-svn/svn/changeset.rb",
25
+ "lib/dm-svn/svn/node.rb",
26
+ "lib/dm-svn/svn/sync.rb",
27
+ "spec/dm-svn/config_spec.rb",
28
+ "spec/dm-svn/database.yml",
29
+ "spec/dm-svn/fixtures/articles_comments.rb",
30
+ "spec/dm-svn/mock_models.rb",
31
+ "spec/dm-svn/model_spec.rb",
32
+ "spec/dm-svn/spec_helper.rb",
33
+ "spec/dm-svn/svn/categorized_spec.rb",
34
+ "spec/dm-svn/svn/changeset_spec.rb",
35
+ "spec/dm-svn/svn/node_spec.rb",
36
+ "spec/dm-svn/svn/sync_spec.rb",
37
+ "spec/dm-svn/svn_spec.rb",
38
+ "spec/spec.opts",
39
+ "spec/spec_helper.rb"
40
+ ]
41
+ s.has_rdoc = true
42
+ s.homepage = %q{http://github.com/jm81/dm-svn}
43
+ s.rdoc_options = ["--charset=UTF-8"]
44
+ s.require_paths = ["lib"]
45
+ s.rubygems_version = %q{1.3.1}
46
+ s.summary = %q{Sync content from a Subversion repository to a DataMapper model}
47
+ s.test_files = [
48
+ "spec/dm-svn/config_spec.rb",
49
+ "spec/dm-svn/fixtures/articles_comments.rb",
50
+ "spec/dm-svn/mock_models.rb",
51
+ "spec/dm-svn/model_spec.rb",
52
+ "spec/dm-svn/spec_helper.rb",
53
+ "spec/dm-svn/svn/categorized_spec.rb",
54
+ "spec/dm-svn/svn/changeset_spec.rb",
55
+ "spec/dm-svn/svn/node_spec.rb",
56
+ "spec/dm-svn/svn/sync_spec.rb",
57
+ "spec/dm-svn/svn_spec.rb",
58
+ "spec/spec_helper.rb"
59
+ ]
60
+
61
+ if s.respond_to? :specification_version then
62
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
63
+ s.specification_version = 2
64
+
65
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
66
+ s.add_runtime_dependency(%q<dm-core>, [">= 0.10.0"])
67
+ s.add_runtime_dependency(%q<dm-aggregates>, [">= 0.10.0"])
68
+ s.add_runtime_dependency(%q<dm-validations>, [">= 0.10.0"])
69
+ s.add_runtime_dependency(%q<jm81-svn-fixture>, [">= 0.1.1"])
70
+ else
71
+ s.add_dependency(%q<dm-core>, [">= 0.10.0"])
72
+ s.add_dependency(%q<dm-aggregates>, [">= 0.10.0"])
73
+ s.add_dependency(%q<dm-validations>, [">= 0.10.0"])
74
+ s.add_dependency(%q<jm81-svn-fixture>, [">= 0.1.1"])
75
+ end
76
+ else
77
+ s.add_dependency(%q<dm-core>, [">= 0.10.0"])
78
+ s.add_dependency(%q<dm-aggregates>, [">= 0.10.0"])
79
+ s.add_dependency(%q<dm-validations>, [">= 0.10.0"])
80
+ s.add_dependency(%q<jm81-svn-fixture>, [">= 0.1.1"])
81
+ end
82
+ end
data/lib/dm-svn.rb CHANGED
@@ -5,8 +5,9 @@ require 'dm-validations'
5
5
  require 'svn/client'
6
6
 
7
7
  module DmSvn
8
+ VERSION = '0.2.0'
8
9
  end
9
10
 
10
- %w{config svn model}.each do |f|
11
- require File.expand_path(File.dirname(__FILE__) + "/dm-svn/#{f}.rb")
12
- end
11
+ require 'dm-svn/config'
12
+ require 'dm-svn/svn'
13
+ require 'dm-svn/model'
data/lib/dm-svn/model.rb CHANGED
@@ -2,7 +2,7 @@ module DmSvn
2
2
  class Model
3
3
  include DataMapper::Resource
4
4
 
5
- property :id, Integer, :serial => true
5
+ property :id, Serial
6
6
  property :name, String
7
7
  property :revision, Integer
8
8
 
data/lib/dm-svn/svn.rb CHANGED
@@ -140,5 +140,5 @@ module DmSvn
140
140
  end
141
141
 
142
142
  %w{sync changeset node categorized}.each do |f|
143
- require File.dirname(__FILE__) + "/svn/#{f}.rb"
144
- end
143
+ require "dm-svn/svn/#{f}"
144
+ end
@@ -34,13 +34,13 @@ module DmSvn
34
34
  c.process
35
35
  # Update model_row.revision
36
36
  row_update = @model_row.class.get(@model_row.id)
37
- row_update.update_attributes(:revision => c.revision)
37
+ row_update.update(:revision => c.revision)
38
38
  end
39
39
 
40
40
  # Ensure that @model_row.revision is now set to the latest (even if there
41
41
  # weren't applicable changes in the latest revision).
42
42
  row_update = @model_row.class.get(@model_row.id)
43
- row_update.update_attributes(:revision => @repos.latest_revnum)
43
+ row_update.update(:revision => @repos.latest_revnum)
44
44
  return true
45
45
  end
46
46
 
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  describe DmSvn::Config do
4
4
  before(:each) do
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+ require 'dm-svn'
3
+
4
+ class MockArticle
5
+ include DataMapper::Resource
6
+ include DmSvn::Svn
7
+
8
+ property :id, Serial
9
+ property :title, String
10
+ property :contents, Text, :body_property => true
11
+ end
12
+
13
+ class MockArticleNoSvn
14
+ include DataMapper::Resource
15
+
16
+ property :id, Serial
17
+ property :title, String
18
+ property :contents, Text
19
+ end
20
+
21
+ class MockSyncModel
22
+ include DataMapper::Resource
23
+ include DmSvn::Svn
24
+
25
+ property :id, Serial
26
+ property :title, String
27
+ property :body, Text, :body_property => true
28
+ property :published_at, DateTime
29
+ property :random_number, Integer # because some tests need a non-datetime prop
30
+ end
31
+
32
+ class MockCategory
33
+ include DataMapper::Resource
34
+ include DmSvn::Svn
35
+ has n, :mock_categorized_articles
36
+
37
+ property :id, Serial
38
+ property :title, String
39
+ property :random_number, Integer
40
+ end
41
+
42
+ class MockCategorizedArticle
43
+ include DataMapper::Resource
44
+ include DmSvn::Svn
45
+ belongs_to :mock_category, :svn => true
46
+
47
+ property :id, Serial
48
+ property :title, String
49
+ property :article, String
50
+ property :body, Text, :body_property => true
51
+ property :published_at, DateTime
52
+ property :random_number, Integer # because some tests need a non-datetime prop
53
+ end
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  describe DmSvn::Model do
4
4
 
@@ -1,6 +1,3 @@
1
- require File.expand_path(File.join( File.dirname(__FILE__), "..", "spec_helper" ))
2
- require File.expand_path(File.join( File.dirname(__FILE__), "..", "..", "lib", "dm-svn.rb" ))
3
-
4
1
  class MockArticle
5
2
  include DataMapper::Resource
6
3
  include DmSvn::Svn
@@ -1,4 +1,5 @@
1
- require File.join( File.dirname(__FILE__), "..", "spec_helper" )
1
+ require 'spec_helper'
2
+ require 'dm-svn/mock_models'
2
3
 
3
4
  describe DmSvn::Svn::Categorized do
4
5
  before(:all) do
@@ -1,4 +1,5 @@
1
- require File.join( File.dirname(__FILE__), "..", "spec_helper" )
1
+ require 'spec_helper'
2
+ require 'dm-svn/mock_models'
2
3
 
3
4
  describe DmSvn::Svn::Changeset do
4
5
  before(:all) do
@@ -1,4 +1,5 @@
1
- require File.join( File.dirname(__FILE__), "..", "spec_helper" )
1
+ require 'spec_helper'
2
+ require 'dm-svn/mock_models'
2
3
 
3
4
  describe DmSvn::Svn::Node do
4
5
  before(:all) do
@@ -1,4 +1,5 @@
1
- require File.join( File.dirname(__FILE__), "..", "spec_helper" )
1
+ require 'spec_helper'
2
+ require 'dm-svn/mock_models'
2
3
 
3
4
  describe DmSvn::Svn::Sync do
4
5
  after(:all) do
@@ -1,4 +1,5 @@
1
- require File.join( File.dirname(__FILE__), "spec_helper" )
1
+ require 'spec_helper'
2
+ require 'dm-svn/mock_models'
2
3
 
3
4
  describe DmSvn::Svn do
4
5
  before(:all) do
@@ -13,7 +14,7 @@ describe DmSvn::Svn do
13
14
  it "should add svn_* properties" do
14
15
  fields = %w{name created_at updated_at created_rev updated_rev created_by updated_by}
15
16
  fields.each do | field |
16
- lambda { MockArticleNoSvn.properties["svn_#{field}"] }.should raise_error(ArgumentError)
17
+ MockArticleNoSvn.properties["svn_#{field}"].should be_nil
17
18
  MockArticle.properties["svn_#{field}"].should be_kind_of(DataMapper::Property)
18
19
  end
19
20
  end
@@ -53,7 +54,7 @@ describe DmSvn::Svn do
53
54
  end
54
55
 
55
56
  it 'should update path, body and other properties' do
56
- @node.should_receive(:body).twice.and_return('body')
57
+ @node.should_receive(:body).twice.and_return('body')
57
58
  @node.should_receive(:short_path).and_return('short/path')
58
59
  @node.should_receive(:properties).and_return(
59
60
  {'title' => 'Title', 'svn_updated_by' => 'jmorgan'}
@@ -61,8 +62,8 @@ describe DmSvn::Svn do
61
62
 
62
63
  @article.should_receive(:attribute_set).with(:svn_name, 'short/path')
63
64
  @article.should_receive(:attribute_set).with('contents', 'body')
64
- @article.should_receive(:attribute_set).with(:title, 'Title')
65
- @article.should_receive(:attribute_set).with(:svn_updated_by, 'jmorgan')
65
+ @article.should_receive(:title=).with('Title')
66
+ @article.should_receive(:svn_updated_by=).with('jmorgan')
66
67
 
67
68
  @article.should_receive(:save)
68
69
  @article.update_from_svn(@node)
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,4 @@
1
1
  require 'spec'
2
-
3
- $LOAD_PATH.unshift(File.dirname(__FILE__))
4
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
5
2
  require 'dm-svn'
6
3
 
7
4
  gem 'jm81-svn-fixture'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jm81-dm-svn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jared Morgan
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-07-10 00:00:00 -07:00
12
+ date: 2009-09-19 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -20,7 +20,7 @@ dependencies:
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: "0"
23
+ version: 0.10.0
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: dm-aggregates
@@ -30,7 +30,7 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: "0"
33
+ version: 0.10.0
34
34
  version:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: dm-validations
@@ -40,7 +40,7 @@ dependencies:
40
40
  requirements:
41
41
  - - ">="
42
42
  - !ruby/object:Gem::Version
43
- version: "0"
43
+ version: 0.10.0
44
44
  version:
45
45
  - !ruby/object:Gem::Dependency
46
46
  name: jm81-svn-fixture
@@ -64,6 +64,7 @@ files:
64
64
  - .gitignore
65
65
  - Rakefile
66
66
  - VERSION
67
+ - dm-svn.gemspec
67
68
  - lib/dm-svn.rb
68
69
  - lib/dm-svn/config.rb
69
70
  - lib/dm-svn/model.rb
@@ -75,8 +76,7 @@ files:
75
76
  - spec/dm-svn/config_spec.rb
76
77
  - spec/dm-svn/database.yml
77
78
  - spec/dm-svn/fixtures/articles_comments.rb
78
- - spec/dm-svn/fixtures/fiction_site.rb
79
- - spec/dm-svn/fixtures/news_site.rb
79
+ - spec/dm-svn/mock_models.rb
80
80
  - spec/dm-svn/model_spec.rb
81
81
  - spec/dm-svn/spec_helper.rb
82
82
  - spec/dm-svn/svn/categorized_spec.rb
@@ -86,8 +86,9 @@ files:
86
86
  - spec/dm-svn/svn_spec.rb
87
87
  - spec/spec.opts
88
88
  - spec/spec_helper.rb
89
- has_rdoc: false
89
+ has_rdoc: true
90
90
  homepage: http://github.com/jm81/dm-svn
91
+ licenses:
91
92
  post_install_message:
92
93
  rdoc_options:
93
94
  - --charset=UTF-8
@@ -108,15 +109,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
109
  requirements: []
109
110
 
110
111
  rubyforge_project:
111
- rubygems_version: 1.2.0
112
+ rubygems_version: 1.3.5
112
113
  signing_key:
113
- specification_version: 3
114
+ specification_version: 2
114
115
  summary: Sync content from a Subversion repository to a DataMapper model
115
116
  test_files:
116
117
  - spec/dm-svn/config_spec.rb
117
118
  - spec/dm-svn/fixtures/articles_comments.rb
118
- - spec/dm-svn/fixtures/fiction_site.rb
119
- - spec/dm-svn/fixtures/news_site.rb
119
+ - spec/dm-svn/mock_models.rb
120
120
  - spec/dm-svn/model_spec.rb
121
121
  - spec/dm-svn/spec_helper.rb
122
122
  - spec/dm-svn/svn/categorized_spec.rb
@@ -1,84 +0,0 @@
1
- SvnFixture.repo('fiction_site') do
2
- revision(1, 'Create basic directory structure (including articles, app and public)',
3
- :date => Time.parse("2008-08-01")) do
4
- dir 'articles'
5
- dir 'app' do
6
- dir 'views' do
7
- dir 'ads'
8
- dir 'articles'
9
- dir 'layouts'
10
- end
11
- end
12
-
13
- dir 'public' do
14
- dir 'images'
15
- dir 'javascripts'
16
- dir 'stylesheets'
17
- end
18
- end
19
-
20
- revision(2, 'Create scifi, fantasy, and western categories',
21
- :date => Time.parse("2008-08-02")) do
22
- dir 'articles' do
23
- dir 'scifi' do
24
- prop 'ws:name', 'Science Fiction'
25
- end
26
-
27
- dir 'fantasy' do
28
- prop 'ws:name', 'Fantasy'
29
- end
30
-
31
- dir 'western' do
32
- prop 'ws:name', 'Western'
33
- end
34
- end
35
- end
36
-
37
- revision(3, 'Add two stories in scifi',
38
- :date => Time.parse("2008-08-03")) do
39
- dir 'articles' do
40
- dir 'scifi' do
41
- file 'aliens.txt' do
42
- prop 'ws:title', 'Alien Story'
43
- prop 'ws:published_at', '2008-08-04 12:00:00'
44
- body "My first story featuring aliens."
45
- end
46
-
47
- file 'spaceships.txt' do
48
- prop 'ws:title', 'Spaceship'
49
- prop 'ws:published_at', '2008-08-06 12:00:00'
50
- body "This one's just about spaceships."
51
- end
52
- end
53
- end
54
- end
55
-
56
- revision(4, 'Add scifi/alien subcategory and move aliens.txt there',
57
- :date => Time.parse("2008-08-04")) do
58
- dir 'articles' do
59
- dir 'scifi' do
60
- dir 'alien' do
61
- file 'meta.yml' do
62
- body "name: Alien Stories"
63
- end
64
- end
65
-
66
- move 'aliens.txt', 'alien/first.txt'
67
- end
68
- end
69
- end
70
-
71
- revision(5, 'Add unpublished fantasy story',
72
- :date => Time.parse("2008-08-06")) do
73
- dir 'articles' do
74
- dir 'fantasy' do
75
- file 'knights.txt' do
76
- prop 'ws:title', 'Knights'
77
- body "A story...with knights!"
78
- end
79
- end
80
- end
81
- end
82
- end
83
-
84
- SvnFixture.repo('fiction_site').commit
@@ -1,55 +0,0 @@
1
- SvnFixture::repo('news_site') do
2
- revision(1, 'Create basic directory structure (including articles, app and public)',
3
- :date => Time.parse("2008-08-01")) do
4
- dir 'articles'
5
- dir 'app' do
6
- dir 'views' do
7
- dir 'ads'
8
- dir 'articles'
9
- dir 'layouts'
10
- end
11
- end
12
-
13
- dir 'public' do
14
- dir 'images'
15
- dir 'javascripts'
16
- dir 'stylesheets'
17
- end
18
- end
19
-
20
- revision(2, 'Create categories',
21
- :date => Time.parse("2008-08-02")) do
22
- dir 'articles' do
23
- dir 'sports' do
24
- prop 'ws:name', 'Sports'
25
- end
26
-
27
- dir 'politics' do
28
- prop 'ws:name', 'Politics'
29
- end
30
- end
31
- end
32
-
33
- revision(3, 'Add two articles',
34
- :date => Time.parse("2008-08-03")) do
35
- dir 'articles' do
36
- dir 'sports' do
37
- file 'football.txt' do
38
- prop 'ws:title', 'Football'
39
- prop 'ws:published_at', '2008-08-04 12:00:00'
40
- body "A football story."
41
- end
42
- end
43
-
44
- dir 'politics' do
45
- file 'election.txt' do
46
- prop 'ws:title', 'Election Review'
47
- prop 'ws:published_at', '2008-08-04 12:00:00'
48
- body "The election seems to go on for a long time."
49
- end
50
- end
51
- end
52
- end
53
- end
54
-
55
- SvnFixture.repo('news_site').commit