easy_data 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. data/README +7 -0
  2. data/Rakefile +4 -0
  3. data/easy_data.gemspec +4 -1
  4. data/lib/controllers/easy_datas_controller.rb +122 -21
  5. data/lib/data_models/data_models.rb +25 -19
  6. data/lib/data_models/model_rdf.rb +156 -0
  7. data/lib/data_models/namespaces/cc.rb +36 -0
  8. data/lib/data_models/namespaces/cert.rb +33 -0
  9. data/lib/data_models/namespaces/dc.rb +87 -0
  10. data/lib/data_models/namespaces/dc11.rb +47 -0
  11. data/lib/data_models/namespaces/doap.rb +68 -0
  12. data/lib/data_models/namespaces/exif.rb +192 -0
  13. data/lib/data_models/namespaces/foaf.rb +93 -0
  14. data/lib/data_models/namespaces/geo.rb +35 -0
  15. data/lib/data_models/namespaces/http.rb +50 -0
  16. data/lib/data_models/namespaces/owl.rb +83 -0
  17. data/lib/data_models/namespaces/rdfs.rb +41 -0
  18. data/lib/data_models/namespaces/rsa.rb +35 -0
  19. data/lib/data_models/namespaces/rss.rb +38 -0
  20. data/lib/data_models/namespaces/sioc.rb +110 -0
  21. data/lib/data_models/namespaces/skos.rb +61 -0
  22. data/lib/data_models/namespaces/wot.rb +45 -0
  23. data/lib/data_models/namespaces/xhtml.rb +32 -0
  24. data/lib/data_models/namespaces/xsd.rb +77 -0
  25. data/lib/data_models/namespaces.rb +28 -0
  26. data/lib/data_models/parser_rdf.rb +22 -0
  27. data/lib/easy_data/tasks.rb +86 -0
  28. data/lib/easy_data/templates/easy_datas/_list_properties.html.erb +24 -0
  29. data/lib/easy_data/templates/easy_datas/_list_properties_edit.html.erb +34 -0
  30. data/lib/easy_data/templates/easy_datas/_model_attributes.html.erb +27 -0
  31. data/lib/easy_data/templates/easy_datas/_model_attributes_edit.html.erb +13 -0
  32. data/lib/easy_data/templates/easy_datas/custom_rdf.html.erb +23 -0
  33. data/lib/easy_data/templates/easy_datas/show.html.erb +1 -0
  34. data/lib/easy_data/templates/easy_datas/show.xml.builder +16 -0
  35. data/lib/easy_data/templates/layouts/easy_data_layout.html.erb +15 -0
  36. data/lib/easy_data/templates/rdf/request.xml.builder +1 -0
  37. data/lib/easy_data/templates/rdf/show.builder +1 -0
  38. data/lib/easy_data/templates/stylesheets/.easy_data_style.css.swp +0 -0
  39. data/lib/easy_data/templates/stylesheets/easy_data_style.css +10 -0
  40. data/lib/easy_data/version.rb +1 -1
  41. data/lib/easy_data.rb +51 -2
  42. data/lib/routes.rb +38 -6
  43. data/lib/tasks/.rakes.rb.swp +0 -0
  44. data/lib/tasks/testing_installation.rb +2 -2
  45. metadata +72 -6
data/lib/easy_data.rb CHANGED
@@ -2,9 +2,22 @@ require "easy_data/version"
2
2
  require "data_models/data_models"
3
3
  require "action_controller"
4
4
  require "controllers/easy_datas_controller"
5
+ require "data_models/model_rdf"
5
6
  require "routes"
7
+ require 'ftools'
8
+ require 'ruby-debug'
9
+
6
10
 
7
11
  module EasyData
12
+
13
+ module RDF
14
+
15
+ autoload :Namespaces, 'data_models/namespaces'
16
+
17
+ NAMESPACES = Dir.glob(File.join(File.dirname(__FILE__),'data_models','namespaces','*.rb')).map{ |f| File.basename(f).gsub('.rb','').to_sym } rescue []
18
+ NAMESPACES.each { |v| autoload v.to_s.upcase.to_sym, "data_models/namespaces/#{v}" unless v == :namespaces }
19
+
20
+ end
8
21
 
