active_finite 0.1.5 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -0
- data/VERSION +1 -1
- data/active_finite.gemspec +76 -0
- data/lib/active_finite.rb +4 -11
- data/lib/as_class_name.rb +5 -0
- data/lib/external_includes.rb +5 -0
- data/lib/get_table.rb +2 -1
- data/lib/master_table.rb +3 -2
- data/spec/active_finite_spec.rb +34 -13
- metadata +17 -3
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{active_finite}
|
8
|
+
s.version = "0.2.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["me"]
|
12
|
+
s.date = %q{2011-07-03}
|
13
|
+
s.description = %q{longer description of your gem}
|
14
|
+
s.email = %q{me@stuffihavemade.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE.txt",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
"Gemfile",
|
22
|
+
"LICENSE.txt",
|
23
|
+
"README.rdoc",
|
24
|
+
"Rakefile",
|
25
|
+
"VERSION",
|
26
|
+
"active_finite.gemspec",
|
27
|
+
"lib/active_finite.rb",
|
28
|
+
"lib/as_class_name.rb",
|
29
|
+
"lib/external_includes.rb",
|
30
|
+
"lib/get_table.rb",
|
31
|
+
"lib/master_table.rb",
|
32
|
+
"spec/active_finite_spec.rb",
|
33
|
+
"spec/spec_helper.rb",
|
34
|
+
"spec/villans.json"
|
35
|
+
]
|
36
|
+
s.homepage = %q{http://github.com/r4pdevteam/active_finite}
|
37
|
+
s.licenses = ["MIT"]
|
38
|
+
s.require_paths = ["lib"]
|
39
|
+
s.rubygems_version = %q{1.5.0}
|
40
|
+
s.summary = %q{one-line summary of your gem}
|
41
|
+
s.test_files = [
|
42
|
+
"spec/active_finite_spec.rb",
|
43
|
+
"spec/spec_helper.rb"
|
44
|
+
]
|
45
|
+
|
46
|
+
if s.respond_to? :specification_version then
|
47
|
+
s.specification_version = 3
|
48
|
+
|
49
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
50
|
+
s.add_runtime_dependency(%q<activesupport>, ["~> 3.0.3"])
|
51
|
+
s.add_runtime_dependency(%q<activerecord>, ["~> 3.0.3"])
|
52
|
+
s.add_runtime_dependency(%q<json>, ["~> 1.5.1"])
|
53
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
54
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
55
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
56
|
+
s.add_development_dependency(%q<ruby-debug19>, ["~> 0.11.6"])
|
57
|
+
else
|
58
|
+
s.add_dependency(%q<activesupport>, ["~> 3.0.3"])
|
59
|
+
s.add_dependency(%q<activerecord>, ["~> 3.0.3"])
|
60
|
+
s.add_dependency(%q<json>, ["~> 1.5.1"])
|
61
|
+
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
62
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
63
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
64
|
+
s.add_dependency(%q<ruby-debug19>, ["~> 0.11.6"])
|
65
|
+
end
|
66
|
+
else
|
67
|
+
s.add_dependency(%q<activesupport>, ["~> 3.0.3"])
|
68
|
+
s.add_dependency(%q<activerecord>, ["~> 3.0.3"])
|
69
|
+
s.add_dependency(%q<json>, ["~> 1.5.1"])
|
70
|
+
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
71
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
72
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
73
|
+
s.add_dependency(%q<ruby-debug19>, ["~> 0.11.6"])
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
data/lib/active_finite.rb
CHANGED
@@ -1,8 +1,4 @@
|
|
1
|
-
|
2
|
-
require 'find'
|
3
|
-
require 'active_support/inflector'
|
4
|
-
require 'active_record'
|
5
|
-
require 'json'
|
1
|
+
require_relative 'external_includes.rb'
|
6
2
|
require_relative 'master_table.rb'
|
7
3
|
require_relative 'get_table.rb'
|
8
4
|
|
@@ -65,7 +61,7 @@ def modify_finite args
|
|
65
61
|
end
|
66
62
|
file_name = args[:from_file]
|
67
63
|
values = args[:values]
|
68
|
-
column_name = args[:column_name] ||
|
64
|
+
column_name = args[:column_name] || default_column_name(table_name)
|
69
65
|
if values.nil? and file_name.nil?
|
70
66
|
raise 'Either :from_file or :values must be specified.'
|
71
67
|
end
|
@@ -85,10 +81,7 @@ def modify_finite args
|
|
85
81
|
end
|
86
82
|
end
|
87
83
|
|
88
|
-
def default_column_name
|
89
|
-
|
84
|
+
def default_column_name table_name
|
85
|
+
table_name.to_s.singularize.to_sym
|
90
86
|
end
|
91
87
|
|
92
|
-
def as_class_name table_name
|
93
|
-
table_name.to_s.singularize.capitalize.to_sym
|
94
|
-
end
|
data/lib/get_table.rb
CHANGED
data/lib/master_table.rb
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
require_relative 'get_table.rb'
|
2
|
+
require_relative 'external_includes.rb'
|
2
3
|
|
3
4
|
module MasterTable
|
4
5
|
def self.table_name
|
5
6
|
:active_finites
|
6
7
|
end
|
7
8
|
def self.column_name
|
8
|
-
|
9
|
+
default_column_name self.table_name
|
9
10
|
end
|
10
11
|
def self.table
|
11
12
|
get_table self.table_name
|
@@ -14,7 +15,7 @@ module MasterTable
|
|
14
15
|
if self.table.table_exists?
|
15
16
|
self.table
|
16
17
|
.all
|
17
|
-
.collect {|x| x.send
|
18
|
+
.collect {|x| x.send self.column_name.to_s}
|
18
19
|
.collect {|x| get_table x}
|
19
20
|
else
|
20
21
|
[]
|
data/spec/active_finite_spec.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'ruby-debug'
|
1
2
|
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
3
|
|
3
4
|
def reconnect
|
@@ -75,7 +76,7 @@ describe 'all_finite_tables' do
|
|
75
76
|
column_name: :column,
|
76
77
|
values: ["bye"]
|
77
78
|
|
78
|
-
all_finite_tables.should
|
79
|
+
all_finite_tables.should eql [Thing]
|
79
80
|
end
|
80
81
|
end
|
81
82
|
|
@@ -94,12 +95,18 @@ describe 'add_finites' do
|
|
94
95
|
before :each do
|
95
96
|
reconnect
|
96
97
|
end
|
98
|
+
it 'by default, creates a column with the same name as the table' do
|
99
|
+
finites = ['red']
|
100
|
+
add_finites in_table: :colors, values: finites
|
101
|
+
Color.where(:color => :red).limit(1).first.color.should eql "red"
|
102
|
+
end
|
103
|
+
|
97
104
|
it 'adds finites as rows to the database' do
|
98
105
|
finites = ['red', 'blue', 'green']
|
99
106
|
add_finites in_table: :colors, values: finites
|
100
107
|
|
101
108
|
finites.each do |f|
|
102
|
-
Color.where(
|
109
|
+
Color.where(:color => f).limit(1).first.color.should eql f.to_s
|
103
110
|
end
|
104
111
|
end
|
105
112
|
|
@@ -115,7 +122,7 @@ describe 'add_finites' do
|
|
115
122
|
column_name: :column_name
|
116
123
|
|
117
124
|
finites.each do |f|
|
118
|
-
|
125
|
+
Character.where(:column_name => f).limit(1).first.column_name.should eql f.to_s
|
119
126
|
end
|
120
127
|
end
|
121
128
|
|
@@ -125,16 +132,17 @@ describe 'add_finites' do
|
|
125
132
|
from_file: file_path
|
126
133
|
|
127
134
|
['scaramanga', 'no', 'janus'].each do |v|
|
128
|
-
Villan.where(
|
135
|
+
Villan.where(:villan => v).limit(1).first.villan.should eql v
|
129
136
|
end
|
130
137
|
end
|
131
138
|
|
132
139
|
it 'will fail atomically' do
|
133
140
|
begin
|
134
|
-
add_finites in_table: :wu_members, values: ['rza'
|
141
|
+
add_finites in_table: :wu_members, values: ['rza']
|
142
|
+
add_finites in_table: :wu_members, values: ['gza', nil]
|
135
143
|
rescue
|
136
|
-
['
|
137
|
-
get_table(:wu_members).where(
|
144
|
+
['gza'].each do |w|
|
145
|
+
get_table(:wu_members).where(:wu_member => w).limit(1).first.should nil
|
138
146
|
end
|
139
147
|
end
|
140
148
|
end
|
@@ -151,15 +159,28 @@ describe 'delete_finites' do
|
|
151
159
|
end
|
152
160
|
|
153
161
|
it 'can delete previously added finites' do
|
154
|
-
add_finites in_table: :adjs, values: ['
|
155
|
-
|
156
|
-
|
157
|
-
Adj.where(
|
162
|
+
add_finites in_table: :adjs, values: ['drop', 'delete']
|
163
|
+
Adj.where(:adj => 'drop').limit(1).first.adj.should eql 'drop'
|
164
|
+
delete_finites in_table: :adjs, values: ['drop']
|
165
|
+
Adj.where(:adj => 'drop').limit(1).size.should eql 0
|
166
|
+
end
|
167
|
+
|
168
|
+
it 'can use a different column name' do
|
169
|
+
finites = ['mickey', 'donald', 'scrooge']
|
170
|
+
add_finites in_table: :characters,
|
171
|
+
values: finites,
|
172
|
+
column_name: :column_name
|
173
|
+
|
174
|
+
delete_finites in_table: :characters,
|
175
|
+
values: ['mickey'],
|
176
|
+
column_name: :column_name
|
177
|
+
|
178
|
+
Character.where(:column_name => 'mickey').limit(1).size.should eql 0
|
158
179
|
end
|
159
180
|
|
160
181
|
it 'will remove the table if there are no finites left' do
|
161
|
-
add_finites in_table: :deletes, values: ['delete']
|
162
|
-
delete_finites in_table: :deletes, values: ['delete']
|
182
|
+
add_finites in_table: :deletes, column_name: :value, values: ['delete']
|
183
|
+
delete_finites in_table: :deletes, column_name: :value, values: ['delete']
|
163
184
|
Object.const_defined?(:Delete).should_not be true
|
164
185
|
end
|
165
186
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: active_finite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.2.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- me
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-07-03 00:00:00 -04:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -79,6 +79,17 @@ dependencies:
|
|
79
79
|
type: :development
|
80
80
|
prerelease: false
|
81
81
|
version_requirements: *id006
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: ruby-debug19
|
84
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.11.6
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: *id007
|
82
93
|
description: longer description of your gem
|
83
94
|
email: me@stuffihavemade.com
|
84
95
|
executables: []
|
@@ -95,7 +106,10 @@ files:
|
|
95
106
|
- README.rdoc
|
96
107
|
- Rakefile
|
97
108
|
- VERSION
|
109
|
+
- active_finite.gemspec
|
98
110
|
- lib/active_finite.rb
|
111
|
+
- lib/as_class_name.rb
|
112
|
+
- lib/external_includes.rb
|
99
113
|
- lib/get_table.rb
|
100
114
|
- lib/master_table.rb
|
101
115
|
- spec/active_finite_spec.rb
|
@@ -115,7 +129,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
115
129
|
requirements:
|
116
130
|
- - ">="
|
117
131
|
- !ruby/object:Gem::Version
|
118
|
-
hash:
|
132
|
+
hash: -272148465
|
119
133
|
segments:
|
120
134
|
- 0
|
121
135
|
version: "0"
|