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 CHANGED
@@ -13,6 +13,7 @@ group :development do
13
13
  gem "rspec", "~> 2.3.0"
14
14
  gem "bundler", "~> 1.0.0"
15
15
  gem "jeweler", "~> 1.5.2"
16
+ gem "ruby-debug19", "~> 0.11.6"
16
17
  end
17
18
 
18
19
  group :test do
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.5
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
- require 'pathname'
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] || :value
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
- :value
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
@@ -0,0 +1,5 @@
1
+ require_relative 'external_includes'
2
+
3
+ def as_class_name table_name
4
+ table_name.to_s.singularize.capitalize.to_sym
5
+ end
@@ -0,0 +1,5 @@
1
+ require 'pathname'
2
+ require 'find'
3
+ require 'active_support/inflector'
4
+ require 'active_record'
5
+ require 'json'
data/lib/get_table.rb CHANGED
@@ -1,4 +1,5 @@
1
- require 'active_record'
1
+ require 'external_includes'
2
+ require_relative 'as_class_name.rb'
2
3
 
3
4
  def get_table sym, *args
4
5
  class_name = as_class_name sym
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
- :value
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 default_column_name.to_s}
18
+ .collect {|x| x.send self.column_name.to_s}
18
19
  .collect {|x| get_table x}
19
20
  else
20
21
  []
@@ -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 == [Thing]
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(default_column_name => f).should_not nil
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
- Color.where(:column_name => f).should_not nil
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(default_column_name => v).should_not nil
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', 'gza', nil]
141
+ add_finites in_table: :wu_members, values: ['rza']
142
+ add_finites in_table: :wu_members, values: ['gza', nil]
135
143
  rescue
136
- ['rza', 'gza'].each do |w|
137
- get_table(:wu_members).where(default_column_name => w).should nil
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: ['delete', 'drop']
155
- delete_finites in_table: :adjs, values: ['delete']
156
- Adj.where(default_column_name => 'delete').should nil
157
- Adj.where(default_column_name => 'drop').should_not nil
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.1.5
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-04-23 00:00:00 -04:00
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: 611629043
132
+ hash: -272148465
119
133
  segments:
120
134
  - 0
121
135
  version: "0"