marty 1.0.26 → 1.0.27

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f67ebcac657138d046558974f9c05235794069e1
4
- data.tar.gz: b79df0fe2a75a6a24e696a337db8799f2fbf57e1
3
+ metadata.gz: 32549066e0c8789c2965387c0a5351ae672f454d
4
+ data.tar.gz: e6cf959267b704fb809bb145c58ff38723b863eb
5
5
  SHA512:
6
- metadata.gz: 804a7e3bb93f704897fd7773854487ab711a58c8f827acec33bc5a67eb9d2a4a54d33cd74277bbf115222541903ad9eac9bfe51e36933d83443bd501421699b8
7
- data.tar.gz: e1637663e777a1fb8a2329446b7dc52a33ab79c26dd0830002a6da10b77b8872b9046dae5d053a052c478227fe403142a92ac9462d72621c80f4da2ae26a8633
6
+ metadata.gz: af5710ceabc29629e4261e8fd3fda9ac7f350b7e609ddefe1c347106fee24a6988399b9bc3a5e430e09b81adbfd5ce5b1ad6e9b97d0ea3467ba714ca5f112c4a
7
+ data.tar.gz: ffe61d68b9c660770436a74ed835db71648a95c89143f0b15e7d8bc5ed92178af27af64bc32c16c678079a241042e25d305abba3146e518589d7034c13a9b571
data/README.md CHANGED
@@ -15,7 +15,8 @@ support for role-based authorization.
15
15
  The Marty framework provides several rake tasks to manage its database tables
16
16
  and delorean scripts.
17
17
 
18
- To create the correct migrations for a Marty-based applications:
18
+ To create the correct migrations for a Marty-based application (see below for
19
+ getting the internal dummy application to work):
19
20
 
20
21
  ```
21
22
  $ rake marty:install:migrations
@@ -50,7 +51,7 @@ To delete scripts:
50
51
  $ rake marty:delete_scripts
51
52
  ```
52
53
 
53
- # Testing
54
+ # Dummy Application & Testing
54
55
 
55
56
  Make sure that extjs is installed (or symbolically linked) in the
56
57
  dummy app at spec/dummy/public.
@@ -63,16 +64,30 @@ You can use the example file by doing:
63
64
  $ cp spec/dummy/config/database.yml.example spec/dummy/config/database.yml
64
65
  ```
65
66
 
67
+ To initialize the dummy application for a demo run:
68
+
69
+ ```bash
70
+ $ bundle install
71
+ $ bundle exec rake db:create db:migrate db:seed app:marty:load_scripts
72
+ $ cd spec/dummy
73
+ $ rails s
74
+ ```
75
+
76
+ The marty dummy app should now be accessible in your browser:
77
+ `localhost:3000`
78
+
79
+ You can log in using `marty` as both user and password.
80
+
66
81
  To create the test database in prepartion to run your tests:
67
82
 
68
83
  ```bash
69
- $ RAILS_ENV=test rake db:create db:migrate
84
+ $ RAILS_ENV=test bundle exec rake db:create
70
85
  ```
71
86
 
72
87
  Then to run the tests:
73
88
 
74
89
  ```bash
