datamapper4rails 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/generators/datamapper_model/templates/migration.rb +1 -1
- data/generators/datamapper_model/templates/model.rb +1 -1
- data/generators/datamapper_rspec_model/templates/model_spec.rb +0 -0
- data/generators/datamapper_rspec_scaffold/templates/controller_spec.rb +0 -0
- data/lib/datamapper4rails/datamapper_store.rb +15 -2
- data/lib/datamapper4rails/version.rb +1 -1
- data/spec/spec_helper.rb +3 -3
- metadata +92 -79
- data/Rakefile +0 -41
- data/datamapper_rails_templates.rb +0 -146
@@ -3,7 +3,7 @@ migration <%= Time.now.utc.strftime("%Y%m%d%H%M%S") %>, :<%= migration_name.unde
|
|
3
3
|
create_table :<%= table_name %> do
|
4
4
|
column :id, Integer, :serial => true
|
5
5
|
<% Array(attributes).each do |attribute| -%>
|
6
|
-
column :<%= attribute.name if attribute %>, <%= attribute.type.to_s.capitalize %>, :nullable => false<% if attribute.type == :string %>, :length => 255<% end %>
|
6
|
+
column :<%= attribute.name if attribute %>, <%= attribute.type == :boolean ? "::DataMapper::Types::Boolean" : attribute.type.to_s.capitalize %>, :nullable => false<% if attribute.type == :string %>, :length => 255<% end %>
|
7
7
|
<% end -%>
|
8
8
|
<% unless options[:skip_timestamps] -%>
|
9
9
|
column :created_at, DateTime, :nullable => false
|
@@ -4,7 +4,7 @@ class <%= class_name %>
|
|
4
4
|
property :id, Serial
|
5
5
|
|
6
6
|
<% Array(attributes).each do |attribute| -%>
|
7
|
-
property :<%= attribute.name %>, <%= attribute.type.to_s.capitalize %>, :
|
7
|
+
property :<%= attribute.name %>, <%= attribute.type.to_s.capitalize %>, :required => true<% if attribute.type == :string or attribute.type == :text or attribute.type == :slug -%>, :format => /^[^<'&">]*$/<% if attribute.type == :string or attribute.type == :slug %>, :length => 255<% end -%><% end %>
|
8
8
|
|
9
9
|
<% end -%>
|
10
10
|
<% unless options[:skip_timestamps] -%>
|
File without changes
|
File without changes
|
@@ -1,15 +1,28 @@
|
|
1
1
|
require 'dm-core'
|
2
2
|
require 'rack_datamapper/session/datamapper'
|
3
|
-
|
3
|
+
begin
|
4
|
+
require 'securerandom'
|
5
|
+
rescue LoadError
|
6
|
+
end
|
4
7
|
|
5
8
|
module ActionController
|
6
9
|
module Session
|
7
10
|
class DatamapperStore < AbstractStore
|
11
|
+
SecureRandom =
|
12
|
+
if defined?(::SecureRandom)
|
13
|
+
# Use Ruby's SecureRandom library if available.
|
14
|
+
::SecureRandom
|
15
|
+
else
|
16
|
+
# try if there is active support around ;-)
|
17
|
+
require 'active_support'
|
18
|
+
::ActiveSupport::SecureRandom
|
19
|
+
end
|
8
20
|
|
9
21
|
def initialize(app, options = {})
|
10
22
|
super
|
23
|
+
|
11
24
|
id_generator = Proc.new do
|
12
|
-
|
25
|
+
SecureRandom.hex(16)
|
13
26
|
end
|
14
27
|
@store = ::DataMapper::Session::Abstract::Store.new(app, options, id_generator)
|
15
28
|
@options = options
|
data/spec/spec_helper.rb
CHANGED
@@ -21,14 +21,14 @@ class Session
|
|
21
21
|
|
22
22
|
property :updated_at, DateTime
|
23
23
|
|
24
|
-
property :
|
24
|
+
property :raw_data, Text, :required => true, :default => ::Base64.encode64(Marshal.dump({}))
|
25
25
|
|
26
26
|
def data=(data)
|
27
|
-
attribute_set(:
|
27
|
+
attribute_set(:raw_data, ::Base64.encode64(Marshal.dump(data)))
|
28
28
|
end
|
29
29
|
|
30
30
|
def data
|
31
|
-
Marshal.load(::Base64.decode64(attribute_get(:
|
31
|
+
Marshal.load(::Base64.decode64(attribute_get(:raw_data)))
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
metadata
CHANGED
@@ -1,115 +1,128 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datamapper4rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 5
|
8
|
+
- 0
|
9
|
+
version: 0.5.0
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
|
-
- mkristian
|
12
|
+
- mkristian
|
8
13
|
autorequire:
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date:
|
17
|
+
date: 2010-06-20 00:00:00 +05:30
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rack-datamapper
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ~>
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
- 3
|
30
|
+
- 0
|
31
|
+
version: 0.3.0
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: rspec
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ~>
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 1
|
43
|
+
- 3
|
44
|
+
- 0
|
45
|
+
version: 1.3.0
|
46
|
+
type: :development
|
47
|
+
version_requirements: *id002
|
35
48
|
description: collection of datamapper related extensions. mostly needed to run within rails. the restful transactions is around filter for rails actions if needed to control such transaction on per action base otherwise use the rack extension from rack-datamapper. datamapper store is a session store for rails which uses datamapper as persistent layer and is just a wrapper around the datamapper session store from rack-datamapper. the generators produces datamapper models for your rails application.
|
36
49
|
email:
|
37
|
-
- m.kristian@web.de
|
50
|
+
- m.kristian@web.de
|
38
51
|
executables: []
|
39
52
|
|
40
53
|
extensions: []
|
41
54
|
|
42
55
|
extra_rdoc_files:
|
43
|
-
- History.txt
|
44
|
-
- Manifest.txt
|
45
|
-
- README.txt
|
56
|
+
- History.txt
|
57
|
+
- Manifest.txt
|
58
|
+
- README.txt
|
46
59
|
files:
|
47
|
-
-
|
48
|
-
-
|
49
|
-
-
|
50
|
-
-
|
51
|
-
-
|
52
|
-
-
|
53
|
-
-
|
54
|
-
-
|
55
|
-
-
|
56
|
-
-
|
57
|
-
-
|
58
|
-
-
|
59
|
-
-
|
60
|
-
-
|
61
|
-
-
|
62
|
-
-
|
63
|
-
- generators/datamapper_scaffold/
|
64
|
-
- generators/datamapper_scaffold/templates/functional_test.rb
|
65
|
-
- generators/datamapper_scaffold/templates/
|
66
|
-
- generators/datamapper_scaffold/templates/
|
67
|
-
- generators/datamapper_scaffold/templates/
|
68
|
-
- generators/datamapper_scaffold/templates/
|
69
|
-
-
|
70
|
-
-
|
71
|
-
-
|
72
|
-
-
|
73
|
-
-
|
74
|
-
-
|
75
|
-
-
|
76
|
-
-
|
77
|
-
-
|
78
|
-
-
|
79
|
-
-
|
80
|
-
-
|
81
|
-
-
|
82
|
-
- spec/datamapper_store_spec.rb
|
83
|
-
- spec/spec.opts
|
84
|
-
- spec/spec_helper.rb
|
60
|
+
- lib/datamapper4rails.rb
|
61
|
+
- lib/datamapper4rails/rspec_default_values.rb
|
62
|
+
- lib/datamapper4rails/rails_datamapper.rb
|
63
|
+
- lib/datamapper4rails/integration_test.rb
|
64
|
+
- lib/datamapper4rails/restful_transactions.rb
|
65
|
+
- lib/datamapper4rails/identity_maps.rb
|
66
|
+
- lib/datamapper4rails/datamapper_store.rb
|
67
|
+
- lib/datamapper4rails/preload_models.rb
|
68
|
+
- lib/datamapper4rails/overlay.rb
|
69
|
+
- lib/datamapper4rails/rspec.rb
|
70
|
+
- lib/datamapper4rails/version.rb
|
71
|
+
- lib/datamapper4rails/adapters/restful_adapter.rb
|
72
|
+
- lib/datamapper4rails/adapters/base_adapter.rb
|
73
|
+
- History.txt
|
74
|
+
- Manifest.txt
|
75
|
+
- README.txt
|
76
|
+
- generators/datamapper_scaffold/datamapper_scaffold_generator.rb
|
77
|
+
- generators/datamapper_scaffold/templates/functional_test.rb
|
78
|
+
- generators/datamapper_scaffold/templates/controller.rb
|
79
|
+
- generators/datamapper_scaffold/templates/view_new.html.erb
|
80
|
+
- generators/datamapper_scaffold/templates/view_show.html.erb
|
81
|
+
- generators/datamapper_scaffold/templates/view_index.html.erb
|
82
|
+
- generators/datamapper_scaffold/templates/view_edit.html.erb
|
83
|
+
- generators/datamapper_rspec_model/datamapper_rspec_model_generator.rb
|
84
|
+
- generators/datamapper_rspec_model/templates/model_spec.rb
|
85
|
+
- generators/datamapper_install/datamapper_install_generator.rb
|
86
|
+
- generators/datamapper_install/templates/datamapper.rake
|
87
|
+
- generators/datamapper_rspec_scaffold/datamapper_rspec_scaffold_generator.rb
|
88
|
+
- generators/datamapper_rspec_scaffold/templates/controller_spec.rb
|
89
|
+
- generators/datamapper_rspec_scaffold/templates/edit_erb_spec.rb
|
90
|
+
- generators/datamapper_model/datamapper_model_generator.rb
|
91
|
+
- generators/datamapper_model/templates/migration.rb
|
92
|
+
- generators/datamapper_model/templates/model.rb
|
93
|
+
- spec/spec_helper.rb
|
94
|
+
- spec/spec.opts
|
95
|
+
- spec/datamapper_store_spec.rb
|
85
96
|
has_rdoc: true
|
86
97
|
homepage: http://datamapper4rail.rubyforge.org
|
87
98
|
licenses: []
|
88
99
|
|
89
100
|
post_install_message:
|
90
101
|
rdoc_options:
|
91
|
-
- --main
|
92
|
-
- README.txt
|
102
|
+
- --main
|
103
|
+
- README.txt
|
93
104
|
require_paths:
|
94
|
-
- lib
|
105
|
+
- lib
|
95
106
|
required_ruby_version: !ruby/object:Gem::Requirement
|
96
107
|
requirements:
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
segments:
|
111
|
+
- 0
|
112
|
+
version: "0"
|
101
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
114
|
requirements:
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
segments:
|
118
|
+
- 0
|
119
|
+
version: "0"
|
107
120
|
requirements: []
|
108
121
|
|
109
122
|
rubyforge_project: datamapper4rail
|
110
|
-
rubygems_version: 1.3.
|
123
|
+
rubygems_version: 1.3.6
|
111
124
|
signing_key:
|
112
125
|
specification_version: 3
|
113
126
|
summary: collection of datamapper related extensions
|
114
|
-
test_files:
|
115
|
-
|
127
|
+
test_files:
|
128
|
+
- spec/datamapper_store_spec.rb
|
data/Rakefile
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
# -*- ruby -*-
|
2
|
-
|
3
|
-
require 'rubygems'
|
4
|
-
require 'hoe'
|
5
|
-
|
6
|
-
require 'spec'
|
7
|
-
require 'spec/rake/spectask'
|
8
|
-
require 'pathname'
|
9
|
-
|
10
|
-
require './lib/datamapper4rails/version.rb'
|
11
|
-
|
12
|
-
Hoe.spec('datamapper4rails') do |p|
|
13
|
-
p.rubyforge_name = 'datamapper4rail'
|
14
|
-
p.developer('mkristian', 'm.kristian@web.de')
|
15
|
-
p.extra_deps = [['rack-datamapper', '~>0.2']]
|
16
|
-
p.remote_rdoc_dir = '' # Release to root
|
17
|
-
p.rspec_options << '--options' << 'spec/spec.opts'
|
18
|
-
end
|
19
|
-
|
20
|
-
desc 'Install the package as a gem.'
|
21
|
-
task :install => [:clean, :package] do
|
22
|
-
gem = Dir['pkg/*.gem'].first
|
23
|
-
sh "gem install --local #{gem} --no-ri --no-rdoc"
|
24
|
-
end
|
25
|
-
|
26
|
-
desc 'generate rails using all generators and run the specs'
|
27
|
-
task :integration_tests => [:spec, :install] do
|
28
|
-
require 'datamapper4rails/integration_test'
|
29
|
-
Datamapper4Rails::IntegrationTest.new do |t|
|
30
|
-
t.generate "datamapper_model role name:string"
|
31
|
-
t.generate "datamapper_scaffold domain name:string"
|
32
|
-
t.generate "datamapper_rspec_model user name:string"
|
33
|
-
t.generate "datamapper_rspec_scaffold group name:string"
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
require 'yard'
|
38
|
-
|
39
|
-
YARD::Rake::YardocTask.new
|
40
|
-
|
41
|
-
# vim: syntax=Ruby
|
@@ -1,146 +0,0 @@
|
|
1
|
-
# inspired by http://www.rowtheboat.com/archives/32
|
2
|
-
###################################################
|
3
|
-
|
4
|
-
# this pulls in rails_datamapper and rack_datamapper
|
5
|
-
gem 'datamapper4rails'
|
6
|
-
|
7
|
-
# assume sqlite3 to be database
|
8
|
-
gem 'do_sqlite3'
|
9
|
-
|
10
|
-
# assume you want to have validations and timestamps in your models
|
11
|
-
gem 'dm-validations'
|
12
|
-
gem 'dm-timestamps'
|
13
|
-
gem 'dm-migrations'
|
14
|
-
gem 'dm-serializer' # to allow xml interface to work
|
15
|
-
gem 'dm-core'
|
16
|
-
|
17
|
-
# get all datamapper related gems
|
18
|
-
gem 'addressable', :lib => 'addressable/uri'
|
19
|
-
|
20
|
-
# assume you prefer rspec over unit tests
|
21
|
-
gem 'rspec', :lib => false
|
22
|
-
gem 'rspec-rails', :lib => false
|
23
|
-
|
24
|
-
# install all gems
|
25
|
-
rake 'gems:install'
|
26
|
-
|
27
|
-
# install specs rake tasks
|
28
|
-
generate('rspec', '-f')
|
29
|
-
|
30
|
-
# install datamapper rake tasks
|
31
|
-
generate('datamapper_install')
|
32
|
-
|
33
|
-
# fix config files to work with datamapper instead of active_record
|
34
|
-
environment ''
|
35
|
-
environment 'config.frameworks -= [ :active_record ]'
|
36
|
-
environment '# deactive active_record'
|
37
|
-
gsub_file 'spec/spec_helper.rb', /^\s*config[.]/, ' #\0'
|
38
|
-
gsub_file 'test/test_helper.rb', /^[^#]*fixtures/, ' #\0'
|
39
|
-
|
40
|
-
file 'spec/support/datamapper.rb', <<-CODE
|
41
|
-
require 'datamapper4rails/rspec'
|
42
|
-
CODE
|
43
|
-
|
44
|
-
# add middleware
|
45
|
-
def middleware(name)
|
46
|
-
log 'middleware', name
|
47
|
-
environment "config.middleware.use '#{name}'"
|
48
|
-
end
|
49
|
-
|
50
|
-
environment ''
|
51
|
-
middleware 'DataMapper::RestfulTransactions'
|
52
|
-
middleware 'DataMapper::IdentityMaps'
|
53
|
-
middleware 'Rack::Deflater'
|
54
|
-
environment '# add middleware'
|
55
|
-
|
56
|
-
# init a session store
|
57
|
-
initializer 'datamapper_store.rb', <<-CODE
|
58
|
-
# init a session store which uses a memory cache and a persistent store
|
59
|
-
# cleanup can be a problem. jruby uses soft-references for the cache so
|
60
|
-
# memory cleanup with jruby is not a problem.
|
61
|
-
require 'datamapper4rails/datamapper_store'
|
62
|
-
ActionController::Base.session_store = :datamapper_store
|
63
|
-
ActionController::Base.session = {
|
64
|
-
:cache => true,
|
65
|
-
}
|
66
|
-
CODE
|
67
|
-
|
68
|
-
# gzip fix for jruby
|
69
|
-
initializer 'monkey_patches.rb', <<-CODE
|
70
|
-
if RUBY_PLATFORM =~ /java/
|
71
|
-
require 'zlib'
|
72
|
-
class Zlib::GzipWriter
|
73
|
-
def <<(arg)
|
74
|
-
write(arg)
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
CODE
|
79
|
-
|
80
|
-
file 'pom.xml', <<-CODE
|
81
|
-
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
82
|
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
83
|
-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
|
84
|
-
http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
85
|
-
<modelVersion>4.0.0</modelVersion>
|
86
|
-
<groupId>com.example</groupId>
|
87
|
-
<artifactId>demo</artifactId>
|
88
|
-
<packaging>war</packaging>
|
89
|
-
<version>1.0-SNAPSHOT</version>
|
90
|
-
<name>rails datamapper demo</name>
|
91
|
-
<url>http://github.com/mkristian/rails-templates/blob/master/datamapper.rb</url>
|
92
|
-
<pluginRepositories>
|
93
|
-
<pluginRepository>
|
94
|
-
<id>saumya</id>
|
95
|
-
<name>Saumyas Plugins</name>
|
96
|
-
<url>http://mojo.saumya.de</url>
|
97
|
-
</pluginRepository>
|
98
|
-
</pluginRepositories>
|
99
|
-
<build>
|
100
|
-
<plugins>
|
101
|
-
<plugin>
|
102
|
-
<groupId>de.saumya.mojo</groupId>
|
103
|
-
<artifactId>rails-maven-plugin</artifactId>
|
104
|
-
<version>0.3.1</version>
|
105
|
-
</plugin>
|
106
|
-
<plugin>
|
107
|
-
<groupId>de.saumya.mojo</groupId>
|
108
|
-
<artifactId>jruby-maven-plugin</artifactId>
|
109
|
-
<version>0.3.1</version>
|
110
|
-
</plugin>
|
111
|
-
<plugin>
|
112
|
-
<groupId>de.saumya.mojo</groupId>
|
113
|
-
<artifactId>gem-maven-plugin</artifactId>
|
114
|
-
<version>0.3.1</version>
|
115
|
-
</plugin>
|
116
|
-
</plugins>
|
117
|
-
</build>
|
118
|
-
<properties>
|
119
|
-
<jruby.fork>false</jruby.fork>
|
120
|
-
</properties>
|
121
|
-
</project>
|
122
|
-
CODE
|
123
|
-
|
124
|
-
rake 'db:sessions:create'
|
125
|
-
|
126
|
-
logger.info
|
127
|
-
logger.info
|
128
|
-
logger.info "info mavenized rails application"
|
129
|
-
logger.info "\thttp://github.org/mkristian/rails-maven-plugin"
|
130
|
-
logger.info
|
131
|
-
logger.info "if you want to run jruby please uninstall"
|
132
|
-
logger.info "the native extension of do_sqlite3 and install the java version"
|
133
|
-
logger.info "\truby -S gem uninstall do_sqlite3"
|
134
|
-
logger.info "\tjruby -S rake gems:install"
|
135
|
-
logger.info
|
136
|
-
logger.info "rake gems:unpack does NOT work with jruby due to a bug in rails <=2.3.5"
|
137
|
-
logger.info "you can try"
|
138
|
-
logger.info "\tmvn rails:rails-freeze-gems"
|
139
|
-
logger.info "which patches rails after freezing it"
|
140
|
-
logger.info
|
141
|
-
logger.info
|
142
|
-
logger.info
|
143
|
-
logger.info
|
144
|
-
logger.info "for dm-core version 0.10.2 there are a lot of deprecated warning but everything works as expected"
|
145
|
-
logger.info
|
146
|
-
logger.info
|