activerecord-tableless 1.2.0 → 1.3.0

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 29efeb3f4c0056e51c8fca581b8142296097fbc3
4
+ data.tar.gz: f46298d5363c5ee7cbf836270cd8c4147473c254
5
+ SHA512:
6
+ metadata.gz: 679ab1f5215a9d80afd45249274921172d4aba1d758c0725eb05acdf45bb4c28c4f6d00093c0f9a874aacaf9e3459a8ad10d92cb852b431c58cca7d6daa1ca8d
7
+ data.tar.gz: 9747379a1a8c98aa3bb3729dc711542a9b969a8dffdae1fc590c6933dae9ffb34021618a0c71e0170ed2df8745e073ffc32b01e25f6492de3f3007ea984e70f4
data/.rspec CHANGED
@@ -1 +1 @@
1
- --color --backtrace --debug --format doc
1
+ --color --backtrace --format doc
@@ -0,0 +1,20 @@
1
+ language: ruby
2
+ #bundler_args: --without development
3
+ before_install: "(ruby -e 'exit (RUBY_VERSION < \"2\" ? 0 : 1)' && gem update --system 1.8.25) || true"
4
+ rvm:
5
+ - 1.8.7
6
+ - 1.9.3
7
+ - 2.0.0
8
+ gemfile:
9
+ - gemfiles/rails23.gemfile
10
+ - gemfiles/rails30.gemfile
11
+ - gemfiles/rails32.gemfile
12
+ - gemfiles/rails3x.gemfile
13
+ - gemfiles/rails40.gemfile
14
+ matrix:
15
+ exclude:
16
+ - rvm: 1.8.7
17
+ gemfile: gemfiles/rails40.gemfile
18
+ - rvm: 2.0.0
19
+ gemfile: gemfiles/rails23.gemfile
20
+
data/Appraisals CHANGED
@@ -27,3 +27,9 @@ appraise "rails3x" do
27
27
  gem "activerecord-tableless", :path => "../"
28
28
  end
29
29
 
30
+ appraise "rails40" do
31
+ gem "rails", "~> 4.0.0"
32
+ gem "jquery-rails"
33
+ gem "activerecord-tableless", :path => "../"
34
+ end
35
+
data/README.md CHANGED
@@ -1,9 +1,34 @@
1
1
  ActiveRecord Tableless
2
2
  ======================
3
3
 