9
22
  def show_linked_data
10
23
  models = LinkedData.find :all
@@ -27,14 +40,50 @@ module EasyData
27
40
  false
28
41
  end
29
42
  end
43
+
44
+ def self.yaml_description_model(model_data)
45
+
46
+ attributes = {}
47
+ associations = {}
48
+
49
+ model_data.columns.each do |att|
30
50
 
51
+ if att.primary
52
+ attributes[att.name] = {:privacy => 'Private',:namespace => 'not defined',:property => 'not defined'}
53
+ elsif att.name =~ /_id$/
54
+ attributes[att.name] = "no publication"
55
+ else
56
+ attributes[att.name] = {:privacy => 'Public',:namespace => 'not defined',:property => 'not defined'}
57
+ end
58
+
59
+ end
60
+
61
+ model_data.reflections.keys.each do |ref|
62
+ associations[ref.to_s] = {:privacy => 'Public',:namespace => 'not defined',:property => 'not defined'}
63
+ end
64
+
65
+ {"attributes" => attributes,"associations" => associations}
66
+ end
67
+
68
+ def self.get_view_path
69
+ File.join(File.dirname(__FILE__), 'easy_data/templates')
70
+ end
71
+
72
+ def self.get_style_path
73
+ File.join(File.dirname(__FILE__), 'easy_data/templates/stylesheets/easy_data_style.css')
74
+ end
75
+
76
+ def self.get_uri_namespace(namespace)
77
+ eval "RDF::#{namespace.upcase}.get_uri"
78
+ end
79
+
31
80
  private
32
81
 
33
82
  def generate_query(model,params)
34
83
  query = "Select #{params.key.join(", ")}
35
84
  FROM #{model};"
36
85
  end
37
-
38
- end
39
86
 
87
+
88
+ end
40
89
 
data/lib/routes.rb CHANGED
@@ -2,12 +2,44 @@ require "action_controller"
2
2
 
3
3
  module EasyDataRouting
4
4
  def self.routes(map)
5
- map.connect "foaf/:model/:id.:format", :controller => "easy_datas",
6
- :action => 'show',
7
- :conditions => {:method => :get}
5
+ # DataModels.load_models.each do |model|
6
+ # map.connect "#{model.gsub("::","_")}/:id.:format", :controller => "easy_datas",
7
+ # :action => 'show',
8
+ # :model => model,
9
+ # :conditions => {:method => :get}
10
+ # end
11
+ # map.connect "list_models.:format", :controller => "easy_datas",
12
+ # :action => 'describe_api'
13
+ #
14
+ # map.connect "custom_rdf", :controller => "easy_datas",
15
+ # :action => "custom_rdf"
16
+
17
+ # map.resources :easy_datas,:member => {:load_properties => :get
18
+ # :model_attributes => :post,
19
+ # :show => :get,
20
+ # :describe_api => :get
21
+ # }
22
+ map.with_options :controller => 'easy_datas' do |ed_routes|
23
+ ed_routes.with_options :conditions => {:method => :get} do |ed_views|
24
+ ed_views.connect 'list_models.:format', :action => 'describe_api'
25
+ ed_views.connect 'custom_rdf', :action=> "custom_rdf"
26
+ DataModels.load_models.each do |model|
27
+ ed_views.connect "#{model.gsub("::","_")}/:params", :controller => "easy_datas",
28
+ :action => 'show',
29
+ :model => model,
30
+ :format => 'xml'
31
+ end
32
+ end
33
+ ed_routes.with_options :conditions => {:method => :post} do |ed_actions|
34
+ ed_actions.connect 'easy_datas/model_attributes/:model', :action => 'model_attributes'
35
+ ed_actions.connect 'easy_datas/model_attributes_edit/:model', :action => 'model_attributes_edit'
36
+ ed_actions.connect 'easy_datas/load_properties/:block/:attribute', :action => 'load_properties'
37
+ ed_actions.connect 'easy_datas/custom_attributes/:model', :action => 'custom_attributes'
38
+ end
8
39
 
