merb_datamapper 0.9.5 → 0.9.6

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/Manifest.txt CHANGED
@@ -23,6 +23,7 @@ lib/merb_datamapper.rb
23
23
  lib/merb_datamapper/merbtasks.rb
24
24
  lib/merb_datamapper/version.rb
25
25
  spec/connection_spec.rb
26
+ spec/session_store_spec.rb
26
27
  spec/generators/data_mapper_migration_spec.rb
27
28
  spec/generators/data_mapper_model_spec.rb
28
29
  spec/generators/data_mapper_resource_controller_spec.rb
data/Rakefile CHANGED
@@ -10,7 +10,7 @@ AUTHOR = "Jason Toy"
10
10
  EMAIL = "jtoy@rubynow.com"
11
11
  GEM_NAME = "merb_datamapper"
12
12
  GEM_VERSION = DataMapper::MerbDataMapper::VERSION
13
- GEM_DEPENDENCIES = [["dm-core", GEM_VERSION], ["dm-migrations", GEM_VERSION], ["merb-core", ">=0.9.4"], ['templater', ">=0.1.5"]]
13
+ GEM_DEPENDENCIES = [["dm-core", GEM_VERSION], ["dm-migrations", GEM_VERSION], ["merb-core", ">=0.9.6"], ['templater', ">=0.2.0"]]
14
14
  GEM_CLEAN = ["log", "pkg", "coverage"]
15
15
  GEM_EXTRAS = { :has_rdoc => true, :extra_rdoc_files => %w[ README.txt LICENSE TODO ] }
16
16
 
@@ -1,4 +1,4 @@
1
- Merb::Generators::MigrationGenerator.template :migration_datamapper, :orm => :datamapper do
2
- source(File.dirname(__FILE__), 'templates/migration.rb')
3
- destination("#{destination_directory}/#{file_name}.rb")
1
+ Merb::Generators::MigrationGenerator.template :migration_datamapper, :orm => :datamapper do |t|
2
+ t.source = File.join(File.dirname(__FILE__), 'templates/migration.rb')
3
+ t.destination = "#{destination_directory}/#{file_name}.rb"
4
4
  end
@@ -9,7 +9,7 @@ class Merb::Generators::ModelGenerator
9
9
  end
10
10
  end
11
11
 
12
- Merb::Generators::ModelGenerator.template :model_datamapper, :orm => :datamapper do
13
- source(File.dirname(__FILE__), "templates", "model.rb")
14
- destination("app/models", base_path, "#{file_name}.rb")
12
+ Merb::Generators::ModelGenerator.template :model_datamapper, :orm => :datamapper do |t|
13
+ t.source = File.join(File.dirname(__FILE__), "templates", "model.rb")
14
+ t.destination = File.join("app/models", base_path, "#{file_name}.rb")
15
15
  end
@@ -11,15 +11,15 @@ class Merb::Generators::ResourceControllerGenerator
11
11
  end
12
12
 
13
13
 
14
- Merb::Generators::ResourceControllerGenerator.template :controller_datamapper, :orm => :datamapper do
15
- source(File.dirname(__FILE__), "templates/resource_controller.rb")
16
- destination("app/controllers", base_path, "#{file_name}.rb")
14
+ Merb::Generators::ResourceControllerGenerator.template :controller_datamapper, :orm => :datamapper do |t|
15
+ t.source = File.join(File.dirname(__FILE__), "templates/resource_controller.rb")
16
+ t.destination = File.join("app/controllers", base_path, "#{file_name}.rb")
17
17
  end
18
18
 
19
19
  [:index, :show, :edit, :new].each do |view|
20
20
  Merb::Generators::ResourceControllerGenerator.template "view_#{view}_datamapper".to_sym,
21
- :orm => :datamapper, :template_engine => :erb do
22
- source(File.dirname(__FILE__), "templates/views/#{view}.html.erb")
23
- destination("app/views", base_path, "#{file_name}/#{view}.html.erb")
21
+ :orm => :datamapper, :template_engine => :erb do |t|
22
+ t.source = File.join(File.dirname(__FILE__), "templates/views/#{view}.html.erb")
23
+ t.destination = File.join("app/views", base_path, "#{file_name}/#{view}.html.erb")
24
24
  end
25
25
  end
@@ -2,19 +2,17 @@
2
2
 
