activerecord-utils 0.1.0 → 0.2.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.
- checksums.yaml +7 -0
- data/.gemtest +0 -0
- data/Manifest.txt +6 -0
- data/README.md +10 -7
- data/Rakefile +2 -2
- data/lib/activerecord/utils.rb +12 -97
- data/lib/activerecord/utils/alias.rb +71 -0
- data/lib/activerecord/utils/comp3.rb +21 -0
- data/lib/activerecord/utils/random.rb +27 -0
- data/lib/activerecord/utils/version.rb +2 -1
- data/test/helper.rb +90 -0
- data/test/test_finders.rb +24 -0
- data/test/test_random.rb +18 -0
- metadata +46 -17
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: eecd95d124a2fccb441fb7dfeafc2d5dc87c3679
|
4
|
+
data.tar.gz: ce9c1533eb2bd30b81bc0ba41b31fb4223c15bb3
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b3f887f9f2709b50bafe9b8ed500be5fece830ad71355f4c7e7d9baacaa41d1d10d42aca019b2be98f00b26445fb50f74d031ebc336928e561f57fa630cd9ec7
|
7
|
+
data.tar.gz: f036fddcc6990e7932b15d9ccbb29168214d58a12b6b5080e0e908cb084ca6d46f395fcd2f8b9f2d6f95f9f968108c7438ae9c025c2170149961955a92fa17b8
|
data/.gemtest
ADDED
File without changes
|
data/Manifest.txt
CHANGED
@@ -3,4 +3,10 @@ Manifest.txt
|
|
3
3
|
README.md
|
4
4
|
Rakefile
|
5
5
|
lib/activerecord/utils.rb
|
6
|
+
lib/activerecord/utils/alias.rb
|
7
|
+
lib/activerecord/utils/comp3.rb
|
8
|
+
lib/activerecord/utils/random.rb
|
6
9
|
lib/activerecord/utils/version.rb
|
10
|
+
test/helper.rb
|
11
|
+
test/test_finders.rb
|
12
|
+
test/test_random.rb
|
data/README.md
CHANGED
@@ -19,7 +19,7 @@ generates
|
|
19
19
|
def plato # reader
|
20
20
|
send( :og ) # e.g. return og
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
def plato=(value) # writer
|
24
24
|
send( :'og=', value ) # e.g. return self.og=value
|
25
25
|
end
|
@@ -32,20 +32,23 @@ generates
|
|
32
32
|
generates
|
33
33
|
|
34
34
|
def published
|
35
|
-
read_attribute_w_fallbacks( :published, :touched )
|
35
|
+
# e.g. read_attribute_w_fallbacks( :published, :touched ) - equals:
|
36
|
+
|
37
|
+
value = read_attribute( :published )
|
38
|
+
value = read_attribute( :touched ) if value.nil?
|
39
|
+
value
|
36
40
|
end
|
37
41
|
|
38
42
|
|
39
|
-
###
|
40
|
-
|
41
|
-
e.g. find random record e.g.
|
43
|
+
### `rnd` finder
|
42
44
|
|
45
|
+
Find random record e.g.:
|
43
46
|
|
44
47
|
beer_of_the_week = Beer.rnd
|
45
48
|
|
46
49
|
equals
|
47
50
|
|
48
|
-
beer_of_the_week = Beer.offset( rand( Beer.count) ).limit(1).first
|
51
|
+
beer_of_the_week = Beer.offset( rand( Beer.count ) ).limit(1).first
|
49
52
|
|
50
53
|
|
51
54
|
|
@@ -63,4 +66,4 @@ equals
|
|
63
66
|
## License
|
64
67
|
|
65
68
|
The scripts are dedicated to the public domain.
|
66
|
-
Use it as you please with no restrictions whatsoever.
|
69
|
+
Use it as you please with no restrictions whatsoever.
|
data/Rakefile
CHANGED
@@ -18,13 +18,13 @@ Hoe.spec 'activerecord-utils' do
|
|
18
18
|
self.history_file = 'History.md'
|
19
19
|
|
20
20
|
self.extra_deps = [
|
21
|
-
|
21
|
+
['logutils']
|
22
22
|
]
|
23
23
|
|
24
24
|
self.licenses = ['Public Domain']
|
25
25
|
|
26
26
|
self.spec_extras = {
|
27
|
-
:
|
27
|
+
required_ruby_version: '>= 1.9.2'
|
28
28
|
}
|
29
29
|
|
30
30
|
|
data/lib/activerecord/utils.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
|
2
|
-
|
3
2
|
require 'activerecord/utils/version' # let version always go first
|
4
3
|
|
5
4
|
|
@@ -8,14 +7,15 @@ module ActiveRecord
|
|
8
7
|
module Utils
|
9
8
|
|
10
9
|
def self.banner
|
11
|
-
|
10
|
+
## add ar PRE too? how?
|
11
|
+
ar = "activerecord/#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}.#{ActiveRecord::VERSION::TINY}"
|
12
|
+
"activerecord-utils/#{VERSION} (#{ar}) on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
|
12
13
|
end
|
13
14
|
|
14
|
-
=begin
|
15
15
|
def self.root
|
16
|
-
"#{File.expand_path( File.dirname(File.dirname(__FILE__)) )}"
|
16
|
+
"#{File.expand_path( File.dirname(File.dirname(File.dirname(__FILE__))) )}"
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
end # module Utils
|
20
20
|
|
21
21
|
end # module ActiveRecord
|
@@ -23,102 +23,17 @@ end # module ActiveRecord
|
|
23
23
|
|
24
24
|
########################
|
25
25
|
# add some methods to ActiveRecord::Base
|
26
|
-
#
|
27
26
|
# - todo: use Concerns ?? why? why not??
|
28
27
|
|
28
|
+
if ActiveRecord::VERSION::MAJOR == 3 # only add to 3.x series
|
29
|
+
require 'activerecord/utils/comp3'
|
30
|
+
end
|
29
31
|
|
30
|
-
|
31
|
-
|
32
|
-
### note:
|
33
|
-
## alias_method will NOT work for activerecord attributes
|
34
|
-
## - attribute reader/writer will NOT exist on startup
|
35
|
-
# thus, lets add a new alias_attr that will
|
36
|
-
# send message / forward method call on demand
|
37
|
-
#
|
38
|
-
# e.g. use like:
|
39
|
-
#
|
40
|
-
# alias_attr :abvii, :abv
|
41
|
-
|
42
|
-
##
|
43
|
-
# todo: add opts={} e.g. lets us add, for example, depreciated: true ??
|
44
|
-
# - will issue a warning
|
45
|
-
|
46
|
-
def self.alias_attr_reader( new, old )
|
47
|
-
define_method( new ) do
|
48
|
-
send( old )
|
49
|
-
### use read_attribute( old ) instead? why? why not??
|
50
|
-
# see http://www.davidverhasselt.com/2011/06/28/5-ways-to-set-attributes-in-activerecord/
|
51
|
-
end
|
52
|
-
## todo: check for boolean values - add new? version too ??
|
53
|
-
end
|
54
|
-
|
55
|
-
def self.alias_attr_writer( new, old )
|
56
|
-
define_method( "#{new}=" ) do |value|
|
57
|
-
send( "#{old}=", value )
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def self.alias_attr( new, old )
|
62
|
-
alias_attr_reader( new, old )
|
63
|
-
alias_attr_writer( new, old )
|
64
|
-
end
|
65
|
-
|
66
|
-
###################
|
67
|
-
#
|
68
|
-
#
|
69
|
-
# e.g. use like:
|
70
|
-
#
|
71
|
-
# def published
|
72
|
-
# read_attribute_w_fallbacks( :published, :touched )
|
73
|
-
# end
|
74
|
-
#
|
75
|
-
# or use macro e.g.
|
76
|
-
#
|
77
|
-
# attr_reader_w_fallbacks :published, :touched
|
78
|
-
|
79
|
-
|
80
|
-
def self.attr_reader_w_fallbacks( *keys )
|
81
|
-
define_method( keys[0] ) do
|
82
|
-
read_attribute_w_fallbacks( keys )
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
def read_attribute_w_fallbacks( *keys )
|
87
|
-
### todo: use a different name e.g.:
|
88
|
-
## read_attribute_cascade ?? - does anything like this exists already?
|
89
|
-
## why? why not?
|
90
|
-
keys.each do |key|
|
91
|
-
value = read_attribute( key )
|
92
|
-
return value unless value.nil?
|
93
|
-
end
|
94
|
-
value # fallthrough? return latest value (will be nil) --or return just nil - why? why not??
|
95
|
-
end
|
96
|
-
|
97
|
-
|
98
|
-
###############
|
99
|
-
# random
|
100
|
-
#
|
101
|
-
#
|
102
|
-
# e.g. use like:
|
103
|
-
#
|
104
|
-
# beer_of_the_week = Beer.rnd
|
105
|
-
|
106
|
-
|
107
|
-
def self.rnd
|
108
|
-
## works w/ sqlite3 and postgresql
|
109
|
-
## - check if it works w/ mysql/mariadb too ? suppots offset and limit in SQL?
|
110
|
-
|
111
|
-
## todo: use ::rand -- and lets add an self.rand alias too ??
|
112
|
-
## check if ::rand call works
|
113
|
-
rnd_offset = rand( self.count ) ## NB: call "global" std lib rand
|
114
|
-
|
115
|
-
self.offset( rnd_offset ).limit( 1 ).first
|
116
|
-
end
|
117
|
-
|
118
|
-
|
119
|
-
end # class ActiveRecord::Base
|
120
|
-
|
32
|
+
require 'activerecord/utils/alias'
|
33
|
+
require 'activerecord/utils/random'
|
121
34
|
|
122
35
|
|
123
36
|
puts ActiveRecord::Utils.banner # say hello
|
124
37
|
|
38
|
+
### puts "root: >#{ActiveRecord::Utils.root}<" # check root path (remove later)
|
39
|
+
|
@@ -0,0 +1,71 @@
|
|
1
|
+
|
2
|
+
module ActiveRecord
|
3
|
+
class Base
|
4
|
+
|
5
|
+
### note:
|
6
|
+
## alias_method will NOT work for activerecord attributes
|
7
|
+
## - attribute reader/writer will NOT exist on startup
|
8
|
+
# thus, lets add a new alias_attr that will
|
9
|
+
# send message / forward method call on demand
|
10
|
+
#
|
11
|
+
# e.g. use like:
|
12
|
+
#
|
13
|
+
# alias_attr :abvii, :abv
|
14
|
+
|
15
|
+
##
|
16
|
+
# todo: add opts={} e.g. lets us add, for example, depreciated: true ??
|
17
|
+
# - will issue a warning
|
18
|
+
|
19
|
+
def self.alias_attr_reader( new, old )
|
20
|
+
define_method( new ) do
|
21
|
+
send( old )
|
22
|
+
### use read_attribute( old ) instead? why? why not??
|
23
|
+
# see http://www.davidverhasselt.com/2011/06/28/5-ways-to-set-attributes-in-activerecord/
|
24
|
+
end
|
25
|
+
## todo: check for boolean values - add new? version too ??
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.alias_attr_writer( new, old )
|
29
|
+
define_method( "#{new}=" ) do |value|
|
30
|
+
send( "#{old}=", value )
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.alias_attr( new, old )
|
35
|
+
alias_attr_reader( new, old )
|
36
|
+
alias_attr_writer( new, old )
|
37
|
+
end
|
38
|
+
|
39
|
+
###################
|
40
|
+
#
|
41
|
+
#
|
42
|
+
# e.g. use like:
|
43
|
+
#
|
44
|
+
# def published
|
45
|
+
# read_attribute_w_fallbacks( :published, :touched )
|
46
|
+
# end
|
47
|
+
#
|
48
|
+
# or use macro e.g.
|
49
|
+
#
|
50
|
+
# attr_reader_w_fallbacks :published, :touched
|
51
|
+
|
52
|
+
|
53
|
+
def self.attr_reader_w_fallbacks( *keys )
|
54
|
+
define_method( keys[0] ) do
|
55
|
+
read_attribute_w_fallbacks( keys )
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def read_attribute_w_fallbacks( *keys )
|
60
|
+
### todo: use a different name e.g.:
|
61
|
+
## read_attribute_cascade ?? - does anything like this exists already?
|
62
|
+
## why? why not?
|
63
|
+
keys.each do |key|
|
64
|
+
value = read_attribute( key )
|
65
|
+
break unless value.nil? # if value.nil? == false
|
66
|
+
end
|
67
|
+
value # fallthrough -- return latest value (will be nil)
|
68
|
+
end
|
69
|
+
|
70
|
+
end # class Base
|
71
|
+
end # module ActiveRecord
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module ActiveRecord
|
4
|
+
class Base
|
5
|
+
|
6
|
+
###
|
7
|
+
# todo/fix:
|
8
|
+
# better check if responds_to? find_by! and find_by ???
|
9
|
+
puts " [ActiveRecord::Utils] adding find_by n find_by! finders for 3.x series"
|
10
|
+
|
11
|
+
## lets us use ActiveRecord 4-style find_by and find_by! in ActiveRecord 3.x
|
12
|
+
def self.find_by( hash )
|
13
|
+
self.where( hash ).first
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.find_by!( hash )
|
17
|
+
self.where( hash ).first! ## or use: first or raise RecordNotFound directly??
|
18
|
+
end
|
19
|
+
|
20
|
+
end # class Base
|
21
|
+
end # module ActiveRecord
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module ActiveRecord
|
4
|
+
class Base
|
5
|
+
|
6
|
+
###############
|
7
|
+
# random
|
8
|
+
#
|
9
|
+
#
|
10
|
+
# e.g. use like:
|
11
|
+
#
|
12
|
+
# beer_of_the_week = Beer.rnd
|
13
|
+
|
14
|
+
def self.rnd
|
15
|
+
## works w/ sqlite3 and postgresql
|
16
|
+
## - check if it works w/ mysql/mariadb too ? suppots offset and limit in SQL?
|
17
|
+
|
18
|
+
## todo: use ::rand -- and lets add an self.rand alias too ??
|
19
|
+
## check if ::rand call works
|
20
|
+
rnd_offset = rand( self.count ) ## NB: call "global" std lib rand
|
21
|
+
|
22
|
+
self.offset( rnd_offset ).limit( 1 ).first
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
end # class Base
|
27
|
+
end # module ActiveRecord
|
data/test/helper.rb
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
|
2
|
+
## $:.unshift(File.dirname(__FILE__))
|
3
|
+
|
4
|
+
## minitest setup
|
5
|
+
|
6
|
+
# require 'minitest/unit'
|
7
|
+
require 'minitest/autorun'
|
8
|
+
|
9
|
+
# include MiniTest::Unit # lets us use TestCase instead of MiniTest::Unit::TestCase
|
10
|
+
|
11
|
+
|
12
|
+
# ruby stdlibs
|
13
|
+
|
14
|
+
require 'json'
|
15
|
+
require 'uri'
|
16
|
+
require 'pp'
|
17
|
+
require 'logger'
|
18
|
+
|
19
|
+
# ruby gems
|
20
|
+
|
21
|
+
require 'active_record'
|
22
|
+
|
23
|
+
require 'logutils'
|
24
|
+
require 'logutils/db' # NB: explict require required for LogDb (not automatic)
|
25
|
+
|
26
|
+
|
27
|
+
# our own code
|
28
|
+
|
29
|
+
require 'activerecord/utils'
|
30
|
+
|
31
|
+
|
32
|
+
class Beer < ActiveRecord::Base
|
33
|
+
alias_attr :abvii, :abv
|
34
|
+
alias_attr_reader :abvread, :abv
|
35
|
+
alias_attr_writer :abvwrite, :abv
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
|
40
|
+
class CreateBeerDb
|
41
|
+
|
42
|
+
def up
|
43
|
+
ActiveRecord::Schema.define do
|
44
|
+
|
45
|
+
create_table :beers do |t|
|
46
|
+
t.string :key, null: false
|
47
|
+
t.string :name, null: false
|
48
|
+
|
49
|
+
t.string :web # optional url link (e.g. )
|
50
|
+
t.integer :since # optional year (e.g. 1896)
|
51
|
+
|
52
|
+
t.decimal :abv # Alcohol by volume (abbreviated as ABV, abv, or alc/vol) e.g. 4.9 %
|
53
|
+
t.decimal :og # malt extract (original gravity) in plato
|
54
|
+
|
55
|
+
t.timestamps
|
56
|
+
end
|
57
|
+
end # Schema.define
|
58
|
+
end # method up
|
59
|
+
|
60
|
+
end # class CreateMovieDb
|
61
|
+
|
62
|
+
|
63
|
+
|
64
|
+
def setup_in_memory_db
|
65
|
+
# Database Setup & Config
|
66
|
+
|
67
|
+
db_config = {
|
68
|
+
adapter: 'sqlite3',
|
69
|
+
database: ':memory:'
|
70
|
+
}
|
71
|
+
|
72
|
+
pp db_config
|
73
|
+
|
74
|
+
ActiveRecord::Base.logger = Logger.new( STDOUT )
|
75
|
+
## ActiveRecord::Base.colorize_logging = false - no longer exists - check new api/config setting?
|
76
|
+
|
77
|
+
## NB: every connect will create a new empty in memory db
|
78
|
+
ActiveRecord::Base.establish_connection( db_config )
|
79
|
+
|
80
|
+
|
81
|
+
## build schema
|
82
|
+
LogDb.create
|
83
|
+
CreateBeerDb.new.up
|
84
|
+
|
85
|
+
Beer.create!( key: 'ottakringerhelles', name: 'Ottakringer Helles' )
|
86
|
+
Beer.create!( key: 'ottakringerzwicklrot', name: 'Ottakringer Zwickl Rot' )
|
87
|
+
end
|
88
|
+
|
89
|
+
|
90
|
+
setup_in_memory_db()
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'helper'
|
4
|
+
|
5
|
+
class TestFinders < MiniTest::Unit::TestCase
|
6
|
+
|
7
|
+
|
8
|
+
def test_find_by
|
9
|
+
b = Beer.find_by( key: 'ottakringerhelles' )
|
10
|
+
assert_equal 'Ottakringer Helles', b.name
|
11
|
+
|
12
|
+
b = Beer.find_by( key: 'zwettlerdunkles' )
|
13
|
+
assert_equal nil, b
|
14
|
+
|
15
|
+
b = Beer.find_by!( key: 'ottakringerhelles' )
|
16
|
+
assert_equal 'Ottakringer Helles', b.name
|
17
|
+
|
18
|
+
## fix/todo: add
|
19
|
+
## raises RecordNotfound
|
20
|
+
## b = Beer.find_by!( key: 'zwettlerdunkles' )
|
21
|
+
end
|
22
|
+
|
23
|
+
end # class TestFinders
|
24
|
+
|
data/test/test_random.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'helper'
|
4
|
+
|
5
|
+
class TestRandom < MiniTest::Unit::TestCase
|
6
|
+
|
7
|
+
def test_rnd
|
8
|
+
b = Beer.rnd
|
9
|
+
assert_equal false, b.name.blank?
|
10
|
+
assert_equal false, b.key.blank?
|
11
|
+
|
12
|
+
## try another
|
13
|
+
b = Beer.rnd
|
14
|
+
assert_equal false, b.name.blank?
|
15
|
+
assert_equal false, b.key.blank?
|
16
|
+
end
|
17
|
+
|
18
|
+
end # class TestRandom
|
metadata
CHANGED
@@ -1,54 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Gerald Bauer
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-04-15 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: logutils
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ! '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
14
27
|
- !ruby/object:Gem::Dependency
|
15
28
|
name: rdoc
|
16
|
-
requirement:
|
17
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
18
30
|
requirements:
|
19
31
|
- - ~>
|
20
32
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
33
|
+
version: '4.0'
|
22
34
|
type: :development
|
23
35
|
prerelease: false
|
24
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '4.0'
|
25
41
|
- !ruby/object:Gem::Dependency
|
26
42
|
name: hoe
|
27
|
-
requirement:
|
28
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
29
44
|
requirements:
|
30
45
|
- - ~>
|
31
46
|
- !ruby/object:Gem::Version
|
32
|
-
version: '3.
|
47
|
+
version: '3.10'
|
33
48
|
type: :development
|
34
49
|
prerelease: false
|
35
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.10'
|
36
55
|
description: activerecord-utils - utilities (e.g. random, alias_attr, etc.) for activerecord
|
37
56
|
email: webslideshow@googlegroups.com
|
38
57
|
executables: []
|
39
58
|
extensions: []
|
40
59
|
extra_rdoc_files:
|
60
|
+
- History.md
|
41
61
|
- Manifest.txt
|
62
|
+
- README.md
|
42
63
|
files:
|
43
64
|
- History.md
|
44
65
|
- Manifest.txt
|
45
66
|
- README.md
|
46
67
|
- Rakefile
|
47
68
|
- lib/activerecord/utils.rb
|
69
|
+
- lib/activerecord/utils/alias.rb
|
70
|
+
- lib/activerecord/utils/comp3.rb
|
71
|
+
- lib/activerecord/utils/random.rb
|
48
72
|
- lib/activerecord/utils/version.rb
|
73
|
+
- test/helper.rb
|
74
|
+
- test/test_finders.rb
|
75
|
+
- test/test_random.rb
|
76
|
+
- .gemtest
|
49
77
|
homepage: https://github.com/rubylibs/activerecord-utils
|
50
78
|
licenses:
|
51
79
|
- Public Domain
|
80
|
+
metadata: {}
|
52
81
|
post_install_message:
|
53
82
|
rdoc_options:
|
54
83
|
- --main
|
@@ -56,21 +85,21 @@ rdoc_options:
|
|
56
85
|
require_paths:
|
57
86
|
- lib
|
58
87
|
required_ruby_version: !ruby/object:Gem::Requirement
|
59
|
-
none: false
|
60
88
|
requirements:
|
61
89
|
- - ! '>='
|
62
90
|
- !ruby/object:Gem::Version
|
63
91
|
version: 1.9.2
|
64
92
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
93
|
requirements:
|
67
94
|
- - ! '>='
|
68
95
|
- !ruby/object:Gem::Version
|
69
96
|
version: '0'
|
70
97
|
requirements: []
|
71
|
-
rubyforge_project:
|
72
|
-
rubygems_version: 1.
|
98
|
+
rubyforge_project:
|
99
|
+
rubygems_version: 2.1.10
|
73
100
|
signing_key:
|
74
|
-
specification_version:
|
101
|
+
specification_version: 4
|
75
102
|
summary: activerecord-utils - utilities (e.g. random, alias_attr, etc.) for activerecord
|
76
|
-
test_files:
|
103
|
+
test_files:
|
104
|
+
- test/test_finders.rb
|
105
|
+
- test/test_random.rb
|