9
- map.connect "list_models.:format", :controller => "easy_datas",
10
- :action => 'describe_api'
11
- end
40
+ #Ajax routes:
41
+ # map.resources :easy_datas,:member => {:load_properties => :post}
42
+ end
43
+ end
12
44
  end
13
45
 
Binary file
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
- rm easy_data-0.0.1.gem
3
+ rm easy_data-0.0.4.gem
4
4
  gem build easy_data.gemspec
5
5
  gem uninstall easy_data
6
- gem install ./easy_data-0.0.1.gem
6
+ gem install ./easy_data-0.0.4.gem
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easy_data
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 4
10
+ version: 0.0.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - jnillo
@@ -15,10 +15,41 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-06-27 00:00:00 +02:00
18
+ date: 2011-07-06 00:00:00 +02:00
19
19
  default_executable:
20
- dependencies: []
21
-
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: hpricot
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 55
30
+ segments:
31
+ - 0
32
+ - 8
33
+ - 4
34
+ version: 0.8.4
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: haml
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 7
46
+ segments:
47
+ - 3
48
+ - 0
49
+ - 0
50
+ version: 3.0.0
51
+ type: :runtime
52
+ version_requirements: *id002
22
53
  description: this is a gem description
23
54
  email:
24
55
  - jnillo@rubysemantic.com
@@ -37,9 +68,44 @@ files:
37
68
  - easy_data.gemspec
38
69
  - lib/controllers/easy_datas_controller.rb
39
70
  - lib/data_models/data_models.rb
71
+ - lib/data_models/model_rdf.rb
72
+ - lib/data_models/namespaces.rb
73
+ - lib/data_models/namespaces/cc.rb
74
+ - lib/data_models/namespaces/cert.rb
75
+ - lib/data_models/namespaces/dc.rb
76
+ - lib/data_models/namespaces/dc11.rb
77
+ - lib/data_models/namespaces/doap.rb
78
+ - lib/data_models/namespaces/exif.rb
79
+ - lib/data_models/namespaces/foaf.rb
80
+ - lib/data_models/namespaces/geo.rb
81
+ - lib/data_models/namespaces/http.rb
82
+ - lib/data_models/namespaces/owl.rb
83
+ - lib/data_models/namespaces/rdfs.rb
84
+ - lib/data_models/namespaces/rsa.rb
85
+ - lib/data_models/namespaces/rss.rb
86
+ - lib/data_models/namespaces/sioc.rb
87
+ - lib/data_models/namespaces/skos.rb
88
+ - lib/data_models/namespaces/wot.rb
89
+ - lib/data_models/namespaces/xhtml.rb
90
+ - lib/data_models/namespaces/xsd.rb
91
+ - lib/data_models/parser_rdf.rb
40
92
  - lib/easy_data.rb
93
+ - lib/easy_data/tasks.rb
94
+ - lib/easy_data/templates/easy_datas/_list_properties.html.erb
95
+ - lib/easy_data/templates/easy_datas/_list_properties_edit.html.erb
96
+ - lib/easy_data/templates/easy_datas/_model_attributes.html.erb
97
+ - lib/easy_data/templates/easy_datas/_model_attributes_edit.html.erb
98
+ - lib/easy_data/templates/easy_datas/custom_rdf.html.erb
99
+ - lib/easy_data/templates/easy_datas/show.html.erb
100
+ - lib/easy_data/templates/easy_datas/show.xml.builder
101
+ - lib/easy_data/templates/layouts/easy_data_layout.html.erb
102
+ - lib/easy_data/templates/rdf/request.xml.builder
103
+ - lib/easy_data/templates/rdf/show.builder
104
+ - lib/easy_data/templates/stylesheets/.easy_data_style.css.swp
105
+ - lib/easy_data/templates/stylesheets/easy_data_style.css
41
106
  - lib/easy_data/version.rb
42
107
  - lib/routes.rb
108
+ - lib/tasks/.rakes.rb.swp
43
109
  - lib/tasks/testing_installation.rb
44
110
  has_rdoc: true
45
111
  homepage: http://rubygems.org/gem/easy_data