3
3
  <p>Edit this file in <tt>app/views/<%= file_name %>/edit.html.erb</tt></p>
4
4
 
5
- <%%= error_messages_for :<%= singular_model %> %>
6
-
7
- <%% form_for(@<%= singular_model %>, :action => url(:<%= singular_model %>, @<%= singular_model %>)) do %>
5
+ <%%= form_for(@<%= singular_model %>, :action => url(:<%= singular_model %>, @<%= singular_model %>)) do %>
8
6
  <% for property in properties.select{|p| !p.key?} -%>
9
7
  <p>
10
- <%%= text_control :<%= property.getter %>, :label => "<%= Extlib::Inflection.humanize(property.field) %>" %>
8
+ <%%= text_field :<%= property %>, :label => "<%= Extlib::Inflection.humanize(property) %>" %>
11
9
  </p>
12
10
 
13
11
  <% end -%>
14
12
  <p>
15
- <%%= submit_button "Update" %>
13
+ <%%= submit "Update" %>
16
14
  </p>
17
- <%% end %>
15
+ <%% end =%>
18
16
 
19
17
  <%%= link_to 'Show', url(:<%= singular_model %>, @<%= singular_model %>) %> |
20
18
  <%%= link_to 'Back', url(:<%= plural_model %>) %>
@@ -16,7 +16,6 @@
16
16
  <% end -%>
17
17
  <td><%%= link_to 'Show', url(:<%= singular_model %>, <%= singular_model %>) %></td>
18
18
  <td><%%= link_to 'Edit', url(:edit_<%= singular_model %>, <%= singular_model %>) %></td>
19
- <td><%%= delete_button :<%= singular_model %>, <%= singular_model %> %></td>
20
19
  </tr>
21
20
  <%% end %>
22
21
  </table>
@@ -2,18 +2,16 @@
2
2
 
3
3
  <p>Edit this file in <tt>app/views/<%= file_name %>/new.html.erb</tt></p>
4
4
 
5
- <%%= error_messages_for :<%= singular_model %> %>
6
-
7
- <%% form_for(@<%= singular_model %>, :action => url(:<%= plural_model %>) ) do |f| %>
5
+ <%%= form_for(@<%= singular_model %>, :action => url(:<%= plural_model %>) ) do %>
8
6
  <% for property in properties.select{|p| !p.key?} -%>
9
7
  <p>
10
- <%%= text_control :<%= property.getter %>, :label => "<%= Extlib::Inflection.humanize(property.field) %>" %>
8
+ <%%= text_field :<%= property %>, :label => "<%= Extlib::Inflection.humanize(property) %>" %>
11
9
  </p>
12
10
 
13
11
  <% end -%>
14
12
  <p>
15
- <%%= submit_button "Create" %>
13
+ <%%= submit "Create" %>
16
14
  </p>
17
- <%% end %>
15
+ <%% end =%>
18
16
 
19
17
  <%%= link_to 'Back', url(:<%= plural_model %>) %>
@@ -17,10 +17,7 @@ module Merb
17
17
  end
18
18
 
19
19
  def config
20
- if !Merb::Plugins.config[:merb_datamapper].nil? && Merb::Plugins.config[:merb_datamapper].empty?
21
- Merb::Plugins.config[:merb_datamapper] = get_config_for_environment
22
- end
23
- @config ||= Merb::Plugins.config[:merb_datamapper] ||= get_config_for_environment
20
+ @config ||= Merb::Plugins.config[:merb_datamapper][:connection] ||= (get_config_for_environment)
24
21
  end
25
22
 
26
23
  # Database connects as soon as the gem is loaded
@@ -1,119 +1,68 @@
1
1
  begin
2
- gem 'dm-core', '=0.9.5'
2
+ gem 'dm-core', '=0.9.6'
3
3
  require 'dm-core'
4
4
  rescue LoadError => e
5
5
  require 'data_mapper'
6
6
  end
7
7
 
