active_table 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,9 +7,22 @@ module ActiveTable
7
7
  def self.active_table(&block)
8
8
  @table = {}
9
9
  block.call
10
- create_table!
11
- self.reset_column_information
12
- self.define_attribute_methods
10
+ unless model_loaded?
11
+ create_table!
12
+ self.reset_column_information
13
+ self.define_attribute_methods
14
+ model_loaded!
15
+ end
16
+ end
17
+
18
+ def self.model_loaded!
19
+ return unless defined?(Rails)
20
+ Rails.active_table_loaded_model_names << self.name
21
+ end
22
+
23
+ def self.model_loaded?
24
+ return false unless defined?(Rails)
25
+ Rails.active_table_loaded_model_names.include?(self.name)
13
26
  end
14
27
 
15
28
  def self.create_table(name, options = {}, &block)
@@ -0,0 +1,11 @@
1
+ module ActiveTable::Application
2
+ attr_accessor :active_table_loaded_model_names
3
+ end
4
+
5
+ module Rails
6
+ extend ActiveTable::Application
7
+ end
8
+
9
+ Rails.active_table_loaded_model_names ||= []
10
+
11
+
@@ -2,14 +2,14 @@ require "pathname"
2
2
 
3
3
  module ActiveTable
4
4
  class Railtie < Rails::Railtie
5
- initializer "active_table", :after => "casebook2_extensions" do
5
+ initializer "active_table" do
6
6
  model_path = Pathname.new("#{Rails.root}/app/models")
7
7
  Dir.glob("#{Rails.root}/app/models/**/*.rb").each do |file|
8
8
  File.open(file).readlines.each do |line|
9
9
  if (line =~ /ActiveTable::Base/)
10
10
  file_path = Pathname.new(file)
11
11
  ActiveTable::Base.add_detected_file(file_path.relative_path_from(model_path).to_s)
12
- require file if Rails.env.dev?
12
+ require file if Rails.env.development?
13
13
  next
14
14
  end
15
15
  end
@@ -1,3 +1,3 @@
1
1
  module ActiveTable
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/lib/active_table.rb CHANGED
@@ -2,3 +2,4 @@ require 'active_record'
2
2
 
3
3
  require 'active_table/base'
4
4
  require 'active_table/railtie' if defined?(Rails)
5
+ require 'active_table/extensions/rails' if defined?(Rails)
metadata CHANGED
@@ -1,38 +1,56 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: active_table
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.0
3
+ version: !ruby/object:Gem::Version
4
+ hash: 25
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 1
10
+ version: 0.1.1
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Case Commons LLC
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2011-07-08 00:00:00.000000000 -04:00
13
- default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2011-07-11 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
16
21
  name: activerecord
17
- requirement: &2164666700 !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
18
24
  none: false
19
- requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 9
29
+ segments:
30
+ - 2
31
+ - 3
32
+ - 5
22
33
  version: 2.3.5
23
34
  - - <
24
- - !ruby/object:Gem::Version
35
+ - !ruby/object:Gem::Version
36
+ hash: 63
37
+ segments:
38
+ - 4
39
+ - 0
40
+ - 0
25
41
  version: 4.0.0
26
42
  type: :runtime
27
- prerelease: false
28
- version_requirements: *2164666700
43
+ version_requirements: *id001
29
44
  description: Dynamically-populated ActiveRecord models based on static data
30
- email:
45
+ email:
31
46
  - casecommons-dev@googlegroups.com
32
47
  executables: []
48
+
33
49
  extensions: []
50
+
34
51
  extra_rdoc_files: []
35
- files:
52
+
53
+ files:
36
54
  - .gitignore
37
55
  - Gemfile
38
56
  - README.md
@@ -43,35 +61,44 @@ files:
43
61
  - gemfiles/rspec2/Gemfile
44
62
  - lib/active_table.rb
45
63
  - lib/active_table/base.rb
64
+ - lib/active_table/extensions/rails.rb
46
65
  - lib/active_table/railtie.rb
47
66
  - lib/active_table/version.rb
48
67
  - spec/active_table_spec.rb
49
68
  - spec/spec_helper.rb
50
- has_rdoc: true
51
69
  homepage: https://github.com/Casecommons/active_table
52
70
  licenses: []
71
+
53
72
  post_install_message:
54
73
  rdoc_options: []
55
- require_paths:
74
+
75
+ require_paths:
56
76
  - lib
57
- required_ruby_version: !ruby/object:Gem::Requirement
77
+ required_ruby_version: !ruby/object:Gem::Requirement
58
78
  none: false
59
- requirements:
60
- - - ! '>='
61
- - !ruby/object:Gem::Version
62
- version: '0'
63
- required_rubygems_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ hash: 3
83
+ segments:
84
+ - 0
85
+ version: "0"
86
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
87
  none: false
65
- requirements:
66
- - - ! '>='
67
- - !ruby/object:Gem::Version
68
- version: '0'
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ hash: 3
92
+ segments:
93
+ - 0
94
+ version: "0"
69
95
  requirements: []
96
+
70
97
  rubyforge_project: active_table
71
- rubygems_version: 1.6.2
98
+ rubygems_version: 1.8.5
72
99
  signing_key:
73
100
  specification_version: 3
74
101
  summary: Dynamically-populated ActiveRecord models based on static data
75
- test_files:
102
+ test_files:
76
103
  - spec/active_table_spec.rb
77
104
  - spec/spec_helper.rb