easy_data 0.0.2 → 0.0.4

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.
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