75
- $ rspec
90
+ $ bundle exec rspec
76
91
  ```
77
92
 
78
93
  # History & Status
@@ -75,7 +75,8 @@ module Layout
75
75
  end
76
76
 
77
77
  def enum_setter(name)
78
- lambda {|r, v| r.send("#{name}=", v == '---' || v.empty? ? nil : v)}
78
+ lambda {|r, v| r.send("#{name}=", v.nil? || v.empty? || v == '---' ?
79
+ nil : v)}
79
80
  end
80
81
 
81
82
  ######################################################################
@@ -261,8 +261,12 @@ class Marty::DataGrid < Marty::Base
261
261
  # not expected to be called from Delorean.
262
262
  cached_delorean_fn :find_class_instance, sig: 3 do
263
263
  |pt, klass, v|
264
- # FIXME: very hacky -- hard-coded name
265
- Marty::DataConversion.find_row(klass, {"name" => v}, pt)
264
+ if Marty::PgEnum === klass
265
+ StringEnum.new(v)
266
+ else
267
+ # FIXME: very hacky -- hard-coded name
268
+ Marty::DataConversion.find_row(klass, {"name" => v}, pt)
269
+ end
266
270
  end
267
271
 
268
272
  def lookup_grid_distinct_entry(pt, h, visited=nil, follow=true,
@@ -14,11 +14,19 @@ module Marty::PgEnum
14
14
  end
15
15
 
16
16
  GET_ALL_SIG = [0, 0]
17
+ LOOKUP_SIG = [1, 1]
18
+ FIND_BY_NAME_SIG = [1, 1]
17
19
  def self.extended(base)
18
20
  base.class_eval do
19
21
  const_set :GET_ALL_SIG, Marty::PgEnum::GET_ALL_SIG
22
+ const_set :LOOKUP_SIG, Marty::PgEnum::LOOKUP_SIG
23
+ const_set :FIND_BY_NAME_SIG, Marty::PgEnum::FIND_BY_NAME_SIG
20
24
  end
21
25
  end
22
26
 
27
+ def seed
28
+ end
29
+
23
30
  alias_method :find_by_name, :[]
31
+ alias_method :lookup, :[]
24
32
  end
@@ -249,6 +249,17 @@ OUT
249
249
  end
250
250
  end
251
251
 
252
+ # some migrations attempt to get the id using the model.
253
+ # after enumification models have no notion of numeric id
254
+ # we have to get it from the database
255
+ def get_old_enum_id(klass, name)
256
+ ActiveRecord::Base.
257
+ connection.execute(<<-SQL).to_a.first.try{|v| v['id']}
258
+ select id from #{klass.table_name} where name =
259
+ #{ActiveRecord::Base.sanitize(name)}
260
+ SQL
261
+ end
262
+
252
263
  private
253
264
  def fk_opts(from, to, column)
254
265
  name = "fk_#{from}_#{to}_#{column}"
@@ -278,7 +289,17 @@ OUT
278
289
  "unique_#{klass.table_name}"
279
290
  end
280
291
 
292
+ # if the database does not agree with the model regarding columns,
293
+ # get the actual column name
281
294
  def get_attrs(klass)
282
- (Mcfly.mcfly_uniqueness(klass) + ['obsoleted_dt']).uniq
295
+ cols = (Mcfly.mcfly_uniqueness(klass) + ['obsoleted_dt']).uniq.map(&:to_s)
296
+ act_cols = klass.column_names
297
+ use_cols = cols.map do |col|
298
+ col_id = col + '_id'
299
+ act_cols.include?(col) ? col :
300
+ act_cols.include?(col_id) ? col_id :
301
+ (raise "problem adding index for #{klass}: "\
302
+ "cols = #{cols}, act_cols = #{act_cols}")
303
+ end.map(&:to_sym)
283
304
  end
284
305
  end
@@ -1,3 +1,3 @@
1
1
  module Marty
2
- VERSION = "1.0.26"
2
+ VERSION = "1.0.27"
3
3
  end
@@ -7,6 +7,7 @@ require 'marty_rspec'
7
7
 
8
8
  Dummy::Application.initialize!
9
9
 
10
+ ActiveRecord::Migrator.migrate File.expand_path("../../db/migrate/", __FILE__)
10
11
  ActiveRecord::Migrator.migrate File.expand_path("../dummy/db/migrate/", __FILE__)
11
12
 
12
13
  Dir[Rails.root.join("../support/**/*.rb")].each { |f| require f }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marty
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.26
4
+ version: 1.0.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arman Bostani
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2017-05-03 00:00:00.000000000 Z
17
+ date: 2017-05-12 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: pg