8
- require 'base64'
9
- module Merb
10
- module SessionMixin
11
- def setup_session
12
- before_value = cookies[_session_id_key]
13
- request.session, cookies[_session_id_key] = Merb::DataMapperSession.persist(cookies[_session_id_key])
14
- @_fingerprint = Marshal.dump(request.session.data).hash
15
- @_new_cookie = cookies[_session_id_key] != before_value
16
- end
17
-
18
- def finalize_session
19
- request.session.save if @_fingerprint != Marshal.dump(request.session.data).hash
20
- set_cookie(_session_id_key, request.session.session_id, Time.now + _session_expiry) if (@_new_cookie || request.session.needs_new_cookie)
21
- end
22
-
23
- def session_store_type
24
- "datamapper"
25
- end
26
- end
27
-
28
- table_name = (Merb::Plugins.config[:merb_datamapper][:session_table_name] || "sessions")
8
+ require 'merb-core/dispatch/session'
29
9
 
30
- class DataMapperSession
31
- include DataMapper::Resource
32
-
33
- storage_names[:default] = "sessions"
34
- property :session_id, String, :length => 255, :lazy => false, :key => true
35
- property :data, Text, :lazy => false
36
- property :updated_at, DateTime
37
-
38
- attr_accessor :needs_new_cookie
39
-
40
- class << self
41
- # Generates a new session ID and creates a row for the new session in the database.
42
- def generate
43
- new_session = self.new(:data =>{})
44
- new_session.session_id = Merb::SessionMixin::rand_uuid
45
- new_session.save
46
- new_session
47
- end
48
-
49
- # Gets the existing session based on the <tt>session_id</tt> available in cookies.
50
- # If none is found, generates a new session.
51
- def persist(session_id)
52
- if !session_id.blank?
53
- session = self.first :session_id => session_id
54
- end
55
- unless session
56
- session = generate
57
- end
58
- [session, session.session_id]
10
+ module Merb
11
+ class DataMapperSessionStore
12
+ include ::DataMapper::Resource
13
+
14
+ table_name = Merb::Plugins.config[:merb_datamapper][:session_storage_name] || 'sessions'
15
+ storage_names[default_repository_name] = table_name
16
+
17
+ property :session_id, String, :size => 32, :nullable => false, :key => true
18
+ property :data, Object, :default => {}, :lazy => false
19
+ property :created_at, DateTime, :default => Proc.new { |r, p| DateTime.now }
20
+
21
+ ##
22
+ # Retrieves a session from the session store
23
+ #
24
+ # @param session_id<String> The session_id to retrieve the session for
25
+ #
26
+ # @returns <nil, DataMapperSessionStore> The session corresponding to the id, or nil
27
+ def self.retrieve_session(session_id)
28
+ if session = get(session_id)
29
+ session.data
59
30
  end
60
-
61
- def marshal(data) Base64.encode64(Marshal.dump(data)) if data end
62
- def unmarshal(data) Marshal.load(Base64.decode64(data)) if data end
63
- end
64
-
65
- # Regenerate the Session ID
66
- def regenerate
67
- self.session_id = Merb::SessionMixin::rand_uuid
68
- self.needs_new_cookie = true
69
- self.save
70
- end
71
-
72
- # Recreates the cookie with the default expiration time
73
- # Useful during log in for pushing back the expiration date
74
- def refresh_expiration
75
- self.needs_new_cookie = true
76
- end
77
-
78
- # Lazy-delete of session data
79
- def delete(key = nil)
80
- key ? self.data.delete(key) : self.data.clear
81
- end
82
-
83
- def empty?
84
- data.empty?
85
- end
86
-
87
- def each(&b)
88
- data.each(&b)
89
- end
90
-
91
- def each_with_index(&b)
92
- data.each_with_index(&b)
93
- end
94
-
95
- def [](key)
96
- data[key]
97
31
  end
98
32
 
99
- def []=(key, val)
100
- data[key] = val
33
+ ##
34
+ # Stores the data in a session with the given session_id, creating it if
35
+ # required
36
+ #
37
+ # @param session_id<String> The session_id to find the session by, or the id of the new session
38
+ # @param data<Object> The data to be stored in the session. Probably a hash
39
+ def self.store_session(session_id, data)
40
+ if session = get(session_id)
41
+ session.update_attributes(:data => data)
42
+ else
43
+ create(:session_id => session_id, :data => data)
44
+ end
101
45
  end
102
46
 
103
- def data
104
- @unmarshalled_data ||= self.class.unmarshal(@data) || {}
47
+ ##
48
+ # Deletes a session with the given id
49
+ #
50
+ # @param session_id<String> The session to destroy
51
+ def self.delete_session(session_id)
52
+ all(:session_id => session_id).destroy!
105
53
  end
106
54
 
