dm-fql-adapter 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
4
+ features/**/*.feature
5
+ LICENSE
data/.gitignore ADDED
@@ -0,0 +1,21 @@
1
+ ## MAC OS
2
+ .DS_Store
3
+
4
+ ## TEXTMATE
5
+ *.tmproj
6
+ tmtags
7
+
8
+ ## EMACS
9
+ *~
10
+ \#*
11
+ .\#*
12
+
13
+ ## VIM
14
+ *.swp
15
+
16
+ ## PROJECT::GENERAL
17
+ coverage
18
+ rdoc
19
+ pkg
20
+
21
+ ## PROJECT::SPECIFIC
data/Gemfile ADDED
@@ -0,0 +1,92 @@
1
+ # If you're working on more than one datamapper gem at a time, then it's
2
+ # recommended to create a local Gemfile and use this instead of the git
3
+ # sources. This will make sure that you are developing against your
4
+ # other local datamapper sources that you currently work on. Gemfile.local
5
+ # will behave identically to the standard Gemfile apart from the fact that
6
+ # it fetches the gems from local paths. This means that you can use the
7
+ # same environment variables, like ADAPTER when running bundle commands.
8
+ # Gemfile.local is added to .gitignore, so you don't need to worry about
9
+ # accidentally checking local development paths into git.
10
+ #
11
+ # bundle exec rake local_gemfile
12
+ #
13
+ # will give you a Gemfile.local file that points to your local clones of
14
+ # the various datamapper gems. It's assumed that all datamapper repo clones
15
+ # reside in the same directory. You can use the Gemfile.local like so for
16
+ # running any bundle command:
17
+ #
18
+ # BUNDLE_GEMFILE=Gemfile.local bundle foo
19
+ #
20
+ # To speed up running bundle tasks, it's recommended to run
21
+ #
22
+ # bundle lock
23
+ #
24
+ # after running 'bundle install' for the first time. This will make 'bundle exec' run
25
+ # a lot faster compared to the unlocked version. With an unlocked bundle you would
26
+ # typically just run 'bundle install' from time to time to fetch the latest sources from
27
+ # upstream. When you locked your bundle, you need to run
28
+ #
29
+ # bundle install --relock
30
+ #
31
+ # to make sure to fetch the latest updates and then lock the bundle again. Gemfile.lock
32
+ # is added to the .gitignore file, so you don't need to worry about accidentally checking
33
+ # it into version control.
34
+
35
+ source 'http://rubygems.org'
36
+
37
+ DATAMAPPER = 'git://github.com/datamapper'
38
+ DM_VERSION = '~> 1.0.2'
39
+
40
+ group :runtime do # Runtime dependencies (as in the gemspec)
41
+
42
+ gem 'dm-core', DM_VERSION, :git => "#{DATAMAPPER}/dm-core.git"
43
+
44
+ gem 'sqldsl', '~> 1.4.6'
45
+ gem 'mini_fb', '~> 1.1.3'
46
+
47
+ end
48
+
49
+ group(:development) do # Development dependencies (as in the gemspec)
50
+
51
+ gem 'rake', '~> 0.8.7'
52
+ gem 'rspec', '~> 1.3', :git => 'git://github.com/snusnu/rspec', :branch => 'heckle_fix_plus_gemfile'
53
+ gem 'jeweler', '~> 1.4'
54
+
55
+ end
56
+
57
+ group(:autotest) do # Test dependencies (Mac-specific)
58
+
59
+ gem 'autotest'
60
+ gem 'autotest-growl'
61
+ gem 'autotest-fsevent'
62
+
63
+ end
64
+
65
+ group :datamapper do # We need this because we want to pin these dependencies to their git master sources
66
+
67
+ if ENV['EXTLIB']
68
+ gem 'extlib', '~> 0.9.15', :git => "#{DATAMAPPER}/extlib.git", :require => nil
69
+ else
70
+ gem 'activesupport', '~> 3.0.0', :git => 'git://github.com/rails/rails.git', :branch => '3-0-stable', :require => nil
71
+ end
72
+
73
+ plugins = ENV['PLUGINS'] || ENV['PLUGIN']
74
+ plugins = plugins.to_s.tr(',', ' ').split.uniq
75
+
76
+ plugins.each do |plugin|
77
+ gem plugin, DM_VERSION, :git => "#{DATAMAPPER}/#{plugin}.git"
78
+ end
79
+
80
+ end
81
+
82
+ group :quality do # These gems contain rake tasks that check the quality of the source code
83
+
84
+ gem 'metric_fu', '~> 1.3'
85
+ gem 'rcov', '~> 0.9.7'
86
+ gem 'reek', '~> 1.2.7'
87
+ gem 'roodi', '~> 2.1'
88
+ gem 'yard', '~> 0.5'
89
+ gem 'yardstick', '~> 0.1'
90
+
91
+ end
92
+
data/Gemfile.lock ADDED
@@ -0,0 +1,125 @@
1
+ GIT
2
+ remote: git://github.com/datamapper/dm-core.git
3
+ revision: a68434e6e1d92a1fc3ef4fdcc2deaf20b6561b5c
4
+ specs:
5
+ dm-core (1.0.2)
6
+ addressable (~> 2.2)
7
+ extlib (~> 0.9.15)
8
+
9
+ GIT
10
+ remote: git://github.com/datamapper/extlib.git
11
+ revision: f54d775f868941ceb2c43d154e719c73e9366596
12
+ specs:
13
+ extlib (0.9.16)
14
+
15
+ GIT
16
+ remote: git://github.com/snusnu/rspec
17
+ revision: daa261ae5798d56e6c9688e9d1e016b831fcd529
18
+ branch: heckle_fix_plus_gemfile
19
+ specs:
20
+ rspec (1.3.0)
21
+
22
+ GEM
23
+ remote: http://rubygems.org/
24
+ specs:
25
+ Saikuro (1.1.0)
26
+ activesupport (3.0.0)
27
+ addressable (2.2.1)
28
+ arrayfields (4.7.4)
29
+ autotest (4.3.2)
30
+ autotest-fsevent (0.2.3)
31
+ sys-uname
32
+ autotest-growl (0.2.5)
33
+ chronic (0.2.3)
34
+ hoe (>= 1.2.1)
35
+ churn (0.0.12)
36
+ chronic (~> 0.2.3)
37
+ hirb
38
+ json_pure
39
+ main
40
+ ruby_parser (~> 2.0.4)
41
+ sexp_processor (~> 3.0.3)
42
+ fattr (2.1.0)
43
+ flay (1.4.1)
44
+ ruby_parser (~> 2.0)
45
+ sexp_processor (~> 3.0)
46
+ flog (2.5.0)
47
+ ruby_parser (~> 2.0)
48
+ sexp_processor (~> 3.0)
49
+ gemcutter (0.6.1)
50
+ git (1.2.5)
51
+ hashie (0.4.0)
52
+ hirb (0.3.3)
53
+ hoe (2.6.2)
54
+ rake (>= 0.8.7)
55
+ rubyforge (>= 2.0.4)
56
+ jeweler (1.4.0)
57
+ gemcutter (>= 0.1.0)
58
+ git (>= 1.2.5)
59
+ rubyforge (>= 2.0.0)
60
+ json_pure (1.4.6)
61
+ main (4.2.0)
62
+ arrayfields (>= 4.7.4)
63
+ fattr (>= 2.1.0)
64
+ metric_fu (1.5.1)
65
+ Saikuro (>= 1.1.0)
66
+ activesupport (>= 2.0.0)
67
+ chronic (>= 0.2.3)
68
+ churn (>= 0.0.7)
69
+ flay (>= 1.2.1)
70
+ flog (>= 2.2.0)
71
+ rails_best_practices (>= 0.3.16)
72
+ rcov (>= 0.8.3.3)
73
+ reek (>= 1.2.6)
74
+ roodi (>= 2.1.0)
75
+ mime-types (1.16)
76
+ mini_fb (1.1.3)
77
+ hashie
78
+ rest-client
79
+ rails_best_practices (0.4.0)
80
+ ruby2ruby (>= 1.2.4)
81
+ ruby_parser (>= 2.0.4)
82
+ rake (0.8.7)
83
+ rcov (0.9.8)
84
+ reek (1.2.8)
85
+ ruby2ruby (~> 1.2)
86
+ ruby_parser (~> 2.0)
87
+ sexp_processor (~> 3.0)
88
+ rest-client (1.6.1)
89
+ mime-types (>= 1.16)
90
+ roodi (2.1.0)
91
+ ruby_parser
92
+ ruby2ruby (1.2.5)
93
+ ruby_parser (~> 2.0)
94
+ sexp_processor (~> 3.0)
95
+ ruby_parser (2.0.5)
96
+ sexp_processor (~> 3.0)
97
+ rubyforge (2.0.4)
98
+ json_pure (>= 1.1.7)
99
+ sexp_processor (3.0.5)
100
+ sqldsl (1.4.6)
101
+ sys-uname (0.8.4)
102
+ yard (0.6.1)
103
+ yardstick (0.1.0)
104
+ yard (~> 0.2)
105
+
106
+ PLATFORMS
107
+ ruby
108
+
109
+ DEPENDENCIES
110
+ autotest
111
+ autotest-fsevent
112
+ autotest-growl
113
+ dm-core (~> 1.0.2)!
114
+ extlib (~> 0.9.15)!
115
+ jeweler (~> 1.4)
116
+ metric_fu (~> 1.3)
117
+ mini_fb (~> 1.1.3)
118
+ rake (~> 0.8.7)
119
+ rcov (~> 0.9.7)
120
+ reek (~> 1.2.7)
121
+ roodi (~> 2.1)
122
+ rspec (~> 1.3)!
123
+ sqldsl (~> 1.4.6)
124
+ yard (~> 0.5)
125
+ yardstick (~> 0.1)
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 Gabor Ratky
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,17 @@
1
+ = dm-fql-adapter
2
+
3
+ A DataMapper adapter for querying Facebook using FQL. Work in progress.
4
+
5
+ == Note on Patches/Pull Requests
6
+
7
+ * Fork the project.
8
+ * Make your feature addition or bug fix.
9
+ * Add tests for it. This is important so I don't break it in a
10
+ future version unintentionally.
11
+ * Commit, do not mess with rakefile, version, or history.
12
+ (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
13
+ * Send me a pull request. Bonus points for topic branches.
14
+
15
+ == Copyright
16
+
17
+ Copyright (c) 2010 Gabor Ratky, Secret Sauce Partners, Inc. See LICENSE for details.
data/Rakefile ADDED
@@ -0,0 +1,31 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'rake'
4
+
5
+ begin
6
+ require 'jeweler'
7
+
8
+ Jeweler::Tasks.new do |gem|
9
+ gem.name = 'dm-fql-adapter'
10
+ gem.summary = 'FQL Adapter for DataMapper'
11
+ gem.description = gem.summary
12
+ gem.email = 'gabor@secretsaucepartners.com'
13
+ gem.homepage = 'http://github.com/sspinc/%s' % gem.name
14
+ gem.authors = [ 'Gabor Ratky' ]
15
+ gem.has_rdoc = 'yard'
16
+
17
+ gem.rubyforge_project = 'datamapper'
18
+
19
+ gem.add_dependency 'dm-core', '~> 1.0.2'
20
+ gem.add_dependency 'sqldsl', '~> 1.4.6'
21
+ gem.add_dependency 'mini_fb', '~> 1.1.3'
22
+
23
+ gem.add_development_dependency 'rspec', '~> 1.3'
24
+ end
25
+
26
+ Jeweler::GemcutterTasks.new
27
+
28
+ FileList['tasks/**/*.rake'].each { |task| import task }
29
+ rescue LoadError
30
+ puts 'Jeweler (or a dependency) not available. Install it with: gem install jeweler'
31
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -0,0 +1,77 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{dm-fql-adapter}
8
+ s.version = "0.1.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Gabor Ratky"]
12
+ s.date = %q{2010-09-13}
13
+ s.description = %q{FQL Adapter for DataMapper}
14
+ s.email = %q{gabor@secretsaucepartners.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".gitignore",
22
+ "Gemfile",
23
+ "Gemfile.lock",
24
+ "LICENSE",
25
+ "README.rdoc",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "dm-fql-adapter.gemspec",
29
+ "lib/dm-fql-adapter.rb",
30
+ "lib/dm-fql-adapter/adapter.rb",
31
+ "lib/dm-fql-adapter/spec/setup.rb",
32
+ "spec/adapter_spec.rb",
33
+ "spec/rcov.opts",
34
+ "spec/resources/user.rb",
35
+ "spec/spec.opts",
36
+ "spec/spec_helper.rb",
37
+ "tasks/local_gemfile.rake",
38
+ "tasks/spec.rake",
39
+ "tasks/yard.rake",
40
+ "tasks/yardstick.rake"
41
+ ]
42
+ s.has_rdoc = %q{yard}
43
+ s.homepage = %q{http://github.com/sspinc/dm-fql-adapter}
44
+ s.rdoc_options = ["--charset=UTF-8"]
45
+ s.require_paths = ["lib"]
46
+ s.rubyforge_project = %q{datamapper}
47
+ s.rubygems_version = %q{1.3.7}
48
+ s.summary = %q{FQL Adapter for DataMapper}
49
+ s.test_files = [
50
+ "spec/adapter_spec.rb",
51
+ "spec/resources/user.rb",
52
+ "spec/spec_helper.rb"
53
+ ]
54
+
55
+ if s.respond_to? :specification_version then
56
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
57
+ s.specification_version = 3
58
+
59
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
60
+ s.add_runtime_dependency(%q<dm-core>, ["~> 1.0.2"])
61
+ s.add_runtime_dependency(%q<sqldsl>, ["~> 1.4.6"])
62
+ s.add_runtime_dependency(%q<mini_fb>, ["~> 1.1.3"])
63
+ s.add_development_dependency(%q<rspec>, ["~> 1.3"])
64
+ else
65
+ s.add_dependency(%q<dm-core>, ["~> 1.0.2"])
66
+ s.add_dependency(%q<sqldsl>, ["~> 1.4.6"])
67
+ s.add_dependency(%q<mini_fb>, ["~> 1.1.3"])
68
+ s.add_dependency(%q<rspec>, ["~> 1.3"])
69
+ end
70
+ else
71
+ s.add_dependency(%q<dm-core>, ["~> 1.0.2"])
72
+ s.add_dependency(%q<sqldsl>, ["~> 1.4.6"])
73
+ s.add_dependency(%q<mini_fb>, ["~> 1.1.3"])
74
+ s.add_dependency(%q<rspec>, ["~> 1.3"])
75
+ end
76
+ end
77
+
@@ -0,0 +1,33 @@
1
+ module DataMapper
2
+ module Adapters
3
+ class FqlAdapter < AbstractAdapter
4
+
5
+ def initialize(name, options={})
6
+ super
7
+ self.resource_naming_convention = DataMapper::NamingConventions::Resource::Underscored
8
+ end
9
+
10
+ def session
11
+ @session ||= options[:session] || MiniFB::OAuthSession.new(options[:access_token], options[:locale] || 'en_US')
12
+ end
13
+
14
+ def compile(query)
15
+ Select[query.fields.map(&:name)].from[query.model.storage_name(name).to_sym].where do
16
+ query.conditions.each do |condition|
17
+ case condition
18
+ when Query::Conditions::EqualToComparison then equal condition.subject.name, condition.value
19
+ end
20
+ end
21
+ end.to_sql
22
+ end
23
+
24
+ def read(query)
25
+ DataMapper.logger.debug(statement = compile(query))
26
+ session.fql(statement)
27
+ end
28
+
29
+ end # class FqlAdapter
30
+
31
+ const_added(:FqlAdapter)
32
+ end # module Adapters
33
+ end # module DataMapper
@@ -0,0 +1,18 @@
1
+ require 'dm-fql-adapter'
2
+ require 'dm-core/spec/setup'
3
+
4
+ module DataMapper
5
+ module Spec
6
+ module Adapters
7
+
8
+ class FqlAdapter < Adapter
9
+ def connection_uri
10
+ "https://graph.facebook.com"
11
+ end
12
+ end
13
+
14
+ use FqlAdapter
15
+
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,4 @@
1
+ require 'mini_fb'
2
+ require 'sqldsl'
3
+
4
+ require 'dm-fql-adapter/adapter'
@@ -0,0 +1,47 @@
1
+ require 'spec_helper'
2
+
3
+ describe DataMapper::Adapters::FqlAdapter do
4
+ let(:adapter) { DataMapper.setup(:default, :adapter => :fql) }
5
+ let(:repository) { DataMapper.repository(adapter.name) }
6
+ subject { adapter }
7
+
8
+ context 'when setting up with an options hash' do
9
+ subject { DataMapper.setup(:default, :adapter => :fql, :access_token => 'abcdef' ) }
10
+
11
+ its(:session) { should be_instance_of(MiniFB::OAuthSession) }
12
+ end
13
+
14
+ context 'when setting up with an existing session' do
15
+ let(:session) { MiniFB::OAuthSession.new('token') }
16
+ subject { DataMapper.setup(:default, :adapter => :fql, :session => session) }
17
+
18
+ its(:session) { should be_equal(session) }
19
+ end
20
+
21
+ describe '#compile' do
22
+ context 'when querying for a single resource' do
23
+ let(:query) { DataMapper::Query.new(repository, User, :conditions => { :uid => 1 }) }
24
+ subject { adapter.compile(query) }
25
+
26
+ it { should == "select uid, name from user where uid = 1" }
27
+ end
28
+ end
29
+
30
+ describe '#read' do
31
+ let(:session) { mock(MiniFB::OAuthSession) }
32
+ let(:adapter) { DataMapper.setup(:default, :adapter => :fql, :session => session) }
33
+
34
+ context 'when querying for a single resource' do
35
+ let(:query) { mock(DataMapper::Query) }
36
+ let(:fql) { 'select uid, name from user where uid = 1' }
37
+ subject { adapter.read(query) }
38
+
39
+ before do
40
+ adapter.should_receive(:compile).with(query).and_return(fql)
41
+ session.should_receive(:fql).with(fql).and_return([Hashie::Mash.new({:uid => 1, :name => 'Gabor Ratky'})])
42
+ end
43
+
44
+ it { should == [ { 'uid' => 1, 'name' => 'Gabor Ratky' }]}
45
+ end
46
+ end
47
+ end
data/spec/rcov.opts ADDED
@@ -0,0 +1,5 @@
1
+ --exclude "spec,^/"
2
+ --sort coverage
3
+ --callsites
4
+ --xrefs
5
+ --text-summary
@@ -0,0 +1,6 @@
1
+ class User
2
+ include DataMapper::Resource
3
+
4
+ property :uid, Integer, :key => true
5
+ property :name, String
6
+ end
data/spec/spec.opts ADDED
@@ -0,0 +1 @@
1
+ --color
@@ -0,0 +1,10 @@
1
+ require 'dm-core'
2
+ require 'dm-core/spec/shared/adapter_spec'
3
+
4
+ require 'dm-fql-adapter/spec/setup'
5
+
6
+ # Requires test resources in ./resources/ and its subdirectories.
7
+ Dir["#{File.dirname(__FILE__)}/resources/**/*.rb"].each {|f| require f}
8
+
9
+ Spec::Runner.configure do |config|
10
+ end
@@ -0,0 +1,16 @@
1
+ desc "Support bundling from local source code (allows BUNDLE_GEMFILE=Gemfile.local bundle foo)"
2
+ task :local_gemfile do |t|
3
+
4
+ root = Pathname(__FILE__).dirname.parent
5
+ datamapper = root.parent
6
+
7
+ root.join('Gemfile.local').open('w') do |f|
8
+ root.join('Gemfile').open.each do |line|
9
+ line.sub!(/DATAMAPPER = 'git:\/\/github.com\/datamapper'/, "DATAMAPPER = '#{datamapper}'")
10
+ line.sub!(/:git => \"#\{DATAMAPPER\}\/(.+?)(?:\.git)?\"/, ':path => "#{DATAMAPPER}/\1"')
11
+ line.sub!(/do_options\[:git\] = \"#\{DATAMAPPER\}\/(.+?)(?:\.git)?\"/, 'do_options[:path] = "#{DATAMAPPER}/\1"')
12
+ f.puts line
13
+ end
14
+ end
15
+
16
+ end
data/tasks/spec.rake ADDED
@@ -0,0 +1,41 @@
1
+ spec_defaults = lambda do |spec|
2
+ spec.pattern = 'spec/**/*_spec.rb'
3
+ spec.libs << 'lib' << 'spec'
4
+ spec.spec_opts << '--options' << 'spec/spec.opts'
5
+ end
6
+
7
+ begin
8
+ require 'spec/rake/spectask'
9
+
10
+ Spec::Rake::SpecTask.new(:spec, &spec_defaults)
11
+ rescue LoadError
12
+ task :spec do
13
+ abort 'rspec is not available. In order to run spec, you must: gem install rspec'
14
+ end
15
+ end
16
+
17
+ begin
18
+ require 'rcov'
19
+ require 'spec/rake/verify_rcov'
20
+
21
+ Spec::Rake::SpecTask.new(:rcov) do |rcov|
22
+ spec_defaults.call(rcov)
23
+ rcov.rcov = true
24
+ rcov.rcov_opts = File.read('spec/rcov.opts').split(/\s+/)
25
+ end
26
+
27
+ RCov::VerifyTask.new(:verify_rcov => :rcov) do |rcov|
28
+ rcov.threshold = 100
29
+ end
30
+ rescue LoadError
31
+ %w[ rcov verify_rcov ].each do |name|
32
+ task name do
33
+ abort "rcov is not available. In order to run #{name}, you must: gem install rcov"
34
+ end
35
+ end
36
+ end
37
+
38
+ task :spec => :check_dependencies
39
+ task :rcov => :check_dependencies
40
+
41
+ task :default => :spec
data/tasks/yard.rake ADDED
@@ -0,0 +1,9 @@
1
+ begin
2
+ require 'yard'
3
+
4
+ YARD::Rake::YardocTask.new
5
+ rescue LoadError
6
+ task :yard do
7
+ abort 'YARD is not available. In order to run yard, you must: gem install yard'
8
+ end
9
+ end
@@ -0,0 +1,19 @@
1
+ begin
2
+ require 'pathname'
3
+ require 'yardstick/rake/measurement'
4
+ require 'yardstick/rake/verify'
5
+
6
+ # yardstick_measure task
7
+ Yardstick::Rake::Measurement.new
8
+
9
+ # verify_measurements task
10
+ Yardstick::Rake::Verify.new do |verify|
11
+ verify.threshold = 100
12
+ end
13
+ rescue LoadError
14
+ %w[ yardstick_measure verify_measurements ].each do |name|
15
+ task name.to_s do
16
+ abort "Yardstick is not available. In order to run #{name}, you must: gem install yardstick"
17
+ end
18
+ end
19
+ end
metadata ADDED
@@ -0,0 +1,152 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dm-fql-adapter
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Gabor Ratky
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-09-13 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ prerelease: false
23
+ type: :runtime
24
+ name: dm-core
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ hash: 19
31
+ segments:
32
+ - 1
33
+ - 0
34
+ - 2
35
+ version: 1.0.2
36
+ requirement: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ prerelease: false
39
+ type: :runtime
40
+ name: sqldsl
41
+ version_requirements: &id002 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ hash: 11
47
+ segments:
48
+ - 1
49
+ - 4
50
+ - 6
51
+ version: 1.4.6
52
+ requirement: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ prerelease: false
55
+ type: :runtime
56
+ name: mini_fb
57
+ version_requirements: &id003 !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ hash: 21
63
+ segments:
64
+ - 1
65
+ - 1
66
+ - 3
67
+ version: 1.1.3
68
+ requirement: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ prerelease: false
71
+ type: :development
72
+ name: rspec
73
+ version_requirements: &id004 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ hash: 9
79
+ segments:
80
+ - 1
81
+ - 3
82
+ version: "1.3"
83
+ requirement: *id004
84
+ description: FQL Adapter for DataMapper
85
+ email: gabor@secretsaucepartners.com
86
+ executables: []
87
+
88
+ extensions: []
89
+
90
+ extra_rdoc_files:
91
+ - LICENSE
92
+ - README.rdoc
93
+ files:
94
+ - .document
95
+ - .gitignore
96
+ - Gemfile
97
+ - Gemfile.lock
98
+ - LICENSE
99
+ - README.rdoc
100
+ - Rakefile
101
+ - VERSION
102
+ - dm-fql-adapter.gemspec
103
+ - lib/dm-fql-adapter.rb
104
+ - lib/dm-fql-adapter/adapter.rb
105
+ - lib/dm-fql-adapter/spec/setup.rb
106
+ - spec/adapter_spec.rb
107
+ - spec/rcov.opts
108
+ - spec/resources/user.rb
109
+ - spec/spec.opts
110
+ - spec/spec_helper.rb
111
+ - tasks/local_gemfile.rake
112
+ - tasks/spec.rake
113
+ - tasks/yard.rake
114
+ - tasks/yardstick.rake
115
+ has_rdoc: yard
116
+ homepage: http://github.com/sspinc/dm-fql-adapter
117
+ licenses: []
118
+
119
+ post_install_message:
120
+ rdoc_options:
121
+ - --charset=UTF-8
122
+ require_paths:
123
+ - lib
124
+ required_ruby_version: !ruby/object:Gem::Requirement
125
+ none: false
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ hash: 3
130
+ segments:
131
+ - 0
132
+ version: "0"
133
+ required_rubygems_version: !ruby/object:Gem::Requirement
134
+ none: false
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ hash: 3
139
+ segments:
140
+ - 0
141
+ version: "0"
142
+ requirements: []
143
+
144
+ rubyforge_project: datamapper
145
+ rubygems_version: 1.3.7
146
+ signing_key:
147
+ specification_version: 3
148
+ summary: FQL Adapter for DataMapper
149
+ test_files:
150
+ - spec/adapter_spec.rb
151
+ - spec/resources/user.rb
152
+ - spec/spec_helper.rb