dm-is-remixable 0.10.1 → 0.10.2
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/LICENSE +1 -1
- data/Rakefile +23 -18
- data/VERSION +1 -0
- data/dm-is-remixable.gemspec +75 -0
- data/lib/dm-is-remixable/is/remixable.rb +18 -10
- data/spec/data/bot.rb +3 -10
- data/spec/data/rating.rb +2 -2
- data/spec/data/tag.rb +1 -1
- data/spec/data/user.rb +2 -2
- data/spec/rcov.opts +6 -0
- data/spec/spec.opts +2 -0
- data/tasks/ci.rake +1 -0
- data/tasks/metrics.rake +36 -0
- data/tasks/spec.rake +41 -0
- data/tasks/yard.rake +9 -0
- data/tasks/yardstick.rake +19 -0
- metadata +35 -17
- data/History.rdoc +0 -34
- data/Manifest.txt +0 -26
- data/TODO +0 -18
- data/lib/dm-is-remixable/is/version.rb +0 -7
- data/tasks/install.rb +0 -13
- data/tasks/spec.rb +0 -25
data/LICENSE
CHANGED
data/Rakefile
CHANGED
@@ -1,24 +1,29 @@
|
|
1
|
-
require '
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
SUDO = (WINDOWS || JRUBY) ? '' : ('sudo' unless ENV['SUDOLESS'])
|
4
|
+
begin
|
5
|
+
gem 'jeweler', '~> 1.4'
|
6
|
+
require 'jeweler'
|
7
7
|
|
8
|
-
|
8
|
+
Jeweler::Tasks.new do |gem|
|
9
|
+
gem.name = 'dm-is-remixable'
|
10
|
+
gem.summary = 'dm-is-remixable allow you to create reusable data functionality'
|
11
|
+
gem.description = gem.summary
|
12
|
+
gem.email = 'dm-is-remixable [a] coryodaniel [d] com'
|
13
|
+
gem.homepage = 'http://github.com/datamapper/dm-more/tree/master/%s' % gem.name
|
14
|
+
gem.authors = [ "Cory O'Daniel" ]
|
9
15
|
|
10
|
-
|
11
|
-
EMAIL = 'dm-is-remixable [a] coryodaniel [d] com'
|
12
|
-
GEM_NAME = 'dm-is-remixable'
|
13
|
-
GEM_VERSION = DataMapper::Is::Remixable::VERSION
|
14
|
-
GEM_DEPENDENCIES = [['dm-core', GEM_VERSION]]
|
15
|
-
GEM_CLEAN = %w[ log pkg coverage ]
|
16
|
-
GEM_EXTRAS = { :has_rdoc => true, :extra_rdoc_files => %w[ README.rdoc LICENSE TODO History.rdoc ] }
|
16
|
+
gem.rubyforge_project = 'datamapper'
|
17
17
|
|
18
|
-
|
19
|
-
PROJECT_URL = "http://github.com/datamapper/dm-more/tree/master/#{GEM_NAME}"
|
20
|
-
PROJECT_DESCRIPTION = PROJECT_SUMMARY = 'dm-is-remixable allow you to create reusable data functionality'
|
18
|
+
gem.add_dependency 'dm-core', '~> 0.10.2'
|
21
19
|
|
22
|
-
|
23
|
-
|
20
|
+
gem.add_development_dependency 'rspec', '~> 1.2.9'
|
21
|
+
gem.add_development_dependency 'yard', '~> 0.4.0'
|
22
|
+
end
|
23
|
+
|
24
|
+
Jeweler::GemcutterTasks.new
|
25
|
+
|
26
|
+
FileList['tasks/**/*.rake'].each { |task| import task }
|
27
|
+
rescue LoadError
|
28
|
+
puts 'Jeweler (or a dependency) not available. Install it with: gem install jeweler'
|
24
29
|
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.10.2
|
@@ -0,0 +1,75 @@
|
|
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{dm-is-remixable}
|
8
|
+
s.version = "0.10.2"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Cory O'Daniel"]
|
12
|
+
s.date = %q{2009-12-11}
|
13
|
+
s.description = %q{dm-is-remixable allow you to create reusable data functionality}
|
14
|
+
s.email = %q{dm-is-remixable [a] coryodaniel [d] com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
"LICENSE",
|
21
|
+
"README.rdoc",
|
22
|
+
"Rakefile",
|
23
|
+
"VERSION",
|
24
|
+
"dm-is-remixable.gemspec",
|
25
|
+
"lib/dm-is-remixable.rb",
|
26
|
+
"lib/dm-is-remixable/is/remixable.rb",
|
27
|
+
"spec/data/addressable.rb",
|
28
|
+
"spec/data/article.rb",
|
29
|
+
"spec/data/billable.rb",
|
30
|
+
"spec/data/bot.rb",
|
31
|
+
"spec/data/commentable.rb",
|
32
|
+
"spec/data/image.rb",
|
33
|
+
"spec/data/rating.rb",
|
34
|
+
"spec/data/tag.rb",
|
35
|
+
"spec/data/taggable.rb",
|
36
|
+
"spec/data/topic.rb",
|
37
|
+
"spec/data/user.rb",
|
38
|
+
"spec/data/viewable.rb",
|
39
|
+
"spec/integration/remixable_spec.rb",
|
40
|
+
"spec/rcov.opts",
|
41
|
+
"spec/spec.opts",
|
42
|
+
"spec/spec_helper.rb",
|
43
|
+
"tasks/ci.rake",
|
44
|
+
"tasks/metrics.rake",
|
45
|
+
"tasks/spec.rake",
|
46
|
+
"tasks/yard.rake",
|
47
|
+
"tasks/yardstick.rake"
|
48
|
+
]
|
49
|
+
s.homepage = %q{http://github.com/datamapper/dm-more/tree/master/dm-is-remixable}
|
50
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
51
|
+
s.require_paths = ["lib"]
|
52
|
+
s.rubyforge_project = %q{datamapper}
|
53
|
+
s.rubygems_version = %q{1.3.5}
|
54
|
+
s.summary = %q{dm-is-remixable allow you to create reusable data functionality}
|
55
|
+
|
56
|
+
if s.respond_to? :specification_version then
|
57
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
58
|
+
s.specification_version = 3
|
59
|
+
|
60
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
61
|
+
s.add_runtime_dependency(%q<dm-core>, ["~> 0.10.2"])
|
62
|
+
s.add_development_dependency(%q<rspec>, ["~> 1.2.9"])
|
63
|
+
s.add_development_dependency(%q<yard>, ["~> 0.4.0"])
|
64
|
+
else
|
65
|
+
s.add_dependency(%q<dm-core>, ["~> 0.10.2"])
|
66
|
+
s.add_dependency(%q<rspec>, ["~> 1.2.9"])
|
67
|
+
s.add_dependency(%q<yard>, ["~> 0.4.0"])
|
68
|
+
end
|
69
|
+
else
|
70
|
+
s.add_dependency(%q<dm-core>, ["~> 0.10.2"])
|
71
|
+
s.add_dependency(%q<rspec>, ["~> 1.2.9"])
|
72
|
+
s.add_dependency(%q<yard>, ["~> 0.4.0"])
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
@@ -68,6 +68,8 @@ module DataMapper
|
|
68
68
|
# ==== Description
|
69
69
|
# Methods available to all DataMapper::Resources
|
70
70
|
module RemixerClassMethods
|
71
|
+
include Extlib::Assertions
|
72
|
+
|
71
73
|
def self.included(base);end;
|
72
74
|
|
73
75
|
def is_remixable?
|
@@ -135,13 +137,19 @@ module DataMapper
|
|
135
137
|
# => This would create user_id and commentor_id as the
|
136
138
|
#
|
137
139
|
def remix(cardinality, remixable, options={})
|
140
|
+
assert_kind_of 'remixable', Symbol, String, Module
|
141
|
+
|
138
142
|
#A map for remixable names to Remixed Models
|
139
143
|
@remixables = {} if @remixables.nil?
|
140
144
|
|
141
145
|
# Allow nested modules to be remixable to better support using dm-is-remixable in gems
|
142
146
|
# Example (from my upcoming dm-is-rateable gem)
|
143
147
|
# remix n, "DataMapper::Is::Rateable::Rating", :as => :ratings
|
144
|
-
remixable_module =
|
148
|
+
remixable_module = case remixable
|
149
|
+
when Symbol then Object.full_const_get(Extlib::Inflection.classify(remixable))
|
150
|
+
when String then Object.full_const_get(remixable)
|
151
|
+
when Module then remixable
|
152
|
+
end
|
145
153
|
|
146
154
|
unless remixable_module.is_remixable?
|
147
155
|
raise Exception, "#{remixable_module} is not remixable"
|
@@ -154,14 +162,14 @@ module DataMapper
|
|
154
162
|
|
155
163
|
#Merge defaults/options
|
156
164
|
options = {
|
157
|
-
:as
|
158
|
-
:model
|
159
|
-
:for
|
160
|
-
:on
|
161
|
-
:unique
|
162
|
-
:via
|
163
|
-
:connect
|
164
|
-
}.
|
165
|
+
:as => nil,
|
166
|
+
:model => Extlib::Inflection.classify(self.name.snake_case + '_' + remixable_module.suffix.pluralize),
|
167
|
+
:for => nil,
|
168
|
+
:on => nil,
|
169
|
+
:unique => false,
|
170
|
+
:via => nil,
|
171
|
+
:connect => false
|
172
|
+
}.update(options)
|
165
173
|
|
166
174
|
#Make sure the class hasn't been remixed already
|
167
175
|
unless Object.full_const_defined?(Extlib::Inflection.classify(options[:model]))
|
@@ -290,7 +298,7 @@ module DataMapper
|
|
290
298
|
# options <Hash> options hash
|
291
299
|
def remix_one_to_many(cardinality, model, options)
|
292
300
|
self.has cardinality, (options[:as] || options[:table_name]).to_sym, :model => model.name
|
293
|
-
model.property Extlib::Inflection.foreign_key(self.name).intern, Integer, :
|
301
|
+
model.property Extlib::Inflection.foreign_key(self.name).intern, Integer, :min => 0, :required => true
|
294
302
|
model.belongs_to belongs_to_name(self.name)
|
295
303
|
end
|
296
304
|
|
data/spec/data/bot.rb
CHANGED
@@ -6,14 +6,7 @@ require 'data/rating'
|
|
6
6
|
class Bot
|
7
7
|
include DataMapper::Resource
|
8
8
|
|
9
|
-
property :id,
|
10
|
-
|
11
|
-
property :
|
12
|
-
:nullable => false,
|
13
|
-
:length => 2..50
|
14
|
-
|
15
|
-
property :bot_version, String,
|
16
|
-
:nullable => false,
|
17
|
-
:length => 2..50
|
18
|
-
|
9
|
+
property :id, Serial
|
10
|
+
property :bot_name, String, :required => true, :length => 2..50
|
11
|
+
property :bot_version, String, :required => true, :length => 2..50
|
19
12
|
end
|
data/spec/data/rating.rb
CHANGED
@@ -14,8 +14,8 @@ module My
|
|
14
14
|
# properties
|
15
15
|
|
16
16
|
property :id, Serial
|
17
|
-
property :user_id, Integer, :
|
18
|
-
property :rating, Integer, :
|
17
|
+
property :user_id, Integer, :required => true
|
18
|
+
property :rating, Integer, :required => true, :default => 0
|
19
19
|
|
20
20
|
module ClassMethods
|
21
21
|
|
data/spec/data/tag.rb
CHANGED
data/spec/data/user.rb
CHANGED
@@ -8,8 +8,8 @@ class User
|
|
8
8
|
include DataMapper::Resource
|
9
9
|
|
10
10
|
property :id, Serial
|
11
|
-
property :first_name, String, :
|
12
|
-
property :last_name, String, :
|
11
|
+
property :first_name, String, :required => true, :length=> 2..50
|
12
|
+
property :last_name, String, :required => true, :length => 2..50
|
13
13
|
|
14
14
|
remix n, :viewables
|
15
15
|
remix n, :billables, :model => "Account"
|
data/spec/rcov.opts
ADDED
data/spec/spec.opts
CHANGED
data/tasks/ci.rake
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
task :ci => [ :verify_measurements, 'metrics:all' ]
|
data/tasks/metrics.rake
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
begin
|
2
|
+
require 'metric_fu'
|
3
|
+
rescue LoadError
|
4
|
+
namespace :metrics do
|
5
|
+
task :all do
|
6
|
+
abort 'metric_fu is not available. In order to run metrics:all, you must: gem install metric_fu'
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
begin
|
12
|
+
require 'reek/adapters/rake_task'
|
13
|
+
|
14
|
+
Reek::RakeTask.new do |t|
|
15
|
+
t.fail_on_error = true
|
16
|
+
t.verbose = false
|
17
|
+
t.source_files = 'lib/**/*.rb'
|
18
|
+
end
|
19
|
+
rescue LoadError
|
20
|
+
task :reek do
|
21
|
+
abort 'Reek is not available. In order to run reek, you must: gem install reek'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
begin
|
26
|
+
require 'roodi'
|
27
|
+
require 'roodi_task'
|
28
|
+
|
29
|
+
RoodiTask.new do |t|
|
30
|
+
t.verbose = false
|
31
|
+
end
|
32
|
+
rescue LoadError
|
33
|
+
task :roodi do
|
34
|
+
abort 'Roodi is not available. In order to run roodi, you must: gem install roodi'
|
35
|
+
end
|
36
|
+
end
|
data/tasks/spec.rake
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
spec_defaults = lambda do |spec|
|
2
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
3
|
+
spec.libs << 'lib' << 'spec'
|
4
|
+
spec.spec_opts << '--options' << 'spec/spec.opts'
|
5
|
+
end
|
6
|
+
|
7
|
+
begin
|
8
|
+
require 'spec/rake/spectask'
|
9
|
+
|
10
|
+
Spec::Rake::SpecTask.new(:spec, &spec_defaults)
|
11
|
+
rescue LoadError
|
12
|
+
task :spec do
|
13
|
+
abort 'rspec is not available. In order to run spec, you must: gem install rspec'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
begin
|
18
|
+
require 'rcov'
|
19
|
+
require 'spec/rake/verify_rcov'
|
20
|
+
|
21
|
+
Spec::Rake::SpecTask.new(:rcov) do |rcov|
|
22
|
+
spec_defaults.call(rcov)
|
23
|
+
rcov.rcov = true
|
24
|
+
rcov.rcov_opts = File.read('spec/rcov.opts').split(/\s+/)
|
25
|
+
end
|
26
|
+
|
27
|
+
RCov::VerifyTask.new(:verify_rcov => :rcov) do |rcov|
|
28
|
+
rcov.threshold = 100
|
29
|
+
end
|
30
|
+
rescue LoadError
|
31
|
+
%w[ rcov verify_rcov ].each do |name|
|
32
|
+
task name do
|
33
|
+
abort "rcov is not available. In order to run #{name}, you must: gem install rcov"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
task :spec => :check_dependencies
|
39
|
+
task :rcov => :check_dependencies
|
40
|
+
|
41
|
+
task :default => :spec
|
data/tasks/yard.rake
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
begin
|
2
|
+
require 'pathname'
|
3
|
+
require 'yardstick/rake/measurement'
|
4
|
+
require 'yardstick/rake/verify'
|
5
|
+
|
6
|
+
# yardstick_measure task
|
7
|
+
Yardstick::Rake::Measurement.new
|
8
|
+
|
9
|
+
# verify_measurements task
|
10
|
+
Yardstick::Rake::Verify.new do |verify|
|
11
|
+
verify.threshold = 100
|
12
|
+
end
|
13
|
+
rescue LoadError
|
14
|
+
%w[ yardstick_measure verify_measurements ].each do |name|
|
15
|
+
task name.to_s do
|
16
|
+
abort "Yardstick is not available. In order to run #{name}, you must: gem install yardstick"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dm-is-remixable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cory O'Daniel
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-12-11 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -18,32 +18,47 @@ dependencies:
|
|
18
18
|
version_requirement:
|
19
19
|
version_requirements: !ruby/object:Gem::Requirement
|
20
20
|
requirements:
|
21
|
-
- -
|
21
|
+
- - ~>
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 0.10.
|
23
|
+
version: 0.10.2
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.2.9
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: yard
|
37
|
+
type: :development
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 0.4.0
|
24
44
|
version:
|
25
45
|
description: dm-is-remixable allow you to create reusable data functionality
|
26
|
-
email:
|
27
|
-
- dm-is-remixable [a] coryodaniel [d] com
|
46
|
+
email: dm-is-remixable [a] coryodaniel [d] com
|
28
47
|
executables: []
|
29
48
|
|
30
49
|
extensions: []
|
31
50
|
|
32
51
|
extra_rdoc_files:
|
33
|
-
- README.rdoc
|
34
52
|
- LICENSE
|
35
|
-
-
|
36
|
-
- History.rdoc
|
53
|
+
- README.rdoc
|
37
54
|
files:
|
38
|
-
- History.rdoc
|
39
55
|
- LICENSE
|
40
|
-
- Manifest.txt
|
41
56
|
- README.rdoc
|
42
57
|
- Rakefile
|
43
|
-
-
|
58
|
+
- VERSION
|
59
|
+
- dm-is-remixable.gemspec
|
44
60
|
- lib/dm-is-remixable.rb
|
45
61
|
- lib/dm-is-remixable/is/remixable.rb
|
46
|
-
- lib/dm-is-remixable/is/version.rb
|
47
62
|
- spec/data/addressable.rb
|
48
63
|
- spec/data/article.rb
|
49
64
|
- spec/data/billable.rb
|
@@ -57,18 +72,21 @@ files:
|
|
57
72
|
- spec/data/user.rb
|
58
73
|
- spec/data/viewable.rb
|
59
74
|
- spec/integration/remixable_spec.rb
|
75
|
+
- spec/rcov.opts
|
60
76
|
- spec/spec.opts
|
61
77
|
- spec/spec_helper.rb
|
62
|
-
- tasks/
|
63
|
-
- tasks/
|
78
|
+
- tasks/ci.rake
|
79
|
+
- tasks/metrics.rake
|
80
|
+
- tasks/spec.rake
|
81
|
+
- tasks/yard.rake
|
82
|
+
- tasks/yardstick.rake
|
64
83
|
has_rdoc: true
|
65
84
|
homepage: http://github.com/datamapper/dm-more/tree/master/dm-is-remixable
|
66
85
|
licenses: []
|
67
86
|
|
68
87
|
post_install_message:
|
69
88
|
rdoc_options:
|
70
|
-
- --
|
71
|
-
- README.rdoc
|
89
|
+
- --charset=UTF-8
|
72
90
|
require_paths:
|
73
91
|
- lib
|
74
92
|
required_ruby_version: !ruby/object:Gem::Requirement
|
data/History.rdoc
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
=== 0.10.1 / 2009-09-30
|
2
|
-
|
3
|
-
* No changes this version
|
4
|
-
|
5
|
-
=== 0.10.0 / 2009-09-15
|
6
|
-
|
7
|
-
* Updated to work with dm-core 0.10.0
|
8
|
-
|
9
|
-
=== 0.9.11 / 2009-03-29
|
10
|
-
|
11
|
-
* No changes this version
|
12
|
-
|
13
|
-
=== 0.9.10 / 2009-01-19
|
14
|
-
|
15
|
-
* No changes this version
|
16
|
-
|
17
|
-
=== 0.9.9 / 2009-01-04
|
18
|
-
|
19
|
-
* 1 bug fix:
|
20
|
-
|
21
|
-
* belongs_to association names are no longer made plural.
|
22
|
-
|
23
|
-
=== 0.9.8 / 2008-12-07
|
24
|
-
|
25
|
-
* 2 minor enhancements:
|
26
|
-
|
27
|
-
* When using :as remixables ONLY create the given accessor instead of creating the default and aliasing it.
|
28
|
-
* Remixable Modules can now namespace methods to remixing classes and generated class.
|
29
|
-
|
30
|
-
=== 0.9.3 / 2008-07-31
|
31
|
-
|
32
|
-
* 1 major enhancement:
|
33
|
-
|
34
|
-
* Pre-Release, super beta.
|
data/Manifest.txt
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
History.rdoc
|
2
|
-
LICENSE
|
3
|
-
Manifest.txt
|
4
|
-
README.rdoc
|
5
|
-
Rakefile
|
6
|
-
TODO
|
7
|
-
lib/dm-is-remixable.rb
|
8
|
-
lib/dm-is-remixable/is/remixable.rb
|
9
|
-
lib/dm-is-remixable/is/version.rb
|
10
|
-
spec/data/addressable.rb
|
11
|
-
spec/data/article.rb
|
12
|
-
spec/data/billable.rb
|
13
|
-
spec/data/bot.rb
|
14
|
-
spec/data/commentable.rb
|
15
|
-
spec/data/image.rb
|
16
|
-
spec/data/rating.rb
|
17
|
-
spec/data/tag.rb
|
18
|
-
spec/data/taggable.rb
|
19
|
-
spec/data/topic.rb
|
20
|
-
spec/data/user.rb
|
21
|
-
spec/data/viewable.rb
|
22
|
-
spec/integration/remixable_spec.rb
|
23
|
-
spec/spec.opts
|
24
|
-
spec/spec_helper.rb
|
25
|
-
tasks/install.rb
|
26
|
-
tasks/spec.rb
|
data/TODO
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
FIXME
|
2
|
-
====
|
3
|
-
Add ability to have a unique relationship when joining through remixable
|
4
|
-
This is stubbed at remixable.rb @~ line 223; waiting on stategic eager loading
|
5
|
-
M:M Video.remix n, :commentables, :as => "comments", :for => "User", :unique => false
|
6
|
-
M:M Article.remix n, :views, :for => "User", :unique => true
|
7
|
-
in the generated table article_views article_id and user_id would be a unique key,
|
8
|
-
only counting a users viewing of an article once
|
9
|
-
|
10
|
-
TODO
|
11
|
-
====
|
12
|
-
- Add ability to set primary keys and indexes when remixing
|
13
|
-
|
14
|
-
- Test nested remixing User remixes Photogenic; Photogenic Remixes comments
|
15
|
-
- Test double+ remixing. User remixes Commentable; enhance Commentable remix Commentable
|
16
|
-
|
17
|
-
- Remixable.related(*remixed_models)
|
18
|
-
Taggable.related(Article, JobPostings)
|
data/tasks/install.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
def sudo_gem(cmd)
|
2
|
-
sh "#{SUDO} #{RUBY} -S gem #{cmd}", :verbose => false
|
3
|
-
end
|
4
|
-
|
5
|
-
desc "Install #{GEM_NAME} #{GEM_VERSION}"
|
6
|
-
task :install => [ :package ] do
|
7
|
-
sudo_gem "install pkg/#{GEM_NAME}-#{GEM_VERSION} --no-update-sources"
|
8
|
-
end
|
9
|
-
|
10
|
-
desc "Uninstall #{GEM_NAME} #{GEM_VERSION}"
|
11
|
-
task :uninstall => [ :clobber ] do
|
12
|
-
sudo_gem "uninstall #{GEM_NAME} -v#{GEM_VERSION} -Ix"
|
13
|
-
end
|
data/tasks/spec.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
begin
|
2
|
-
require 'spec/rake/spectask'
|
3
|
-
|
4
|
-
task :default => [ :spec ]
|
5
|
-
|
6
|
-
desc 'Run specifications'
|
7
|
-
Spec::Rake::SpecTask.new(:spec) do |t|
|
8
|
-
t.spec_opts << '--options' << 'spec/spec.opts' if File.exists?('spec/spec.opts')
|
9
|
-
t.libs << 'lib' << 'spec' # needed for CI rake spec task, duplicated in spec_helper
|
10
|
-
|
11
|
-
begin
|
12
|
-
require 'rcov'
|
13
|
-
t.rcov = JRUBY ? false : (ENV.has_key?('NO_RCOV') ? ENV['NO_RCOV'] != 'true' : true)
|
14
|
-
t.rcov_opts << '--exclude' << 'spec'
|
15
|
-
t.rcov_opts << '--text-summary'
|
16
|
-
t.rcov_opts << '--sort' << 'coverage' << '--sort-reverse'
|
17
|
-
rescue LoadError
|
18
|
-
# rcov not installed
|
19
|
-
rescue SyntaxError
|
20
|
-
# rcov syntax invalid
|
21
|
-
end
|
22
|
-
end
|
23
|
-
rescue LoadError
|
24
|
-
# rspec not installed
|
25
|
-
end
|