107
- def data=(data)
108
- @data, @unmarshalled_data = data, data
55
+ def self.default_repository_name
56
+ Merb::Plugins.config[:merb_datamapper][:session_repository_name] || :default
109
57
  end
58
+ end
110
59
 
111
- private
60
+ class DataMapperSession < SessionStoreContainer
112
61
 
113
- before :save, :serialize_data
62
+ # The session store type
63
+ self.session_store_type = :datamapper
114
64
 
115
- def serialize_data
116
- attribute_set :data, self.class.marshal(self.data)
117
- end
65
+ # The store object is the model class itself
66
+ self.store = DataMapperSessionStore
118
67
  end
119
68
  end
@@ -1,24 +1,41 @@
1
1
  if defined?(Merb::Plugins)
2
- require 'rubygems'
3
- require 'merb_datamapper/version'
2
+ dependency 'dm-core'
4
3
 
5
- gem 'dm-core', DataMapper::MerbDataMapper::VERSION
6
- require 'dm-core'
4
+ require File.dirname(__FILE__) / "merb" / "orms" / "data_mapper" / "connection"
5
+ Merb::Plugins.add_rakefiles "merb_datamapper" / "merbtasks"
7
6
 
8
- if File.file?(Merb.dir_for(:config) / "database.yml")
9
- require File.join(File.dirname(__FILE__) / "merb" / "orms" / "data_mapper" / "connection")
7
+ class Merb::Orms::DataMapper::Connect < Merb::BootLoader
8
+ after BeforeAppLoads
10
9
 
11
- Merb::Orms::DataMapper.connect
12
- Merb::Orms::DataMapper.register_session_type
13
- else
14
- Merb.logger.info "No database.yml file found in #{Merb.dir_for(:config)}, assuming database connection(s) established in the environment file in #{Merb.dir_for(:config)}/environments"
15
- end
10
+ def self.run
11
+ Merb.logger.debug "Merb::Orms::DataMapper::Connect block."
16
12
 
17
- require File.join(File.dirname(__FILE__) / "merb" / "orms" / "data_mapper" / "resource")
13
+ # check for the presence of database.yml
14
+ if File.file?(Merb.dir_for(:config) / "database.yml")
15
+ # if we have it, connect
16
+ Merb::Orms::DataMapper.connect
17
+ else
18
+ # assume we'll be told at some point
19
+ Merb.logger.info "No database.yml file found in #{Merb.dir_for(:config)}, assuming database connection(s) established in the environment file in #{Merb.dir_for(:config)}/environments"
20
+ end
21
+
22
+ # if we use a datamapper session store, require it.
23
+ Merb.logger.debug "Checking if we need to use DataMapper sessions"
24
+ if Merb::Config.session_stores.include?(:datamapper)
25
+ Merb.logger.debug "Using DataMapper sessions"
26
+ require File.dirname(__FILE__) / "merb" / "session" / "data_mapper_session"
27
+ end
28
+
29
+ # required to provide 'to_param'
30
+ require File.dirname(__FILE__) / "merb" / "orms" / "data_mapper" / "resource"
31
+
32
+ Merb.logger.debug "Merb::Orms::DataMapper::Connect complete"
33
+ end
34
+ end
18
35
 
19
- Merb::Plugins.add_rakefiles "merb_datamapper" / "merbtasks"
20
36
 
21
- Merb.add_generators File.join(File.dirname(__FILE__), 'generators', 'data_mapper_model')
22
- Merb.add_generators File.join(File.dirname(__FILE__), 'generators', 'data_mapper_resource_controller')
23
- Merb.add_generators File.join(File.dirname(__FILE__), 'generators', 'data_mapper_migration')
37
+ generators = File.join(File.dirname(__FILE__), 'generators')
38
+ Merb.add_generators generators / 'data_mapper_model'
39
+ Merb.add_generators generators / 'data_mapper_resource_controller'
40
+ Merb.add_generators generators / 'data_mapper_migration'
24
41
  end
@@ -48,15 +48,19 @@ namespace :dm do
48
48
  desc "Migrate the database to the latest version"
49
49
  task :migrate => 'dm:db:migrate:up'
50
50
 
51
- desc "Create the database (postgres only)"
51
+ desc "Create the database"
52
52
  task :create do
53
53
  config = Merb::Orms::DataMapper.config
54
54
  puts "Creating database '#{config[:database]}'"
55
55
  case config[:adapter]
