zeddb 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/LICENSE ADDED
@@ -0,0 +1,15 @@
1
+
2
+ Copyright (c) Zedkit.
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
5
+ files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
6
+ modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
7
+ Software is furnished to do so, subject to the following conditions:
8
+
9
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
10
+ Software.
11
+
12
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
13
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
14
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
15
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,8 @@
1
+
2
+ = gem to access the ZedDB API
3
+
4
+ More details TBA.
5
+
6
+ == Copyright
7
+
8
+ Copyright (c) 2010 Zedkit. See LICENSE for details. http://www.zedkit.com.
data/Rakefile ADDED
@@ -0,0 +1,75 @@
1
+ ##
2
+ # Copyright (c) Zedkit.
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
5
+ # files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
6
+ # modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
7
+ # Software is furnished to do so, subject to the following conditions:
8
+ #
9
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
10
+ # Software.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
13
+ # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
14
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
15
+ # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ ##
17
+
18
+ require 'rubygems'
19
+ require 'rake'
20
+
21
+ begin
22
+ require 'jeweler'
23
+ Jeweler::Tasks.new do |gem|
24
+ gem.name = "zeddb"
25
+ gem.summary = %Q{gem to access ZedDB within Zedkit applications}
26
+ gem.description = %Q{gem to access the ZedDB within Zedkit applications to CRUD application models, the KVS and queues}
27
+
28
+ gem.email = "support@zedkit.com"
29
+ gem.homepage = "http://github.com/zedkit/zeddb"
30
+ gem.authors = ["Zedkit"]
31
+ gem.rubyforge_project = "zeddb"
32
+
33
+ gem.files = FileList['[A-Z]*', 'bin/*', 'lib/**/*.rb', 'test/**/*.rb']
34
+ gem.executables = %w(zeddb)
35
+ gem.default_executable = %q{zeddb}
36
+
37
+ gem.add_dependency 'zedkit', '>= 1.1.3'
38
+ gem.add_dependency 'json', '>= 1.4.4'
39
+ end
40
+ Jeweler::GemcutterTasks.new
41
+ rescue LoadError
42
+ puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
43
+ end
44
+
45
+ require 'rake/testtask'
46
+ Rake::TestTask.new(:test) do |test|
47
+ test.libs << 'lib' << 'test'
48
+ test.pattern = 'test/**/test_*.rb'
49
+ test.verbose = true
50
+ end
51
+
52
+ begin
53
+ require 'rcov/rcovtask'
54
+ Rcov::RcovTask.new do |test|
55
+ test.libs << 'test'
56
+ test.pattern = 'test/**/test_*.rb'
57
+ test.verbose = true
58
+ end
59
+ rescue LoadError
60
+ task :rcov do
61
+ abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
62
+ end
63
+ end
64
+
65
+ task :test => :check_dependencies
66
+ task :default => :test
67
+
68
+ require 'rake/rdoctask'
69
+ Rake::RDocTask.new do |rdoc|
70
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
71
+ rdoc.rdoc_dir = 'rdoc'
72
+ rdoc.title = "zeddb #{version}"
73
+ rdoc.rdoc_files.include('README*')
74
+ rdoc.rdoc_files.include('lib/**/*.rb')
75
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.1.3
data/bin/zeddb ADDED
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env ruby
2
+ ##
3
+ # Copyright (c) Zedkit.
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
6
+ # files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
7
+ # modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
8
+ # Software is furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
11
+ # Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
14
+ # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
15
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
16
+ # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
17
+ ##
18
+
19
+ require 'zeddb'
20
+
21
+ Dir["#{File.dirname(__FILE__)}/../lib/cli/*.rb"].each {|ci| require ci }
22
+
23
+ ZedDB::CLI::Runner.new.go!
data/lib/cli/config.rb ADDED
@@ -0,0 +1,20 @@
1
+ ##
2
+ # Copyright (c) Zedkit.
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
5
+ # files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
6
+ # modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
7
+ # Software is furnished to do so, subject to the following conditions:
8
+ #
9
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
10
+ # Software.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
13
+ # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
14
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
15
+ # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ ##
17
+
18
+ Zedkit.configure do |zk|
19
+ zk.exceptions = true
20
+ end
@@ -0,0 +1,38 @@
1
+ ##
2
+ # Copyright (c) Zedkit.
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
5
+ # files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
6
+ # modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
7
+ # Software is furnished to do so, subject to the following conditions:
8
+ #
9
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
10
+ # Software.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
13
+ # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
14
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
15
+ # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ ##
17
+
18
+ module ZedDB
19
+ module CLI
20
+ class Assocs < Zedkit::CLI::Bottom
21
+ class << self
22
+ def create(opts = {})
23
+ puts "\n" << Zedkit::CLI.ee(opts[:locale], :general, :not_done) << "\n\n"
24
+ end
25
+
26
+ def delete(opts = {})
27
+ puts "\n" << Zedkit::CLI.ee(opts[:locale], :general, :not_done) << "\n\n"
28
+ end
29
+
30
+ protected
31
+ def before_create(opts = {})
32
+ end
33
+ def before_show_update_delete(opts = {})
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,59 @@
1
+ ##
2
+ # Copyright (c) Zedkit.
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
5
+ # files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
6
+ # modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
7
+ # Software is furnished to do so, subject to the following conditions:
8
+ #
9
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
10
+ # Software.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
13
+ # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
14
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
15
+ # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ ##
17
+
18
+ module ZedDB
19
+ module CLI
20
+ class Items < Zedkit::CLI::Bottom
21
+ class << self
22
+ def show(opts = {})
23
+ puts ZedDB::ModelItem.new(:user_key => opts[:user_key], :locale => opts[:locale], :uuid => opts[:argv][0])
24
+ end
25
+
26
+ def create(opts = {})
27
+ opts[:items]['name'] = opts[:argv][1]
28
+ puts ZedDB::ModelItem.new(:user_key => opts[:user_key], :locale => opts[:locale]).replace \
29
+ ZedDB::ModelItems.create(:user_key => opts[:user_key], :locale => opts[:locale],
30
+ :model => { :uuid => opts[:argv][0] }, :item => opts[:items])
31
+ end
32
+
33
+ def update(opts = {})
34
+ puts ZedDB::ModelItem.new(:user_key => opts[:user_key], :locale => opts[:locale]).replace \
35
+ ZedDB::ModelItems.update(:user_key => opts[:user_key],
36
+ :locale => opts[:locale], :uuid => opts[:argv][0], :item => opts[:items])
37
+ end
38
+
39
+ def delete(opts = {})
40
+ mi = ZedDB::ModelItem.new(:user_key => opts[:user_key], :locale => opts[:locale], :uuid => opts[:argv][0])
41
+ mi.delete
42
+ puts "\nDONE.\nZedDB Model Data Item Removed [#{mi['name']}].\n\n"
43
+ end
44
+
45
+ protected
46
+ def before_create(opts = {})
47
+ if opts[:argv][0].nil?
48
+ raise Zedkit::CLI::MissingParameter.new(:message => ZedDB::CLI.ee(opts[:locale], :model, :uuid)) end
49
+ if opts[:argv][1].nil?
50
+ raise Zedkit::CLI::MissingParameter.new(:message => ZedDB::CLI.ee(opts[:locale], :item, :name)) end
51
+ end
52
+ def before_show_update_delete(opts = {})
53
+ if opts[:argv][0].nil?
54
+ raise Zedkit::CLI::MissingParameter.new(:message => ZedDB::CLI.ee(opts[:locale], :item, :uuid)) end
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,53 @@
1
+ ##
2
+ # Copyright (c) Zedkit.
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
5
+ # files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
6
+ # modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
7
+ # Software is furnished to do so, subject to the following conditions:
8
+ #
9
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
10
+ # Software.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
13
+ # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
14
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
15
+ # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ ##
17
+
18
+ module ZedDB
19
+ module CLI
20
+ class Trans < Zedkit::CLI::Bottom
21
+ class << self
22
+ def create(opts = {})
23
+ opts[:items]['code'] = opts[:argv][1]
24
+ mt = ZedDB::ModelTransformer.new(:user_key => opts[:user_key], :locale => opts[:locale]).replace \
25
+ ZedDB::ModelTransformers.create(:user_key => opts[:user_key], :locale => opts[:locale],
26
+ :item => { :uuid => opts[:argv][0] }, :transformer => opts[:items])
27
+ puts mt.model_item
28
+ end
29
+
30
+ def delete(opts = {})
31
+ mt = ZedDB::ModelTransformer.new(:user_key => opts[:user_key],
32
+ :locale => opts[:locale], :owner => opts[:argv][0], :uuid => opts[:argv][1])
33
+ mt.delete
34
+ puts "\nDONE.\nZedDB Model Transformer Removed [#{mt.transformer['code']}].\n\n"
35
+ end
36
+
37
+ protected
38
+ def before_create(opts = {})
39
+ if opts[:argv][0].nil?
40
+ raise Zedkit::CLI::MissingParameter.new(:message => ZedDB::CLI.ee(opts[:locale], :item, :uuid)) end
41
+ if opts[:argv][1].nil?
42
+ raise Zedkit::CLI::MissingParameter.new(:message => ZedDB::CLI.ee(opts[:locale], :transformer, :code)) end
43
+ end
44
+ def before_show_update_delete(opts = {})
45
+ if opts[:argv][0].nil?
46
+ raise Zedkit::CLI::MissingParameter.new(:message => ZedDB::CLI.ee(opts[:locale], :item, :uuid)) end
47
+ if opts[:argv][1].nil?
48
+ raise Zedkit::CLI::MissingParameter.new(:message => ZedDB::CLI.ee(opts[:locale], :transformer, :uuid)) end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,56 @@
1
+ ##
2
+ # Copyright (c) Zedkit.
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
5
+ # files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
6
+ # modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
7
+ # Software is furnished to do so, subject to the following conditions:
8
+ #
9
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
10
+ # Software.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
13
+ # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
14
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
15
+ # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ ##
17
+
18
+ module ZedDB
19
+ module CLI
20
+ class Vals < Zedkit::CLI::Bottom
21
+ class << self
22
+ def create(opts = {})
23
+ opts[:items]['code'] = opts[:argv][1]
24
+ mv = ZedDB::ModelValidation.new(:user_key => opts[:user_key], :locale => opts[:locale]).replace \
25
+ ZedDB::ModelValidations.create(:user_key => opts[:user_key], :locale => opts[:locale],
26
+ :item => { :uuid => opts[:argv][0] }, :validation => opts[:items])
27
+ puts mv.model_item
28
+ end
29
+
30
+ def update(opts = {})
31
+ puts "\n" << Zedkit::CLI.ee(opts[:locale], :general, :not_done) << "\n\n"
32
+ end
33
+
34
+ def delete(opts = {})
35
+ mv = ZedDB::ModelValidation.new(:user_key => opts[:user_key], :locale => opts[:locale], :owner => opts[:argv][0], :uuid => opts[:argv][1])
36
+ mv.delete
37
+ puts "\nDONE.\nZedDB Model Validation Removed [#{mv.validation['code']}].\n\n"
38
+ end
39
+
40
+ protected
41
+ def before_create(opts = {})
42
+ if opts[:argv][0].nil?
43
+ raise Zedkit::CLI::MissingParameter.new(:message => ZedDB::CLI.ee(opts[:locale], :item, :uuid)) end
44
+ if opts[:argv][1].nil?
45
+ raise Zedkit::CLI::MissingParameter.new(:message => ZedDB::CLI.ee(opts[:locale], :validation, :code)) end
46
+ end
47
+ def before_show_update_delete(opts = {})
48
+ if opts[:argv][0].nil?
49
+ raise Zedkit::CLI::MissingParameter.new(:message => ZedDB::CLI.ee(opts[:locale], :item, :uuid)) end
50
+ if opts[:argv][1].nil?
51
+ raise Zedkit::CLI::MissingParameter.new(:message => ZedDB::CLI.ee(opts[:locale], :validation, :uuid)) end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
data/lib/cli/models.rb ADDED
@@ -0,0 +1,59 @@
1
+ ##
2
+ # Copyright (c) Zedkit.
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
5
+ # files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
6
+ # modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
7
+ # Software is furnished to do so, subject to the following conditions:
8
+ #
9
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
10
+ # Software.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
13
+ # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
14
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
15
+ # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ ##
17
+
18
+ module ZedDB
19
+ module CLI
20
+ class Models < Zedkit::CLI::Bottom
21
+ class << self
22
+ def show(opts = {})
23
+ puts ZedDB::Model.new(:user_key => opts[:user_key], :locale => opts[:locale], :uuid => opts[:argv][0])
24
+ end
25
+
26
+ def create(opts = {})
27
+ opts[:items]['name'] = opts[:argv][1]
28
+ puts ZedDB::Model.new(:user_key => opts[:user_key], :locale => opts[:locale]).replace \
29
+ ZedDB::Models.create(:user_key => opts[:user_key], :locale => opts[:locale],
30
+ :project => { :uuid => opts[:argv][0] }, :model => opts[:items])
31
+ end
32
+
33
+ def update(opts = {})
34
+ puts ZedDB::Model.new(:user_key => opts[:user_key], :locale => opts[:locale]).replace \
35
+ ZedDB::Models.update(:user_key => opts[:user_key],
36
+ :locale => opts[:locale], :uuid => opts[:argv][0], :model => opts[:items])
37
+ end
38
+
39
+ def delete(opts = {})
40
+ mm = ZedDB::Model.new(:user_key => opts[:user_key], :locale => opts[:locale], :uuid => opts[:argv][0])
41
+ mm.delete
42
+ puts "\nDONE.\nZedDB Model Removed [#{mm.name}].\n\n"
43
+ end
44
+
45
+ protected
46
+ def before_create(opts = {})
47
+ if opts[:argv][0].nil?
48
+ raise Zedkit::CLI::MissingParameter.new(:message => ZedDB::CLI.ee(opts[:locale], :project, :uuid)) end
49
+ if opts[:argv][1].nil?
50
+ raise Zedkit::CLI::MissingParameter.new(:message => ZedDB::CLI.ee(opts[:locale], :model, :name)) end
51
+ end
52
+ def before_show_update_delete(opts = {})
53
+ if opts[:argv][0].nil?
54
+ raise Zedkit::CLI::MissingParameter.new(:message => ZedDB::CLI.ee(opts[:locale], :model, :uuid)) end
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,49 @@
1
+ ##
2
+ # Copyright (c) Zedkit.
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
5
+ # files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
6
+ # modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
7
+ # Software is furnished to do so, subject to the following conditions:
8
+ #
9
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
10
+ # Software.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
13
+ # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
14
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
15
+ # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ ##
17
+
18
+ module ZedDB
19
+ module CLI
20
+ class Projects < Zedkit::CLI::Bottom
21
+ class << self
22
+ def list(opts = {})
23
+ show_models Zedkit::Project.new(:user_key => opts[:user_key], :locale => opts[:locale], :uuid => opts[:argv][0])
24
+ end
25
+ def codes(opts = {})
26
+ puts "\n" << ZedDB::CLI.ee(opts[:locale], :general, :not_done) << "\n\n"
27
+ end
28
+
29
+ protected
30
+ def before_list(opts = {})
31
+ if opts[:argv][0].nil?
32
+ raise Zedkit::CLI::MissingParameter.new(:message => ZedDB::CLI.ee(opts[:locale], :project, :nil)) end
33
+ end
34
+ def show_models(project)
35
+ mcnt = "[#{project.models.length} #{project.models.length > 1 ? 'Models' : 'Model'}]"
36
+ puts dashes(122) \
37
+ << "| " << "ZedDB Models [#{project.name}] #{mcnt}".ljust(118) << " |\n" \
38
+ << dashes(122) \
39
+ << "| #{'UUID'.ljust(32)} | #{'Name'.ljust(32)} | #{'Location'.ljust(48)} |\n" \
40
+ << dashes(122)
41
+ project.models.each do |mm|
42
+ puts "| #{mm['uuid'].ljust(32)} | #{mm['name'].ljust(32)} | #{mm['locations'][0].ljust(48)} |\n"
43
+ end
44
+ puts dashes(122)
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
data/lib/cli/runner.rb ADDED
@@ -0,0 +1,55 @@
1
+ ##
2
+ # Copyright (c) Zedkit.
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
5
+ # files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
6
+ # modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
7
+ # Software is furnished to do so, subject to the following conditions:
8
+ #
9
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
10
+ # Software.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
13
+ # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
14
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
15
+ # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ ##
17
+
18
+ module ZedDB
19
+ module CLI
20
+ class Runner < Zedkit::CLI::Runner
21
+ SECTIONS = ['projects','models','items']
22
+
23
+ def me
24
+ Object.const_get('ZedDB').const_get('CLI')
25
+ end
26
+ def commands
27
+ "\n" \
28
+ << "== Project Commands\n\n" \
29
+ << "list <uuid> # List a project's models\n" \
30
+ << "codes # Outline applicable entity codes for ZedDB\n\n" \
31
+ << "== Model Commands\n\n" \
32
+ << "models:show <uuid> # Show model details\n" \
33
+ << "models:create <project> <name> key=value [...] # Create a new model\n" \
34
+ << "models:update <uuid> key=value [...] # Update an existing model\n" \
35
+ << "models:delete <uuid> # Delete an existing model\n\n" \
36
+ << "== Model Item Commands\n\n" \
37
+ << "items:show <uuid> # Show details of a model's data items\n" \
38
+ << "items:create <model> <name> key=value [...] # Create a new data item within a model\n" \
39
+ << "items:update <uuid> key=value [...] # Update an existing data item\n" \
40
+ << "items:delete <uuid> # Delete an existing data item\n\n" \
41
+ << "== Model Association Commands\n\n" \
42
+ << "assocs:create <code> key=value [...] # Create a new association between two models\n" \
43
+ << "assocs:delete <uuid> # Delete an existing association between two models\n\n" \
44
+ << "== Data Item Validation Commands\n\n" \
45
+ << "vals:create <item> <code> key=value [...] # Create a new validation for an existing data item\n" \
46
+ << "vals:update <item> <uuid> key=value [...] # Update an existing validation\n" \
47
+ << "vals:delete <item> <uuid> # Delete an existing validation\n\n" \
48
+ << "== Data Item Transformer Commands\n\n" \
49
+ << "trans:create <item> <code> # Create a new transformer for an existing data item\n" \
50
+ << "trans:delete <item> <uuid> # Delete an existing transformer\n\n" \
51
+ << "==\n\n"
52
+ end
53
+ end
54
+ end
55
+ end
data/lib/cli/text.rb ADDED
@@ -0,0 +1,52 @@
1
+ ##
2
+ # Copyright (c) Zedkit.
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
5
+ # files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
6
+ # modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
7
+ # Software is furnished to do so, subject to the following conditions:
8
+ #
9
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
10
+ # Software.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
13
+ # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
14
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
15
+ # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ ##
17
+
18
+ module ZedDB::CLI
19
+ class << self
20
+ def tt(locale, key, item)
21
+ Zedkit::CLI.lookup_tt("ZedDB::CLI", locale, key, item)
22
+ end
23
+ def ee(locale, key, item)
24
+ Zedkit::CLI.lookup_ee("ZedDB::CLI", locale, key, item)
25
+ end
26
+ end
27
+
28
+ CONTENT = {
29
+ :en => {
30
+ }
31
+ }
32
+ ERRORS = {
33
+ :en => {
34
+ :model => {
35
+ :uuid => "Model UUID is nil",
36
+ :name => "Model name is nil"
37
+ },
38
+ :item => {
39
+ :uuid => "Model Item UUID is nil",
40
+ :name => "Model Item name is nil"
41
+ },
42
+ :validation => {
43
+ :uuid => "Validation UUID is nil",
44
+ :code => "Validation code is nil"
45
+ },
46
+ :transformer => {
47
+ :uuid => "Transformer UUID is nil",
48
+ :code => "Transformer code is nil"
49
+ }
50
+ }
51
+ }.freeze
52
+ end
@@ -0,0 +1,71 @@
1
+ ##
2
+ # Copyright (c) Zedkit.
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
5
+ # files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
6
+ # modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
7
+ # Software is furnished to do so, subject to the following conditions:
8
+ #
9
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
10
+ # Software.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
13
+ # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
14
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
15
+ # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ ##
17
+
18
+ module ZedDB
19
+ class Model < Zedkit::Instance
20
+ def project
21
+ Zedkit::Project.new(:user_key => uk, :locale => lc, :uuid => self['project']['uuid'])
22
+ end
23
+
24
+ def associations
25
+ self.has_key?('associations') && self['associations'].is_a?(Array) ? self['associations'] : []
26
+ end
27
+ def items
28
+ self.has_key?('items') && self['items'].is_a?(Array) ? self['items'] : []
29
+ end
30
+
31
+ def update
32
+ end
33
+ def delete
34
+ ZedDB::Models.delete(:user_key => uk, :locale => lc, :uuid => uuid)
35
+ end
36
+
37
+ def to_s
38
+ rs = "\nZedDB Model within Project '#{project['name']}':\n" \
39
+ << " Name : #{self['name']}\n" \
40
+ << " UUID : #{self['uuid']}\n" \
41
+ << " Resource : #{self['plural_name']}\n" \
42
+ << " Class : #{self['model_name']}\n" \
43
+ << " Associations : #{associations.count}\n" \
44
+ << " Data Items : #{items.count}\n" \
45
+ << " Locations : #{self['locations'][0]}\n" \
46
+ << " #{self['locations'][1]}\n" \
47
+ << " Version : #{self['version']}\n" \
48
+ << " Created : #{Time.at(self['created_at']).to_date}\n" \
49
+ << " Updated : #{Time.at(self['updated_at']).to_date}\n"
50
+ if items.empty?
51
+ rs << dashes(20)
52
+ else
53
+ rs << dashes(122) << "| #{'Data Items'.ljust(118)} |\n" << dashes(122) \
54
+ << "| #{'UUID'.ljust(32)} | #{'Name'.ljust(32)} | #{'Type'.ljust(12)} | #{'Validations'.center(15)} " \
55
+ << "| #{'Transformers'.center(15)} |\n" << dashes(122)
56
+ items.each do |mi|
57
+ rs << "| #{mi['uuid']} | #{mi['name'].ljust(32)} | #{mi['type']['code'].ljust(12)} " \
58
+ << "| #{mi['validations'].length.to_s.center(15)} | #{mi['transformers'].length.to_s.center(15)} |\n"
59
+ end
60
+ rs << dashes(122)
61
+ end
62
+ rs << "\n"
63
+ end
64
+
65
+ protected
66
+ def set_with_uuid(uuid_to_use)
67
+ replace ZedDB::Models.get(:user_key => uk, :locale => lc, :uuid => uuid_to_use)
68
+ end
69
+ end
70
+ end
71
+