datamapper4rails 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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 %>, :nullable => false <% 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 %>
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] -%>
@@ -1,15 +1,28 @@
1
1
  require 'dm-core'
2
2
  require 'rack_datamapper/session/datamapper'
3
- require 'active_support'
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
- ::ActiveSupport::SecureRandom.hex(16)
25
+ SecureRandom.hex(16)
13
26
  end
14
27
  @store = ::DataMapper::Session::Abstract::Store.new(app, options, id_generator)
15
28
  @options = options
@@ -1,3 +1,3 @@
1
1
  class Datamapper4rails
2
- VERSION = '0.4.0'.freeze
2
+ VERSION = '0.5.0'.freeze
3
3
  end
data/spec/spec_helper.rb CHANGED
@@ -21,14 +21,14 @@ class Session
21
21
 
22
22
  property :updated_at, DateTime
23
23
 
24
- property :data, Text, :nullable => false, :default => ::Base64.encode64(Marshal.dump({}))
24
+ property :raw_data, Text, :required => true, :default => ::Base64.encode64(Marshal.dump({}))
25
25
 
26
26
  def data=(data)
27
- attribute_set(:data, ::Base64.encode64(Marshal.dump(data)))
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(:data)))
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
- version: 0.4.0
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: 2009-12-07 00:00:00 +05:30
17
+ date: 2010-06-20 00:00:00 +05:30
13
18
  default_executable:
14
19
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: rack-datamapper
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ~>
22
- - !ruby/object:Gem::Version
23
- version: "0.2"
24
- version:
25
- - !ruby/object:Gem::Dependency
26
- name: hoe
27
- type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 2.3.3
34
- version:
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
- - History.txt
48
- - Manifest.txt
49
- - README.txt
50
- - Rakefile
51
- - datamapper_rails_templates.rb
52
- - generators/datamapper_install/datamapper_install_generator.rb
53
- - generators/datamapper_install/templates/datamapper.rake
54
- - generators/datamapper_model/datamapper_model_generator.rb
55
- - generators/datamapper_model/templates/migration.rb
56
- - generators/datamapper_model/templates/model.rb
57
- - generators/datamapper_rspec_model/datamapper_rspec_model_generator.rb
58
- - generators/datamapper_rspec_model/templates/model_spec.rb
59
- - generators/datamapper_rspec_scaffold/datamapper_rspec_scaffold_generator.rb
60
- - generators/datamapper_rspec_scaffold/templates/controller_spec.rb
61
- - generators/datamapper_rspec_scaffold/templates/edit_erb_spec.rb
62
- - generators/datamapper_scaffold/datamapper_scaffold_generator.rb
63
- - generators/datamapper_scaffold/templates/controller.rb
64
- - generators/datamapper_scaffold/templates/functional_test.rb
65
- - generators/datamapper_scaffold/templates/view_edit.html.erb
66
- - generators/datamapper_scaffold/templates/view_index.html.erb
67
- - generators/datamapper_scaffold/templates/view_new.html.erb
68
- - generators/datamapper_scaffold/templates/view_show.html.erb
69
- - lib/datamapper4rails.rb
70
- - lib/datamapper4rails/adapters/base_adapter.rb
71
- - lib/datamapper4rails/adapters/restful_adapter.rb
72
- - lib/datamapper4rails/datamapper_store.rb
73
- - lib/datamapper4rails/integration_test.rb
74
- - lib/datamapper4rails/identity_maps.rb
75
- - lib/datamapper4rails/overlay.rb
76
- - lib/datamapper4rails/preload_models.rb
77
- - lib/datamapper4rails/rails_datamapper.rb
78
- - lib/datamapper4rails/restful_transactions.rb
79
- - lib/datamapper4rails/rspec_default_values.rb
80
- - lib/datamapper4rails/rspec.rb
81
- - lib/datamapper4rails/version.rb
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
- - !ruby/object:Gem::Version
99
- version: "0"
100
- version:
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
- - !ruby/object:Gem::Version
105
- version: "0"
106
- version:
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.5
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