56
56
  when 'postgres'
57
57
  `createdb -U #{config[:username]} #{config[:database]}`
58
+ when 'mysql'
59
+ `mysqladmin -u #{config[:username]} #{config[:password] ? "-p'#{config[:password]}'" : ''} create #{config[:database]}`
60
+ when 'sqlite3'
61
+ Rake::Task['rake:dm:db:automigrate'].invoke
58
62
  else
59
- raise "Adapter #{config[:adapter]} not supported yet."
63
+ raise "Adapter #{config[:adapter]} not supported for creating databases yet."
60
64
  end
61
65
  end
62
66
 
@@ -68,7 +72,7 @@ namespace :dm do
68
72
  when 'postgres'
69
73
  `dropdb -U #{config[:username]} #{config[:database]}`
70
74
  else
71
- raise "Adapter #{config[:adapter]} not supported yet."
75
+ raise "Adapter #{config[:adapter]} not supported for dropping databases yet.\ntry dm:db:automigrate"
72
76
  end
73
77
  end
74
78
 
@@ -1,5 +1,5 @@
1
1
  module DataMapper
2
2
  module MerbDataMapper
3
- VERSION = "0.9.5"
3
+ VERSION = "0.9.6"
4
4
  end
5
5
  end
@@ -1,9 +1,10 @@
1
+ # require our other spec helpers
2
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
3
+
1
4
  # require merb-gen and the spec helpers
2
5
  require 'merb-gen'
3
- require 'merb-gen/spec_helper'
6
+ require 'templater/spec/helpers'
4
7
 
5
- # require our other spec helpers
6
- require File.join(File.dirname(__FILE__), '..', 'spec_helper')
7
8
 
8
9
  # require the generators
9
10
  require 'generators/data_mapper_migration'
@@ -12,7 +13,7 @@ require 'generators/data_mapper_resource_controller'
12
13
 
13
14
  # include the helpers
14
15
  Spec::Runner.configure do |config|
15
- config.include Merb::Test::GeneratorHelper
16
+ config.include Templater::Spec::Helpers
16
17
  end
17
18
 
18
19
  # copied from merb-more/merb-gen/spec/spec_helpers.rb
