active_finite 0.1.5 → 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.
- 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"
|