4
+ [![Build Status](https://secure.travis-ci.org/softace/activerecord-tableless.png)](http://travis-ci.org/softace/activerecord-tableless)
5
+ [![Dependency Status](https://gemnasium.com/softace/activerecord-tableless.png)](https://gemnasium.com/softace/activerecord-tableless)
6
+ [![Code Climate](https://codeclimate.com/github/softace/activerecord-tableless.png)](https://codeclimate.com/github/softace/activerecord-tableless)
7
+
4
8
  A single implementation of the ActiveRecord Tableless pattern for any
5
9
  Rails project or other Ruby project that uses ActiveRecord.
6
10
 
11
+ Why, why, why
12
+ -------------
13
+
14
+ Why would you ever consider this gem as opposed to ActiveModel.
15
+
16
+ In Rails 2 ActiveModel does not exists (this is when it all started; see Hitosry section)
17
+
18
+ In Rails 3 there is an Active Model API, where you can use some
19
+ features of Active Record in other classes. Yehuda Katz has written
20
+ [a nice introduction about this](http://yehudakatz.com/2010/01/10/activemodel-make-any-ruby-object-feel-like-activerecord/).
21
+
22
+ In Rails 4 basic features of the Active Model API can be activated
23
+ by including
24
+ [ActiveModel:Model](http://api.rubyonrails.org/classes/ActiveModel/Model.html)
25
+ in the model. Carlos Antônio has written
26
+ [a nice tutorial about this](http://blog.plataformatec.com.br/2012/03/barebone-models-to-use-with-actionpack-in-rails-4-0/).
27
+
28
+ However neither the Active Model API (Rails 3) nor the
29
+ ActiveModel::Model (Rails 4) supports relations and nested attributes.
30
+
31
+
7
32
  Installation
8
33
  ------------
9
34
 
@@ -18,8 +43,8 @@ Include the gem in your Gemfile:
18
43
  Supported Versions
19
44
  ------------------
20
45
 
21
- Supported version are ActiveRecord version **2.3.x**, **3.0.x** series
22
- and **3.2.x** series
46
+ Supported version are ActiveRecord version **2.3.x**, **3.0.x**
47
+ series, **3.2.x** series and **4.x** series
23
48
 
24
49
  You may be able to make it work with 3.1.X, but you should expect to
25
50
  put some time in it.
@@ -64,7 +89,6 @@ If you wish (this is not recommended), you can pretend you have a succeeding dat
64
89
  has_no_table :database => :pretend_success
65
90
 
66
91
 
67
-
68
92
  Development
69
93
  -----------
70
94
 
@@ -87,7 +111,14 @@ Or you can see what other options are there:
87
111
  History
88
112
  -------
89
113
 
90
- Well, take a look at the git log :-)
114
+ Originally this code was implemented for Rails 2 by Kenneth
115
+ Kalmer. For Rails 3 the need for this functionality was reduced
116
+ dramatically due to the introduction of ActiveModel. But because the
117
+ ActiveModel does not support relations and nested attributes the
118
+ existence of this gem is still justified.
119
+
120
+ For a history of technical implementation details feel free to take a
121
+ look in the git log :-)
91
122
 
92
123
 
93
124
  Copyright
@@ -10,7 +10,7 @@ Gem::Specification.new do |gem|
10
10
  gem.files = `git ls-files`.split($\)
11
11
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
12
12
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
13
- gem.version = "1.2.0"
13
+ gem.version = "1.3.0"
14
14
  gem.has_rdoc = true
15
15
 
16
16
  gem.require_paths = ["lib"]
@@ -27,8 +27,13 @@ Gem::Specification.new do |gem|
27
27
  gem.add_development_dependency('appraisal', '~> 0.4')
28
28
  gem.add_development_dependency('cucumber', '~> 1.1')
29
29
  gem.add_development_dependency("rspec")
30
- gem.add_development_dependency('launchy', '~> 2.1')
31
30
  gem.add_development_dependency('aruba', '>= 0.5')
32
31
  gem.add_development_dependency('capybara')
33
- gem.add_development_dependency('debugger')
32
+
33
+ ##Specifying upper limit version for ruby 1.8.7
34
+ gem.add_development_dependency('nokogiri', '< 1.6')
35
+ gem.add_development_dependency('capybara', '< 2.1')
36
+
37
+ # gem.add_development_dependency('launchy', '~> 2.1')
38
+ # gem.add_development_dependency('debugger')
34
39
  end
@@ -1,13 +1,13 @@
1
1
  Given /^I generate a new rails application$/ do
2
2
  steps %{
3
- When I successfully run `bundle exec #{new_application_command} #{APP_NAME}`
3
+ When I successfully run `bundle exec #{new_application_command(APP_NAME)}`
4
4
  And I cd to "#{APP_NAME}"
5
5
  And I turn off class caching
6
+ And I fix the application.rb for 3.0.12
6
7
  And I write to "Gemfile" with:
7
8
  """
8
9
  source "http://rubygems.org"
9
10
  gem "rails", "#{framework_version}"
10
- #{"gem \"jquery-rails\"" if framework_version >= "3.2"}
11
11
  gem "sqlite3"
12
12
  gem "capybara"
13
13
  gem "gherkin"
@@ -18,6 +18,15 @@ Given /^I generate a new rails application$/ do
18
18
  }
19
19
  end
20
20
 
21
+ Given "I fix the application.rb for 3.0.12" do
22
+ ##See https://github.com/rails/rails/issues/9619
23
+ in_current_dir do
24
+ File.open("config/application.rb", "a") do |f|
25
+ f << "ActionController::Base.config.relative_url_root = ''"
26
+ end
27
+ end
28
+ end
29
+
21
30
  Given /^I run a "(.*?)" generator to generate a "(.*?)" scaffold with "(.*?)"$/ do |generator_name, model_name, attributes|
22
31
  step %[I successfully run `bundle exec #{generator_command} #{generator_name} #{model_name} #{attributes}`]
23
32
  end
@@ -133,6 +142,16 @@ module FileHelpers
133
142
  File.open("Gemfile", 'w'){ |file| file.write(gemfile) }
134
143
  end
135
144
  end
145
+
146
+ def transform_file(filename)
147
+ if File.exists?(filename)
148
+ content = File.read(filename)
149
+ File.open(filename, "w") do |f|
150
+ content = yield(content)
151
+ f.write(content)
152
+ end
153
+ end
154
+ end
136
155
  end
137
156
 
138
157
  World(FileHelpers)
@@ -24,17 +24,14 @@ end
24
24
 
25
25
  Given /^I update my users controller to render instead of redirect$/ do
26
26
  in_current_dir do
27
- file_name = 'app/controllers/users_controller.rb'
28
- content = File.read(file_name)
29
-
30
- content.gsub!("@user = User.new(params[:user])",
31
- "@user = User.new(params[:user]); @user.id = 1")
32
-
33
- content.gsub!("if @user.save",
34
- "if @user.valid?")
35
-
36
- content.gsub!(/format.html \{ redirect_to[\( ]@user, .*? \}/,
37
- "format.html { render :action => 'show' }")
38
- File.open(file_name, 'w') { |f| f << content }
27
+ transform_file('app/controllers/users_controller.rb') do |content|
28
+ ##Changes in #create method
29
+ content.gsub!(/@user = User.new\((.*?)\)/,
30
+ '@user = User.new(\1); @user.id = 1')
31
+ content.gsub!("if @user.save",
32
+ "if @user.valid?")
33
+ content.gsub!(/redirect_to([\( ])@user, .*?([\)]| \}|$)/,
34
+ "render\\1:action => 'show'\\2")
35
+ end
39
36
  end
40
37
  end
@@ -31,16 +31,20 @@ module RailsCommandHelpers
31
31
  @framework_version ||= `rails -v`[/^Rails (.+)$/, 1]
32
32
  end
33
33
 
34
- def new_application_command
35
- framework_version?("3") ? "rails new" : "rails"
34
+ def framework_major_version
35
+ framework_version.split(".").first.to_i
36
+ end
37
+
38
+ def new_application_command(app_name)
39
+ framework_major_version >= 3 ? "rails new #{app_name} --skip-sprockets --skip-javascript --skip-bundle" : "rails #{app_name}"
36
40
  end
37
41
 
38
42
  def generator_command
39
- framework_version?("3") ? "script/rails generate" : "script/generate"
43
+ framework_major_version >= 3 ? "rails generate" : "script/generate"
40
44
  end
41
45
 
42
46
  def runner_command
43
- framework_version?("3") ? "script/rails runner" : "script/runner"
47
+ framework_major_version >= 3 ? "rails runner" : "script/runner"
44
48
  end
45
49
 
46
50
  end
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 4.0.0"
6
+ gem "jquery-rails"
7
+ gem "activerecord-tableless", :path=>"../"
8
+
9
+ gemspec :path=>"../"
@@ -1,26 +1,26 @@
1
1
  # See #ActiveRecord::Tableless
2
2
 
3
3
  module ActiveRecord
4
-
4
+
5
5
  # = ActiveRecord::Tableless
6
- #
6
+ #
7
7
  # Allow classes to behave like ActiveRecord models, but without an associated
8
8
  # database table. A great way to capitalize on validations. Based on the
9
9
  # original post at http://www.railsweenie.com/forums/2/topics/724 (which seems
10
10
  # to have disappeared from the face of the earth).
11
- #
11
+ #
12
12
  # = Example usage
13
- #
13
+ #
14
14
  # class ContactMessage < ActiveRecord::Base
15
- #
15
+ #
16
16
  # has_no_table
17
- #
17
+ #
18
18
  # column :name, :string
19
19
  # column :email, :string
20
20
  # column :message, :string
21
- #
21
+ #
22
22
  # end
23
- #
23
+ #
24
24
  # msg = ContactMessage.new( params[:msg] )
25
25
  # if msg.valid?
26
26
  # ContactMessageSender.deliver_message( msg )
@@ -28,7 +28,7 @@ module ActiveRecord
28
28
  # end
29
29
  #
30
30
  module Tableless
31
-
31
+
32
32
  class Exception < StandardError
33
33
  end
34
34
  class NoDatabase < Exception
@@ -37,9 +37,9 @@ module ActiveRecord
37
37
  def self.included( base ) #:nodoc:
38
38
  base.send :extend, ActsMethods
39
39
  end
40
-
40
+
41
41
  module ActsMethods #:nodoc:
42
-
42
+
43
43
  # A model that needs to be tableless will call this method to indicate
44
44
  # it.
45
45
  def has_no_table(options = {:database => :fail_fast})
@@ -52,43 +52,45 @@ module ActiveRecord
52
52
  }
53
53
  )
54
54
  class_inheritable_reader :tableless_options
55
- else
55
+ elsif ActiveRecord::VERSION::STRING >= "3.2.0"
56
56
  class_attribute :tableless_options
57
57
  self.tableless_options = {
58
58
  :database => options[:database],
59
59
  :columns => []
60
60
  }
61
+ else
62
+ raise Exception.new("Sorry, ActiveRecord version #{ActiveRecord::VERSION::STRING} is not supported")
61
63
  end
62
64
 
63
65
  # extend
64
66
  extend ActiveRecord::Tableless::SingletonMethods
65
67
  extend ActiveRecord::Tableless::ClassMethods
66
-
68
+
67
69
  # include
68
70
  include ActiveRecord::Tableless::InstanceMethods
69
-
71
+
70
72
  # setup columns
71
73
  end
72
-
74
+
73
75
  def tableless?
74
76
  false
75
77
  end
76
78
 
77
79
  end
78
-
80
+
79
81
  module SingletonMethods
80
-
82
+
81
83
  # Return the list of columns registered for the model. Used internally by
82
84
  # ActiveRecord
83
85
  def columns
84
86
  tableless_options[:columns]
85
87
  end
86
-
88
+
87
89
  # Register a new column.
88
90
  def column(name, sql_type = nil, default = nil, null = true)
89
91
  tableless_options[:columns] << ActiveRecord::ConnectionAdapters::Column.new(name.to_s, default, sql_type.to_s, null)
90
92
  end
91
-
93
+
92
94
  # Register a set of colums with the same SQL type
93
95
  def add_columns(sql_type, *args)
94
96
  args.each do |col|
@@ -113,18 +115,19 @@ module ActiveRecord
113
115
  raise NoDatabase.new("Can't #destroy_all on Tableless class")
114
116
  end
115
117
  end
116
-
117
- if ActiveRecord::VERSION::STRING < "3.0"
118
+
119
+ case ActiveRecord::VERSION::MAJOR
120
+ when 2
118
121
  def find_from_ids(*args)
119
122
  case tableless_options[:database]
120
123
  when :pretend_success
121
124
  raise ActiveRecord::RecordNotFound.new("Couldn't find #{self} with ID=#{args[0].to_s}")
122
-
125
+
123
126
  when :fail_fast
124
127
  raise NoDatabase.new("Can't #find_from_ids on Tableless class")
125
128
  end
126
129
  end
127
-
130
+
128
131
  def find_every(*args)
129
132
  case tableless_options[:database]
130
133
  when :pretend_success
@@ -133,7 +136,7 @@ module ActiveRecord
133
136
  raise NoDatabase.new("Can't #find_every on Tableless class")
134
137
  end
135
138
  end
136
- else ## ActiveRecord::VERSION::STRING >= "3.0"
139
+ when 3
137
140
  def all(*args)
138
141
  case tableless_options[:database]
139
142
  when :pretend_success
@@ -141,10 +144,22 @@ module ActiveRecord
141
144
  when :fail_fast
142
145
  raise NoDatabase.new("Can't #find_every on Tableless class")
143
146
  end
144
-
147
+
148
+ end
149
+ when 4
150
+ def find_by_sql(*args)
151
+ case tableless_options[:database]
152
+ when :pretend_success
153
+ []
154
+ when :fail_fast
155
+ raise NoDatabase.new("Can't #find_by_sql on Tableless class")
156
+ end
157
+
145
158
  end
159
+ else
160
+ raise Exceptioin.new("Unsupported ActiveRecord version")
146
161
  end
147
-
162
+
148
163
  def transaction(&block)
149
164
  # case tableless_options[:database]
150
165
  # when :pretend_success
@@ -154,21 +169,21 @@ module ActiveRecord
154
169
  # raise NoDatabase.new("Can't #transaction on Tableless class")
155
170
  # end
156
171
  end
157
-
172
+
158
173
  def tableless?
159
174
  true
160
175
  end
161
176
 
162
- if ActiveRecord::VERSION::STRING < "3.0.0"
177
+ if ActiveRecord::VERSION::MAJOR < 3
163
178
  else
164
179
  def table_exists?
165
180
  false
166
181
  end
167
182
  end
168
183
  end
169
-
184
+
170
185
  module ClassMethods
171
-
186
+
172
187
  def from_query_string(query_string)
173
188
  unless query_string.blank?
174
189
  params = query_string.split('&').collect do |chunk|
@@ -178,7 +193,7 @@ module ActiveRecord
178
193
  value = value.nil? ? nil : CGI.unescape(value)
179
194
  [ CGI.unescape(key), value ]
180
195
  end.compact.to_h
181
-
196
+
182
197
  new(params)
183
198
  else
184
199
  new
@@ -190,17 +205,27 @@ module ActiveRecord
190
205
  def conn.quote_table_name(*args)
191
206
  ""
192
207
  end
208
+ def conn.substitute_at(*args)
209
+ nil
210
+ end
211
+ def conn.schema_cache(*args)
212
+ schema_cache = Object.new()
213
+ def schema_cache.columns_hash(*args)
214
+ Hash.new()
215
+ end
216
+ schema_cache
217
+ end
193
218
  conn
194
219
  end
195
-
220
+
196
221
  end
197
-
222
+
198
223
  module InstanceMethods
199
-
224
+
200
225
  def to_query_string(prefix = nil)
201
226
  attributes.to_a.collect{|(name,value)| escaped_var_name(name, prefix) + "=" + escape_for_url(value) if value }.compact.join("&")
202
227
  end
203
-
228
+
204
229
  def quote_value(value, column = nil)
205
230
  ""
206
231
  end
@@ -214,6 +239,15 @@ module ActiveRecord
214
239
  end
215
240
  end
216
241
 
242
+ def create_record(*args)
243
+ case self.class.tableless_options[:database]
244
+ when :pretend_success
245
+ true
246
+ when :fail_fast
247
+ raise NoDatabase.new("Can't #create_record a Tableless object")
248
+ end
249
+ end
250
+
217
251
  def update(*args)
218
252
  case self.class.tableless_options[:database]
219
253
  when :pretend_success
@@ -223,6 +257,15 @@ module ActiveRecord
223
257
  end
224
258
  end
225
259
 
260
+ def update_record(*args)
261
+ case self.class.tableless_options[:database]
262
+ when :pretend_success
263
+ true
264
+ when :fail_fast
265
+ raise NoDatabase.new("Can't #update_record a Tableless object")
266
+ end
267
+ end
268
+
226
269
  def destroy
227
270
  case self.class.tableless_options[:database]
228
271
  when :pretend_success
@@ -241,19 +284,18 @@ module ActiveRecord
241
284
  raise NoDatabase.new("Can't #reload a Tableless object")
242
285
  end
243
286
  end
244
-
245
- if ActiveRecord::VERSION::STRING < "3.0"
246
- else
287
+
288
+ if ActiveRecord::VERSION::MAJOR >= 3
247
289
  def add_to_transaction
248
290
  end
249
291
  end
250
292
 
251
293
  private
252
-
294
+
253
295
  def escaped_var_name(name, prefix = nil)
254
296
  prefix ? "#{URI.escape(prefix)}[#{URI.escape(name)}]" : URI.escape(name)
255
297
  end
256
-
298
+
257
299
  def escape_for_url(value)
258
300
  case value
259
301
  when true then "1"
@@ -264,9 +306,9 @@ module ActiveRecord
264
306
  rescue
265
307
  ""
266
308
  end
267
-
309
+
268
310
  end
269
-
311
+
270
312
  end
271
313
  end
272
314
 
@@ -9,10 +9,10 @@ def make_tableless_model(database = nil, nested = nil)
9
9
  #{database ? "has_no_table :database => :#{database}" : 'has_no_table'}
10
10
  column :id, :integer
11
11
  column :name, :string
12
- #{if nested
12
+ #{if nested
13
13
  '
14
14
  has_many :arm_rests
15
- accepts_nested_attributes_for :arm_rests
15
+ accepts_nested_attributes_for :arm_rests
16
16
  '
17
17
  end}
18
18
  end
@@ -93,7 +93,8 @@ end
93
93
  shared_examples_for "a tableless model with fail_fast" do
94
94
  it_behaves_like "an active record"
95
95
  describe "class" do
96
- if ActiveRecord::VERSION::STRING < "3.0"
96
+ case ActiveRecord::VERSION::MAJOR
97
+ when 2
97
98
  describe "#find" do
98
99
  it "raises ActiveRecord::Tableless::NoDatabase" do
99
100
  expect { Chair.find(1) }.to raise_exception(ActiveRecord::Tableless::NoDatabase)
@@ -104,12 +105,23 @@ shared_examples_for "a tableless model with fail_fast" do
104
105
  expect { Chair.find(:all) }.to raise_exception(ActiveRecord::Tableless::NoDatabase)
105
106
  end
106
107
  end
107
- else ## ActiveRecord::VERSION::STRING >= "3.0"
108
+ when 3
108
109
  describe "#all" do
109
110
  it "raises ActiveRecord::Tableless::NoDatabase" do
110
111
  expect { Chair.all }.to raise_exception(ActiveRecord::Tableless::NoDatabase)
111
112
  end
112
113
  end
114
+ when 4
115
+ describe "#all" do
116
+ it "raises ActiveRecord::Tableless::NoDatabase" do
117
+ expect { Chair.all }.to_not raise_exception
118
+ end
119
+ end
120
+ describe "#all[]" do
121
+ it "raises ActiveRecord::Tableless::NoDatabase" do
122
+ expect { Chair.all[0] }.to raise_exception(ActiveRecord::Tableless::NoDatabase)
123
+ end
124
+ end
113
125
  end
114
126
  describe "#create" do
115
127
  it "raises ActiveRecord::Tableless::NoDatabase" do
@@ -180,7 +192,7 @@ describe "Tableless nested with fail_fast" do
180
192
  end
181
193
  describe "with nested attributes" do
182
194
  subject do
183
- Chair.new(:name => "Jarl",
195
+ Chair.new(:name => "Jarl",
184
196
  :arm_rests_attributes => [
185
197
  {:name => 'left'},
186
198
  {:name => 'right'},
@@ -205,7 +217,8 @@ end
205
217
  shared_examples_for "a succeeding database" do
206
218
  it_behaves_like "an active record"
207
219
  describe "class" do
208
- if ActiveRecord::VERSION::STRING < "3.0"
220
+ case ActiveRecord::VERSION::MAJOR
221
+ when 2
209
222
  describe "#find" do
210
223
  it "raises ActiveRecord::RecordNotFound" do
211
224
  expect { Chair.find(314) }.to raise_exception(ActiveRecord::RecordNotFound)
@@ -214,7 +227,7 @@ shared_examples_for "a succeeding database" do
214
227
  describe "#find(:all)" do
215
228
  specify { Chair.find(:all).should == []}
216
229
  end
217
- else ## ActiveRecord::VERSION::STRING >= "3.0"
230
+ when 3, 4
218
231
  describe "#all" do
219
232
  specify { Chair.all.should == []}
220
233
  end
@@ -252,7 +265,7 @@ describe "Active record with real database" do
252
265
  ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => 'tmp/test.db')
253
266
  ActiveRecord::Base.connection.execute("drop table if exists chairs")
254
267
  ActiveRecord::Base.connection.execute("create table chairs (id INTEGER PRIMARY KEY, name TEXT )")
255
-
268
+
256
269
  class Chair < ActiveRecord::Base
257
270
  end
258
271
  end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-tableless
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
5
- prerelease:
4
+ version: 1.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jarl Friis
@@ -11,60 +10,53 @@ authors:
11
10
  autorequire:
12
11
  bindir: bin
13
12
  cert_chain: []
14
- date: 2013-02-26 00:00:00.000000000 Z
13
+ date: 2013-09-23 00:00:00.000000000 Z
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: activerecord
18
17
  requirement: !ruby/object:Gem::Requirement
19
- none: false
20
18
  requirements:
21
- - - ! '>='
19
+ - - '>='
22
20
  - !ruby/object:Gem::Version
23
21
  version: 2.3.0
24
22
  type: :runtime
25
23
  prerelease: false
26
24
  version_requirements: !ruby/object:Gem::Requirement
27
- none: false
28
25
  requirements:
29
- - - ! '>='
26
+ - - '>='
30
27
  - !ruby/object:Gem::Version
31
28
  version: 2.3.0
32
29
  - !ruby/object:Gem::Dependency
33
30
  name: bundler
34
31
  requirement: !ruby/object:Gem::Requirement
35
- none: false
36
32
  requirements:
37
- - - ! '>='
33
+ - - '>='
38
34
  - !ruby/object:Gem::Version
39
35
  version: '0'
40
36
  type: :development
41
37
  prerelease: false
42
38
  version_requirements: !ruby/object:Gem::Requirement
43
- none: false
44
39
  requirements:
45
- - - ! '>='
40
+ - - '>='
46
41
  - !ruby/object:Gem::Version
47
42
  version: '0'
48
43
  - !ruby/object:Gem::Dependency
49
44
  name: rake
50
45
  requirement: !ruby/object:Gem::Requirement
51
- none: false
52
46
  requirements:
53
- - - ! '>='
47
+ - - '>='
54
48
  - !ruby/object:Gem::Version
55
49
  version: '0'
56
50
  type: :development
57
51
  prerelease: false
58
52
  version_requirements: !ruby/object:Gem::Requirement
59
- none: false
60
53
  requirements:
61
- - - ! '>='
54
+ - - '>='
62
55
  - !ruby/object:Gem::Version
63
56
  version: '0'
64
57
  - !ruby/object:Gem::Dependency
65
58
  name: sqlite3
66
59
  requirement: !ruby/object:Gem::Requirement
67
- none: false
68
60
  requirements:
69
61
  - - ~>
70
62
  - !ruby/object:Gem::Version
@@ -72,7 +64,6 @@ dependencies:
72
64
  type: :development
73
65
  prerelease: false
74
66
  version_requirements: !ruby/object:Gem::Requirement
75
- none: false
76
67
  requirements:
77
68
  - - ~>
78
69
  - !ruby/object:Gem::Version
@@ -80,7 +71,6 @@ dependencies:
80
71
  - !ruby/object:Gem::Dependency
81
72
  name: appraisal
82
73
  requirement: !ruby/object:Gem::Requirement
83
- none: false
84
74
  requirements:
85
75
  - - ~>
86
76
  - !ruby/object:Gem::Version
@@ -88,7 +78,6 @@ dependencies:
88
78
  type: :development
89
79
  prerelease: false
90
80
  version_requirements: !ruby/object:Gem::Requirement
91
- none: false
92
81
  requirements:
93
82
  - - ~>
94
83
  - !ruby/object:Gem::Version
@@ -96,7 +85,6 @@ dependencies:
96
85
  - !ruby/object:Gem::Dependency
97
86
  name: cucumber
98
87
  requirement: !ruby/object:Gem::Requirement
99
- none: false
100
88
  requirements:
101
89
  - - ~>
102
90
  - !ruby/object:Gem::Version
@@ -104,7 +92,6 @@ dependencies:
104
92
  type: :development
105
93
  prerelease: false
106
94
  version_requirements: !ruby/object:Gem::Requirement
107
- none: false
108
95
  requirements:
109
96
  - - ~>
110
97
  - !ruby/object:Gem::Version
@@ -112,83 +99,73 @@ dependencies:
112
99
  - !ruby/object:Gem::Dependency
113
100
  name: rspec
114
101
  requirement: !ruby/object:Gem::Requirement
115
- none: false
116
102
  requirements:
117
- - - ! '>='
103
+ - - '>='
118
104
  - !ruby/object:Gem::Version
119
105
  version: '0'
120
106
  type: :development
121
107
  prerelease: false
122
108
  version_requirements: !ruby/object:Gem::Requirement
123
- none: false
124
109
  requirements:
125
- - - ! '>='
110
+ - - '>='
126
111
  - !ruby/object:Gem::Version
127
112
  version: '0'
128
113
  - !ruby/object:Gem::Dependency
129
- name: launchy
114
+ name: aruba
130
115
  requirement: !ruby/object:Gem::Requirement
131
- none: false
132
116
  requirements:
133
- - - ~>
117
+ - - '>='
134
118
  - !ruby/object:Gem::Version
135
- version: '2.1'
119
+ version: '0.5'
136
120
  type: :development
137
121
  prerelease: false
138
122
  version_requirements: !ruby/object:Gem::Requirement
139
- none: false
140
123
  requirements:
141
- - - ~>
124
+ - - '>='
142
125
  - !ruby/object:Gem::Version
143
- version: '2.1'
126
+ version: '0.5'
144
127
  - !ruby/object:Gem::Dependency
145
- name: aruba
128
+ name: capybara
146
129
  requirement: !ruby/object:Gem::Requirement
147
- none: false
148
130
  requirements:
149
- - - ! '>='
131
+ - - '>='
150
132
  - !ruby/object:Gem::Version
151
- version: '0.5'
133
+ version: '0'
152
134
  type: :development
153
135
  prerelease: false
154
136
  version_requirements: !ruby/object:Gem::Requirement
155
- none: false
156
137
  requirements:
157
- - - ! '>='
138
+ - - '>='
158
139
  - !ruby/object:Gem::Version
159
- version: '0.5'
140
+ version: '0'
160
141
  - !ruby/object:Gem::Dependency
161
- name: capybara
142
+ name: nokogiri
162
143
  requirement: !ruby/object:Gem::Requirement
163
- none: false
164
144
  requirements:
165
- - - ! '>='
145
+ - - <
166
146
  - !ruby/object:Gem::Version
167
- version: '0'
147
+ version: '1.6'
168
148
  type: :development
169
149
  prerelease: false
170
150
  version_requirements: !ruby/object:Gem::Requirement
171
- none: false
172
151
  requirements:
173
- - - ! '>='
152
+ - - <
174
153
  - !ruby/object:Gem::Version
175
- version: '0'
154
+ version: '1.6'
176
155
  - !ruby/object:Gem::Dependency
177
- name: debugger
156
+ name: capybara
178
157
  requirement: !ruby/object:Gem::Requirement
179
- none: false
180
158
  requirements:
181
- - - ! '>='
159
+ - - <
182
160
  - !ruby/object:Gem::Version
183
- version: '0'
161
+ version: '2.1'
184
162
  type: :development
185
163
  prerelease: false
186
164
  version_requirements: !ruby/object:Gem::Requirement
187
- none: false
188
165
  requirements:
189
- - - ! '>='
166
+ - - <
190
167
  - !ruby/object:Gem::Version
191
- version: '0'
168
+ version: '2.1'
192
169
  description: ActiveRecord Tableless Models provides a simple mixin for creating models
193
170
  that are not bound to the database. This approach is mostly useful for capitalizing
194
171
  on the features ActiveRecord::Validation
@@ -200,6 +177,7 @@ extra_rdoc_files: []
200
177
  files:
201
178
  - .gitignore
202
179
  - .rspec
180
+ - .travis.yml
203
181
  - Appraisals
204
182
  - Gemfile
205
183
  - README.md
@@ -217,38 +195,32 @@ files:
217
195
  - gemfiles/rails30.gemfile
218
196
  - gemfiles/rails32.gemfile
219
197
  - gemfiles/rails3x.gemfile
198
+ - gemfiles/rails40.gemfile
220
199
  - init.rb
221
200
  - lib/activerecord-tableless.rb
222
201
  - spec/lib/activerecord-tableless_spec.rb
223
202
  homepage: https://github.com/softace/activerecord-tableless
224
203
  licenses: []
204
+ metadata: {}
225
205
  post_install_message:
226
206
  rdoc_options: []
227
207
  require_paths:
228
208
  - lib
229
209
  required_ruby_version: !ruby/object:Gem::Requirement
230
- none: false
231
210
  requirements:
232
- - - ! '>='
211
+ - - '>='
233
212
  - !ruby/object:Gem::Version
234
213
  version: '0'
235
- segments:
236
- - 0
237
- hash: 698122787109263404
238
214
  required_rubygems_version: !ruby/object:Gem::Requirement
239
- none: false
240
215
  requirements:
241
- - - ! '>='
216
+ - - '>='
242
217
  - !ruby/object:Gem::Version
243
218
  version: '0'
244
- segments:
245
- - 0
246
- hash: 698122787109263404
247
219
  requirements: []
248
220
  rubyforge_project:
249
- rubygems_version: 1.8.24
221
+ rubygems_version: 2.0.3
250
222
  signing_key:
251
- specification_version: 3
223
+ specification_version: 4
252
224
  summary: A library for implementing tableless ActiveRecord models
253
225
  test_files:
254
226
  - features/basic_integration.feature