@@ -0,0 +1,125 @@
1
+ require File.join(File.dirname(__FILE__), 'spec_helper')
2
+
3
+ require 'merb/session/data_mapper_session'
4
+ describe Merb::DataMapperSessionStore do
5
+ before(:all) do
6
+ DataMapper.setup(:default, "sqlite3::memory:")
7
+ end
8
+
9
+ before(:each) do
10
+ Merb::Plugins.config[:merb_datamapper] = {}
11
+ @session_container = Merb::DataMapperSessionStore
12
+ @session_container.auto_migrate!
13
+ @sess_id = 'a'*32
14
+ end
15
+
16
+
17
+ describe "#retrieve_session" do
18
+ it "responds to retrieve_session" do
19
+ @session_container.should respond_to(:retrieve_session)
20
+ end
21
+ it "returns the data when given an existing session id" do
22
+ @session_container.create(:session_id => @sess_id, :data => {:foo => 'bar'})
23
+ session_data = @session_container.retrieve_session(@sess_id)
24
+ session_data.should_not be_nil
25
+ session_data[:foo].should == 'bar'
26
+ end
27
+ it "returns nil when a non-existent session_id is used" do
28
+ @session_container.retrieve_session(@sess_id).should be_nil
29
+ end
30
+ end
31
+
32
+
33
+ describe "#store_session" do
34
+ it "responds to store_session" do
35
+ @session_container.should respond_to(:store_session)
36
+ end
37
+
38
+ describe "when a session_id doesn't exist" do
39
+ it "creates a new record" do
40
+ @session_container.all.should be_empty
41
+ @session_container.store_session(@sess_id, {:foo => 'bar'})
42
+ @session_container.all.should_not be_empty
43
+ end
44
+
45
+ it "saves the data" do
46
+ @session_container.store_session(@sess_id, {:foo => 'bar'})
47
+ session_data = @session_container.retrieve_session(@sess_id)
48
+ session_data.should_not be_nil
49
+ session_data[:foo].should == 'bar'
50
+ end
51
+ end
52
+
53
+ describe "when a session_id does exist" do
54
+ before(:each) do
55
+ @session_container.store_session(@sess_id, {:foo => 'bar'})
56
+ end
57
+
58
+ it "doesn't create a new session" do
59
+ @session_container.all.size.should == 1
60
+ @session_container.store_session(@sess_id, {:foo => 'FOOOO'})
61
+ @session_container.all.size.should == 1
62
+ end
63
+
64
+ it "saves the data" do
65
+ @session_container.store_session(@sess_id, {:foo => 'FOOOO'})
66
+ session_data = @session_container.retrieve_session(@sess_id)
67
+ session_data.should_not be_nil
68
+ session_data[:foo].should == 'FOOOO'
69
+ end
70
+ end
71
+ end
72
+
73
+
74
+ describe "#delete_session" do
75
+ before(:each) do
76
+ @session_container.store_session(@sess_id, {:foo => 'bar'})
77
+ end
78
+
79
+ it "responds to #delete_session" do
80
+ @session_container.should respond_to(:delete_session)
81
+ end
82
+
83
+ it "destroys an existing session" do
84
+ @session_container.all.size.should == 1
85
+ @session_container.delete_session(@sess_id)
86
+ @session_container.all.size.should == 0
87
+ end
88
+
89
+ it "doesn't destroy a session when the key doesn't match" do
90
+ @session_container.all.size.should == 1
91
+ @session_container.delete_session('b'*32)
92
+ @session_container.all.size.should == 1
93
+ end
94
+ end
95
+ end
96
+ describe "configuration options" do
97
+ before(:each) do
98
+ @session_container = Merb::DataMapperSessionStore
99
+ end
100
+ after(:each) do
101
+ Merb::Plugins.config[:merb_datamapper].clear
102
+ end
103
+
104
+ describe "repository" do
105
+ it "uses the :default repository when no options are set" do
106
+ @session_container.default_repository_name.should == :default
107
+ end
108
+ it "uses the set name when provided" do
109
+ Merb::Plugins.config[:merb_datamapper][:session_repository_name] = :other
110
+ @session_container.default_repository_name.should == :other
111
+ end
112
+ end
113
+
114
+
115
+ describe "table name" do
116
+ it "uses the 'sessions' when no options are set" do
117
+ @session_container.storage_names[:default].should == 'sessions'
118
+ end
119
+ it "uses the set table name when it is set" do
120
+ pending "this should work but doesn't"
121
+ Merb::Plugins.config[:merb_datamapper][:session_storage_name] = 'foos'
122
+ @session_container.storage_names[:default].should == 'foos'
123
+ end
124
+ end
125
+ end
data/spec/spec_helper.rb CHANGED
@@ -3,13 +3,7 @@ $:.push File.join(File.dirname(__FILE__), '..', 'lib')
3
3
 
4
4
  require 'rubygems'
5
5
 
6
- gem 'dm-core', '=0.9.5'
6
+ gem 'dm-core', '=0.9.6'
7
7
  require 'dm-core'
8
+ require 'merb-core'
8
9
 
9
- module Merb
10
- module Plugins
11
- def self.config
12
- @config ||= {}
13
- end
14
- end
15
- end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: merb_datamapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.5
4
+ version: 0.9.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Toy
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-08-26 00:00:00 -05:00
12
+ date: 2008-09-09 00:00:00 +03: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.9.5
23
+ version: 0.9.6
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: dm-migrations
@@ -30,7 +30,7 @@ dependencies:
30
30
  requirements:
31
31
  - - "="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.9.5
33
+ version: 0.9.6
34
34
  version:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: merb-core
@@ -40,7 +40,7 @@ dependencies:
40
40
  requirements:
41
41
  - - ">="
42
42
  - !ruby/object:Gem::Version
43
- version: 0.9.4
43
+ version: 0.9.6
44
44
  version:
45
45
  - !ruby/object:Gem::Dependency
46
46
  name: templater
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: 0.1.5
53
+ version: 0.2.0
54
54
  version:
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: hoe
@@ -99,6 +99,7 @@ files:
99
99
  - lib/merb_datamapper/merbtasks.rb
100
100
  - lib/merb_datamapper/version.rb
101
101
  - spec/connection_spec.rb
102
+ - spec/session_store_spec.rb
102
103
  - spec/generators/data_mapper_migration_spec.rb
103
104
  - spec/generators/data_mapper_model_spec.rb
104
105
  - spec/generators/data_mapper_resource_controller_spec.rb