extend_at 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  .directory
2
2
  *~
3
3
  *Gemfile.lock
4
+ *.sqlite3
data/.rspec CHANGED
@@ -1 +1,2 @@
1
- --color
1
+ --color
2
+ --format documentation
data/CHANGELOG.txt ADDED
@@ -0,0 +1,3 @@
1
+ 0.2.1:
2
+ * Fixed some problems.
3
+ * Internal functionality changed (preparing for association support like belongs_to)
data/README.markdown CHANGED
@@ -5,6 +5,7 @@ This gem allows you to extend models without migrations: This way you can, i.e.,
5
5
  ## Status:
6
6
 
7
7
  [![Build Status](https://secure.travis-ci.org/anga/extend_at.png)](http://travis-ci.org/anga/extend_at)
8
+ [![Still Maintained](http://stillmaintained.com/anga/extend_at.png)](http://stillmaintained.com/anga/extend_at)
8
9
 
9
10
  ## Installation
10
11
 
@@ -0,0 +1,57 @@
1
+ require File.expand_path('../environment', __FILE__)
2
+
3
+ module ExtendModelAt
4
+ class Configuration
5
+ def self.run(env=nil,model=nil)
6
+ return expand_options env, { :not_call_symbol => [:boolean], :not_expand => [:validate, :default] }, model if env.kind_of? Hash
7
+
8
+ if not env.kind_of? Proc
9
+ return {}
10
+ else
11
+ Environment.new.run env, model
12
+ end
13
+ end
14
+
15
+ protected
16
+ def self.expand_options(options={}, opts={}, model=nil)
17
+ options = get_value_of options, model
18
+ config_opts = {
19
+ :not_expand => [],
20
+ :not_call_symbol => []
21
+ }.merge! opts
22
+ if options.kind_of? Hash
23
+ opts = {}
24
+ options.each do |column, config|
25
+ if not config_opts[:not_expand].include? column.to_sym
26
+ if not config_opts[:not_call_symbol].include? config
27
+ opts[column.to_sym] = expand_options(get_value_of(config, model), config_opts, model)
28
+ else
29
+ opts[column.to_sym] = expand_options(config, config_opts, model)
30
+ end
31
+ else
32
+ opts[column.to_sym] = config
33
+ end
34
+ end
35
+ return opts
36
+ else
37
+ return get_value_of options, model
38
+ end
39
+ end
40
+
41
+ def self.get_value_of(value, model=nil)
42
+ if value.kind_of? Symbol
43
+ # If the function exist, we execute it
44
+ if model.respond_to? value
45
+ return model.send value
46
+ # if the the function not exist, whe set te symbol as a value
47
+ else
48
+ return value
49
+ end
50
+ elsif value.kind_of? Proc
51
+ return value.call
52
+ else
53
+ return value
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,42 @@
1
+ require File.expand_path('../structure', __FILE__)
2
+
3
+ module ExtendModelAt
4
+ class Environment
5
+ def initialize
6
+ @config = {}
7
+ @config[:has_one] = {}
8
+ @config[:has_many] = {}
9
+ @config[:belongs_to] = {}
10
+ @config[:static] = false
11
+ end
12
+
13
+ def run(env=nil, model=nil)
14
+ instance_exec env
15
+ end
16
+
17
+ [:has_one, :has_many, :belongs_to].each do |function|
18
+ define_method(function.to_s) do |name, opts={}|
19
+ @config[function][name.to_sym] = opts
20
+ end
21
+ end
22
+
23
+ # == Defining columns
24
+ # You cand define the _table structure_ using the function +structure+
25
+ #
26
+ # structure :static => true do |t|
27
+ # t.string :name
28
+ # t.integer :loggin_counter, :default => 0
29
+ # t.belongs_to :account
30
+ # t.belongs_to :owner, :polymorphic => true
31
+ # end
32
+ def structure(options={})
33
+ @config[:columns] = Structure.new.run yield
34
+ @config[:static] = options[:static]
35
+ end
36
+
37
+ protected
38
+ def config
39
+ @config
40
+ end
41
+ end
42
+ end
@@ -1,24 +1,23 @@
1
1
  require File.expand_path('../models/all', __FILE__)
2
+ require File.expand_path('../configuration', __FILE__)
2
3
 
3
4
  module ExtendModelAt
4
5
  class ModelManager
5
6
  def initialize(column_name,model, config)
6
7
  @column_name, @model, @config = column_name, model, config
7
-
8
- if not @model.new_record?
9
- @extend_at = ExtendAt.find_by_model_id_and_model_type @model.id, @model.class.to_s
10
- else
8
+
9
+ @extend_at = ExtendAt.find_by_model_id_and_model_type @model.id, @model.class.to_s
10
+ if @extend_at.nil?
11
11
  @extend_at = ExtendAt.new
12
12
  @extend_at.save
13
13
  end
14
14
  end
15
15
 
16
16
  def assign(column,value)
17
- raise "#{value} is not valid" if not @model.send(:valid_type?, value, @config[column.to_sym].try(:[], :type))
17
+ raise "#{value} is not valid" if not @model.send(:valid_type?, value, @config[:columns][column.to_sym].try(:[], :type))
18
18
 
19
19
  last_model = get_column_model column
20
- type_class = get_type_class( (@config[column.to_sym].try(:[], :type) || :any) )
21
-
20
+ type_class = get_type_class( (@config[:columns][column.to_sym].try(:[], :type) || :any) )
22
21
 
23
22
  if last_model.nil?
24
23
  new_column = Column.new :extend_at_id => @extend_at.id
@@ -38,7 +37,7 @@ module ExtendModelAt
38
37
  model = get_column_model column #, get_type(column)
39
38
  value = model.try(:value)
40
39
  if value.nil?
41
- value = @config[column.to_sym].try(:[], :default)
40
+ value = @config[:columns][column.to_sym].try(:[], :default)
42
41
  assign column, value
43
42
  end
44
43
  value
@@ -77,6 +76,10 @@ module ExtendModelAt
77
76
  hash
78
77
  end
79
78
 
79
+ def read_model(model_name, configuration,force_reload=false)
80
+ # TODO
81
+ end
82
+
80
83
  def to_a
81
84
  all_values
82
85
  end
@@ -101,8 +104,8 @@ module ExtendModelAt
101
104
  end
102
105
 
103
106
  def get_type(column)
104
- if @config[column.to_sym].kind_of? Hash
105
- @config[column.to_sym][:type]
107
+ if @config[:columns][column.to_sym].kind_of? Hash
108
+ @config[:columns][column.to_sym][:type]
106
109
  else
107
110
  :any
108
111
  end
@@ -0,0 +1,12 @@
1
+ require File.expand_path('../table_manager', __FILE__)
2
+
3
+ module ExtendModelAt
4
+
5
+ # Manage the environment of structure function
6
+ class Structure
7
+ def run
8
+ yield TableManager.new
9
+ TableManager.send :config # Get te configuration (is protected)
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,20 @@
1
+ module ExtendModelAt
2
+ class TableManager
3
+ def initialize
4
+ @config = {}
5
+ end
6
+
7
+ [:any, :binary, :boolean, :date, :datetime, :decimal, :float, :integer, :string, :text, :time, :timestamp].each do |function|
8
+ define_method(function.to_s) do |column_name, options={}|
9
+ @config[column_name.to_sym] = options.merge!({:type => function})
10
+ nil
11
+ end
12
+ end
13
+
14
+ protected
15
+
16
+ def config
17
+ return @config
18
+ end
19
+ end
20
+ end
@@ -1,3 +1,3 @@
1
1
  module ExtendModelAt
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/lib/extend_at.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # encoding: utf-8
2
2
  require "extend_at/version"
3
+ # require "extend_at/configuration"
3
4
  require "extend_at/model_manager"
4
5
  require "extend_at/models/all"
5
6
 
@@ -18,14 +19,16 @@ module ExtendModelAt
18
19
  # The object how controll the data
19
20
  class Extention
20
21
  def initialize(options={})
21
- @static = options[:static] || false
22
- @model = options[:model]
23
- @column_name = options[:column_name].to_s
24
- @columns = options[:columns]
25
- @value = get_defaults_values options
26
- @model_manager = ::ExtendModelAt::ModelManager.new(@column_name, @model, @columns)
22
+ @configuration = ExtendModelAt::Configuration.run options, options[:model]
23
+ @model_manager = ::ExtendModelAt::ModelManager.new(@column_name, @configuration[:model], @configuration)
27
24
 
28
- raise ExtendModelAt::ArgumentError, "#{@column_name} should by text or string not #{options[:model].column_for_attribute(@column_name.to_sym).type}" if not [:text, :stiring].include? options[:model].column_for_attribute(@column_name.to_sym).type
25
+ @static = @configuration[:static] || false
26
+ @model = @configuration[:model]
27
+ @column_name = @configuration[:column_name].to_s
28
+ @columns = @configuration[:columns]
29
+ @value = get_defaults_values @configuration
30
+
31
+ # define_associations
29
32
 
30
33
  initialize_values
31
34
  end
@@ -80,6 +83,13 @@ module ExtendModelAt
80
83
 
81
84
  private
82
85
 
86
+ def configuration
87
+ @configuration
88
+ end
89
+
90
+ # def define_associationss
91
+ # end
92
+
83
93
  def get_adapter(column, value)
84
94
  if @columns[column.to_sym][:type] == String
85
95
  return :to_s
@@ -221,7 +231,7 @@ module ExtendModelAt
221
231
  self.class_eval <<-EOS
222
232
  eval assign_attributes_eval
223
233
  EOS
224
-
234
+
225
235
  class_eval do
226
236
  public
227
237
  validate :extend_at_validations
@@ -229,18 +239,16 @@ module ExtendModelAt
229
239
 
230
240
  define_method(column_name.to_s) do
231
241
  if not @extend_at_configuration.kind_of? ExtendModelAt::Extention
232
- opts = initialize_options(options)
233
- options = {
234
- :extensible => true # If is false, only the columns defined in :columns can be used
235
- }.merge!(opts)
236
- columns = initialize_columns expand_options(options, { :not_call_symbol => [:boolean], :not_expand => [:validate, :default] }) if options.kind_of? Hash
237
- @extend_at_configuration ||= ExtendModelAt::Extention.new({:model => self, :column_name => column_name.to_sym, :columns => columns, :static => options[:static]})
242
+ options[:model] = self
243
+ @extend_at_configuration ||= ExtendModelAt::Extention.new(options )
244
+
245
+ initialize_columns @extend_at_configuration.send(:configuration)[:columns] if options.kind_of? Hash
238
246
  end
239
247
  @extend_at_configuration
240
248
  end
241
249
 
242
250
  protected
243
-
251
+
244
252
  def extend_at_validations
245
253
  # @extend_at_configuration.valid?
246
254
  @extend_at_validation ||= {} if not @extend_at_validation.kind_of? Hash
@@ -249,39 +257,22 @@ module ExtendModelAt
249
257
  self.send validation, eval("@extend_at_configuration.\#\{column.to_s\}", binding)
250
258
  elsif validation.kind_of? Proc
251
259
  instance_exec @extend_at_configuration[column.to_sym], &validation
252
- # validation.call @extend_at_configuration[column.to_sym]
253
260
  end
254
261
  end
255
262
  end
256
263
 
257
- def initialize_options(options={})
258
- opts = expand_options options, { :not_call_symbol => [:boolean], :not_expand => [:validate, :default] }
259
- end
260
-
261
264
  # Initialize each column configuration
262
- def initialize_columns(options = {})
263
- columns = {}
264
- if options[:columns].kind_of? Hash
265
- options[:columns].each do |column, config|
266
- columns[column] = initialize_column column, config
265
+ def initialize_columns(columns = {})
266
+ columns.each do |column, config|
267
+ initialize_column column, config
267
268
  end
268
- elsif options[:columns].kind_of? Symbol
269
- hash = self.send options[:columns]
270
- raise ExtendModelAt::ArgumentError, "Invalid columns configuration" if not hash.kind_of? Hash
271
- columns = initialize_columns :columns => hash
272
- elsif options[:columns].kind_of? Proc
273
- hash = options[:columns].call
274
- raise ExtendModelAt::ArgumentError, "Invalid columns configuration" if not hash.kind_of? Hash
275
- columns = initialize_columns :columns => hash
276
- end
277
- columns
278
269
  end
279
270
 
280
271
  def initialize_column(column,config={})
281
272
  raise ExtendModelAt::ArgumentError, "The column \#\{column\} have an invalid configuration (\#\{config.class\} => \#\{config\})" if not config.kind_of? Hash
282
-
273
+
283
274
  @VALID_SYMBOLS ||= [:any, :binary, :boolean, :date, :datetime, :decimal, :float, :integer, :string, :text, :time, :timestamp]
284
-
275
+
285
276
  column = column.to_sym
286
277
  column_config = {}
287
278
 
@@ -291,29 +282,19 @@ module ExtendModelAt
291
282
  column_config[:type] = get_type_for_class config[:type]
292
283
  elsif config[:type].class == Symbol and @VALID_SYMBOLS.include? config[:type]
293
284
  column_config[:type] = config[:type]
294
- elsif [Symbol, Proc].include? config[:type]
295
- column_config[:type] = get_value_of config[:type]
296
285
  else
297
286
  raise ExtendModelAt::ArgumentError, "\#\{config[:type]\} is not a valid column type"
298
287
  end
299
288
 
300
- # Stablish the default value
301
- # if is a symbol, we execute the function from the model
302
- if config[:default].kind_of? Symbol
303
- column_config[:default] = self.send(:config[:default])
304
- elsif config[:default].kind_of? Proc
305
- column_config[:default] = config[:default].call
306
- else
307
- # If the column have a type, we verify the type
308
- if not column_config[:type].nil?
309
- if not valid_type?(config[:default], column_config[:type])
310
- raise ExtendModelAt::ArgumentError, "The column \#\{column\} has an invalid default value. Expected \#\{column_config[:type]}, not \#\{config[:default].class}"
311
- end
312
- column_config[:default] = config[:default]
313
- else
314
- # If is dynamic, only we set the default value
315
- column_config[:default] = config[:default]
289
+ # If the column have a type, we verify the type
290
+ if not column_config[:type].nil?
291
+ if not valid_type?(config[:default], column_config[:type])
292
+ raise ExtendModelAt::ArgumentError, "The column \#\{column\} has an invalid default value. Expected \#\{column_config[:type]}, not \#\{config[:default].class}"
316
293
  end
294
+ column_config[:default] = config[:default]
295
+ else
296
+ # If is dynamic, only we set the default value
297
+ column_config[:default] = config[:default]
317
298
  end
318
299
 
319
300
  # Set the validation
@@ -346,49 +327,8 @@ module ExtendModelAt
346
327
  @extend_at_validation[column] = validation
347
328
  end
348
329
 
349
- def expand_options(options={}, opts={})
350
- options = get_value_of options
351
- config_opts = {
352
- :not_expand => [],
353
- :not_call_symbol => []
354
- }.merge! opts
355
- if options.kind_of? Hash
356
- opts = {}
357
- options.each do |column, config|
358
- if not config_opts[:not_expand].include? column.to_sym
359
- if not config_opts[:not_call_symbol].include? config
360
- opts[column.to_sym] = expand_options(get_value_of(config), config_opts)
361
- else
362
- opts[column.to_sym] = expand_options(config, config_opts)
363
- end
364
- else
365
- opts[column.to_sym] = config
366
- end
367
- end
368
- return opts
369
- else
370
- return get_value_of options
371
- end
372
- end
373
-
374
- def get_value_of(value)
375
- if value.kind_of? Symbol
376
- # If the function exist, we execute it
377
- if self.respond_to? value
378
- return self.send value
379
- # if the the function not exist, whe set te symbol as a value
380
- else
381
- return value
382
- end
383
- elsif value.kind_of? Proc
384
- return value.call
385
- else
386
- return value
387
- end
388
- end
389
-
390
330
  def update_model_manager
391
- @extend_at_configuration.send :update_model_manager
331
+ @extend_at_configuration.send :update_model_manager if @extend_at_configuration.respond_to? :update_model_manager
392
332
  end
393
333
 
394
334
  def get_type_for_class(type)
@@ -0,0 +1,3 @@
1
+ class Tool < ActiveRecord::Base
2
+ extend_at :extra, :columns => {}, :belongs_to => :toolbox
3
+ end
@@ -0,0 +1,3 @@
1
+ class Toolbox < ActiveRecord::Base
2
+ extend_at :extra, :columns => { :name => { :type => :string }}, :has_many => :tools
3
+ end
@@ -0,0 +1,9 @@
1
+ class CreateToolboxes < ActiveRecord::Migration
2
+ def change
3
+ create_table :toolboxes do |t|
4
+ t.string :name
5
+
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class CreateTools < ActiveRecord::Migration
2
+ def change
3
+ create_table :tools do |t|
4
+ t.string :name
5
+
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # It's strongly recommended to check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(:version => 20120110153027) do
14
+ ActiveRecord::Schema.define(:version => 20120118200029) do
15
15
 
16
16
  create_table "articles", :force => true do |t|
17
17
  t.string "title"
@@ -104,6 +104,18 @@ ActiveRecord::Schema.define(:version => 20120110153027) do
104
104
  t.string "model_type"
105
105
  end
106
106
 
107
+ create_table "toolboxes", :force => true do |t|
108
+ t.string "name"
109
+ t.datetime "created_at"
110
+ t.datetime "updated_at"
111
+ end
112
+
113
+ create_table "tools", :force => true do |t|
114
+ t.string "name"
115
+ t.datetime "created_at"
116
+ t.datetime "updated_at"
117
+ end
118
+
107
119
  create_table "users", :force => true do |t|
108
120
  t.string "name"
109
121
  t.text "private_info"
@@ -0,0 +1,7 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ one:
4
+ name: MyString
5
+
6
+ two:
7
+ name: MyString
@@ -0,0 +1,7 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ one:
4
+ name: MyString
5
+
6
+ two:
7
+ name: MyString
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class ToolTest < ActiveSupport::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class ToolboxTest < ActiveSupport::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
@@ -62,13 +62,15 @@ describe 'extend_at' do
62
62
  article.save
63
63
  article.errors.keys.include?(:extra_int1).should == true
64
64
  end
65
+ end
65
66
 
67
+ context "general options" do
66
68
  it "should support static columns" do
67
69
  user = User.new :name => "Account"
68
70
  lambda {user.private_info.etc = "etc"}.should raise_error(ExtendModelAt::InvalidColumn)
69
71
  end
70
72
 
71
- it "if is't static should support dynamic columns" do
73
+ it "if isn't static should support dynamic columns" do
72
74
  article = Article.new
73
75
  lambda {article.extra.etc = "etc"}.should_not raise_error(ExtendModelAt::InvalidColumn)
74
76
  article.save :validate => false
@@ -76,4 +78,28 @@ describe 'extend_at' do
76
78
  article.extra.etc.should == "etc"
77
79
  end
78
80
  end
81
+
82
+ # context "associations support" do
83
+ # context "belongs_to" do
84
+ # it "simple usage" do
85
+ # box = Toolbox.new
86
+ # box.save
87
+ # box.extra.create_tool
88
+ # box.extra.tools.first.extra.toolbox.should == box
89
+ # end
90
+ # end
91
+ #
92
+ # context "has_many" do
93
+ # context "simple usage" do
94
+ # box = Toolbox.new
95
+ # box.save
96
+ # box.extra.create_tool
97
+ # box.extra.create_tool
98
+ # box.extra.create_tool
99
+ # box.extra.tools.class.should == Array
100
+ # box.extra.tools.size.should == 3
101
+ # box.extra.tools.first.extra.toolbox.should == box
102
+ # end
103
+ # end
104
+ # end
79
105
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: extend_at
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-18 00:00:00.000000000 Z
12
+ date: 2012-01-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &8578760 !ruby/object:Gem::Requirement
16
+ requirement: &20211600 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *8578760
24
+ version_requirements: *20211600
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &8578000 !ruby/object:Gem::Requirement
27
+ requirement: &20210900 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '2.5'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *8578000
35
+ version_requirements: *20210900
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec-core
38
- requirement: &8577360 !ruby/object:Gem::Requirement
38
+ requirement: &20210520 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *8577360
46
+ version_requirements: *20210520
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: database_cleaner
49
- requirement: &8576820 !ruby/object:Gem::Requirement
49
+ requirement: &20068540 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0.7'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *8576820
57
+ version_requirements: *20068540
58
58
  description: ! 'This gem allows you to extend rails models without migrations: This
59
59
  way you can, i.e., develop your own content types, like in Drupal.'
60
60
  email:
@@ -66,6 +66,7 @@ files:
66
66
  - .gitignore
67
67
  - .rspec
68
68
  - .travis.yml
69
+ - CHANGELOG.txt
69
70
  - Gemfile
70
71
  - Gemfile.ci
71
72
  - MIT-license.txt
@@ -73,6 +74,8 @@ files:
73
74
  - Rakefile
74
75
  - extend_at.gemspec
75
76
  - lib/extend_at.rb
77
+ - lib/extend_at/configuration.rb
78
+ - lib/extend_at/environment.rb
76
79
  - lib/extend_at/model_manager.rb
77
80
  - lib/extend_at/models/all.rb
78
81
  - lib/extend_at/models/any_value.rb
@@ -89,6 +92,8 @@ files:
89
92
  - lib/extend_at/models/text_value.rb
90
93
  - lib/extend_at/models/time_value.rb
91
94
  - lib/extend_at/models/timestamp_value.rb
95
+ - lib/extend_at/structure.rb
96
+ - lib/extend_at/table_manager.rb
92
97
  - lib/extend_at/version.rb
93
98
  - lib/generators/extend_at/USAGE
94
99
  - lib/generators/extend_at/install_generator.rb
@@ -114,6 +119,8 @@ files:
114
119
  - spec/app/app/mailers/.gitkeep
115
120
  - spec/app/app/models/.gitkeep
116
121
  - spec/app/app/models/article.rb
122
+ - spec/app/app/models/tool.rb
123
+ - spec/app/app/models/toolbox.rb
117
124
  - spec/app/app/models/user.rb
118
125
  - spec/app/app/views/articles/_form.html.erb
119
126
  - spec/app/app/views/articles/edit.html.erb
@@ -146,6 +153,8 @@ files:
146
153
  - spec/app/db/migrate/20120101231517_create_articles.rb
147
154
  - spec/app/db/migrate/20120104223248_create_users.rb
148
155
  - spec/app/db/migrate/20120110153027_create_extend_at_tables.rb
156
+ - spec/app/db/migrate/20120118200010_create_toolboxes.rb
157
+ - spec/app/db/migrate/20120118200029_create_tools.rb
149
158
  - spec/app/db/schema.rb
150
159
  - spec/app/db/seeds.rb
151
160
  - spec/app/db/test.sqlite3
@@ -162,6 +171,8 @@ files:
162
171
  - spec/app/script/rails
163
172
  - spec/app/test/fixtures/.gitkeep
164
173
  - spec/app/test/fixtures/articles.yml
174
+ - spec/app/test/fixtures/toolboxes.yml
175
+ - spec/app/test/fixtures/tools.yml
165
176
  - spec/app/test/fixtures/users.yml
166
177
  - spec/app/test/functional/.gitkeep
167
178
  - spec/app/test/functional/articles_controller_test.rb
@@ -173,6 +184,8 @@ files:
173
184
  - spec/app/test/unit/article_test.rb
174
185
  - spec/app/test/unit/helpers/articles_helper_test.rb
175
186
  - spec/app/test/unit/helpers/users_helper_test.rb
187
+ - spec/app/test/unit/tool_test.rb
188
+ - spec/app/test/unit/toolbox_test.rb
176
189
  - spec/app/test/unit/user_test.rb
177
190
  - spec/app/vendor/assets/stylesheets/.gitkeep
178
191
  - spec/app/vendor/plugins/.gitkeep
@@ -224,6 +237,8 @@ test_files:
224
237
  - spec/app/app/mailers/.gitkeep
225
238
  - spec/app/app/models/.gitkeep
226
239
  - spec/app/app/models/article.rb
240
+ - spec/app/app/models/tool.rb
241
+ - spec/app/app/models/toolbox.rb
227
242
  - spec/app/app/models/user.rb
228
243
  - spec/app/app/views/articles/_form.html.erb
229
244
  - spec/app/app/views/articles/edit.html.erb
@@ -256,6 +271,8 @@ test_files:
256
271
  - spec/app/db/migrate/20120101231517_create_articles.rb
257
272
  - spec/app/db/migrate/20120104223248_create_users.rb
258
273
  - spec/app/db/migrate/20120110153027_create_extend_at_tables.rb
274
+ - spec/app/db/migrate/20120118200010_create_toolboxes.rb
275
+ - spec/app/db/migrate/20120118200029_create_tools.rb
259
276
  - spec/app/db/schema.rb
260
277
  - spec/app/db/seeds.rb
261
278
  - spec/app/db/test.sqlite3
@@ -272,6 +289,8 @@ test_files:
272
289
  - spec/app/script/rails
273
290
  - spec/app/test/fixtures/.gitkeep
274
291
  - spec/app/test/fixtures/articles.yml
292
+ - spec/app/test/fixtures/toolboxes.yml
293
+ - spec/app/test/fixtures/tools.yml
275
294
  - spec/app/test/fixtures/users.yml
276
295
  - spec/app/test/functional/.gitkeep
277
296
  - spec/app/test/functional/articles_controller_test.rb
@@ -283,6 +302,8 @@ test_files:
283
302
  - spec/app/test/unit/article_test.rb
284
303
  - spec/app/test/unit/helpers/articles_helper_test.rb
285
304
  - spec/app/test/unit/helpers/users_helper_test.rb
305
+ - spec/app/test/unit/tool_test.rb
306
+ - spec/app/test/unit/toolbox_test.rb
286
307
  - spec/app/test/unit/user_test.rb
287
308
  - spec/app/vendor/assets/stylesheets/.gitkeep
288
309
  - spec/app/vendor/plugins/.gitkeep