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 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"