gram 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2 @@
1
+ pkg/
2
+ tmp/
@@ -1,14 +1,77 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gram (0.0.1)
4
+ gram (0.1.0)
5
+ activesupport
6
+ i18n
5
7
  rest-client
8
+ thor
6
9
 
7
10
  GEM
8
11
  remote: http://rubygems.org/
9
12
  specs:
13
+ abstract (1.0.0)
14
+ actionmailer (3.0.5)
15
+ actionpack (= 3.0.5)
16
+ mail (~> 2.2.15)
17
+ actionpack (3.0.5)
18
+ activemodel (= 3.0.5)
19
+ activesupport (= 3.0.5)
20
+ builder (~> 2.1.2)
21
+ erubis (~> 2.6.6)
22
+ i18n (~> 0.4)
23
+ rack (~> 1.2.1)
24
+ rack-mount (~> 0.6.13)
25
+ rack-test (~> 0.5.7)
26
+ tzinfo (~> 0.3.23)
27
+ activemodel (3.0.5)
28
+ activesupport (= 3.0.5)
29
+ builder (~> 2.1.2)
30
+ i18n (~> 0.4)
31
+ activerecord (3.0.5)
32
+ activemodel (= 3.0.5)
33
+ activesupport (= 3.0.5)
34
+ arel (~> 2.0.2)
35
+ tzinfo (~> 0.3.23)
36
+ activeresource (3.0.5)
37
+ activemodel (= 3.0.5)
38
+ activesupport (= 3.0.5)
39
+ activesupport (3.0.5)
40
+ arel (2.0.9)
41
+ builder (2.1.2)
10
42
  diff-lcs (1.1.2)
43
+ erubis (2.6.6)
44
+ abstract (>= 1.0.0)
45
+ generator_spec (0.8.2)
46
+ rails (~> 3.0)
47
+ rspec-rails
48
+ i18n (0.5.0)
49
+ mail (2.2.15)
50
+ activesupport (>= 2.3.6)
51
+ i18n (>= 0.4.0)
52
+ mime-types (~> 1.16)
53
+ treetop (~> 1.4.8)
11
54
  mime-types (1.16)
55
+ polyglot (0.3.1)
56
+ rack (1.2.2)
57
+ rack-mount (0.6.13)
58
+ rack (>= 1.0.0)
59
+ rack-test (0.5.7)
60
+ rack (>= 1.0)
61
+ rails (3.0.5)
62
+ actionmailer (= 3.0.5)
63
+ actionpack (= 3.0.5)
64
+ activerecord (= 3.0.5)
65
+ activeresource (= 3.0.5)
66
+ activesupport (= 3.0.5)
67
+ bundler (~> 1.0)
68
+ railties (= 3.0.5)
69
+ railties (3.0.5)
70
+ actionpack (= 3.0.5)
71
+ activesupport (= 3.0.5)
72
+ rake (>= 0.8.7)
73
+ thor (~> 0.14.4)
74
+ rake (0.8.7)
12
75
  rest-client (1.6.1)
13
76
  mime-types (>= 1.16)
14
77
  rspec (2.5.0)
@@ -19,12 +82,22 @@ GEM
19
82
  rspec-expectations (2.5.0)
20
83
  diff-lcs (~> 1.1.2)
21
84
  rspec-mocks (2.5.0)
85
+ rspec-rails (2.5.0)
86
+ actionpack (~> 3.0)
87
+ activesupport (~> 3.0)
88
+ railties (~> 3.0)
89
+ rspec (~> 2.5.0)
90
+ thor (0.14.6)
91
+ treetop (1.4.9)
92
+ polyglot (>= 0.3.1)
93
+ tzinfo (0.3.25)
22
94
 
23
95
  PLATFORMS
24
96
  ruby
25
97
 
26
98
  DEPENDENCIES
99
+ activemodel
27
100
  bundler (~> 1.0.7)
101
+ generator_spec (~> 0.8.1)
28
102
  gram!
29
- rest-client
30
103
  rspec (~> 2.5.0)
data/bin/gram CHANGED
@@ -3,8 +3,13 @@ $: << 'lib'
3
3
  require 'gram'
4
4
 
5
5
  component = ARGV.shift
6
+ action = ARGV.shift
6
7
  args = ARGV
7
8
 
8
9
  raise "Unknown Gram component. Available components are: #{Gram::COMPONENTS.join(', ')}" unless Gram::COMPONENTS.include?(component)
9
10
 
10
- eval("Gram::#{component.capitalize}").run(*args)
11
+ component_klass = eval("Gram::#{component.capitalize}")
12
+
13
+ raise "Unknown action for #{component} component.\n#{component_klass.banner}\n" unless component_klass::ACTIONS.keys.map(&:to_s).include?(action)
14
+
15
+ component_klass.send(action, *args)
@@ -15,9 +15,14 @@ Gem::Specification.new do |s|
15
15
  s.rubyforge_project = "gram"
16
16
 
17
17
  s.add_runtime_dependency 'rest-client'
18
+ s.add_runtime_dependency 'thor'
19
+ s.add_runtime_dependency 'i18n'
20
+ s.add_runtime_dependency 'activesupport'
18
21
 
19
22
  s.add_development_dependency 'bundler', '~> 1.0.7'
20
23
  s.add_development_dependency 'rspec', '~> 2.5.0'
24
+ s.add_development_dependency 'generator_spec', '~> 0.8.1'
25
+ s.add_development_dependency 'activemodel'
21
26
 
22
27
  s.files = `git ls-files`.split("\n")
23
28
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -1,6 +1,9 @@
1
1
  require 'gram/blog'
2
2
  require 'gram/blog/parser'
3
3
 
4
+ require 'gram/gem'
5
+ require 'gram/gem/generator'
6
+
4
7
  module Gram
5
- COMPONENTS = %w(blog)
8
+ COMPONENTS = %w(blog gem)
6
9
  end
@@ -1,19 +1,61 @@
1
1
  require 'rest-client'
2
+ require 'json'
2
3
 
3
4
  module Gram
4
5
  module Blog
6
+
7
+ ACTIONS = { upload: {
8
+ description: "Uploads the markdown file with filename FILE",
9
+ arguments: %w(FILE),
10
+ },
11
+ download: {
12
+ description: "Downloads all blog posts to the current folder.",
13
+ arguments: %w(),
14
+ }
15
+ }
16
+
5
17
  class << self
6
18
 
7
- def run(*args)
8
- file = args.first
19
+ def banner
20
+ out = "Available actions:\n"
21
+ ACTIONS.each_pair do |action, metadata|
22
+ out << "\n\t#{action} #{metadata[:arguments].join(' ')}\t\t#{metadata[:description]}"
23
+ end
24
+ out
25
+ end
26
+
27
+ # ACTIONS
28
+
29
+ def upload(file)
9
30
  raise "File #{file} does not exist." unless File.exists?(file)
10
- puts "Gram::Blog posting..."
31
+ puts "Gram::Blog uploading..."
11
32
  post = Parser.parse(file)
12
33
  response = RestClient.post("http://codegram.com/api/posts", token: get_token, post: post )
13
34
  puts "Response Code: #{response.code}"
14
35
  puts "Response Body: #{response.body}"
15
36
  end
16
37
 
38
+ def download
39
+ posts = JSON.parse(RestClient.get("http://codegram.com/api/posts?token=#{get_token}"))
40
+ posts.each do |post|
41
+ post = post["post"]
42
+ header = """
43
+ ---
44
+ title: #{post["title"]}
45
+ tagline: #{post["tagline"]}
46
+ ---
47
+
48
+ """.strip
49
+ puts "Downloading #{post["cached_slug"]}.markdown..."
50
+ File.open("#{post["cached_slug"]}.markdown", 'w') do |f|
51
+ f.write header
52
+ f.write "\n\n"
53
+ f.write post["body"]
54
+ f.write "\n"
55
+ end
56
+ end
57
+ end
58
+
17
59
  private
18
60
 
19
61
  def get_token
@@ -10,12 +10,9 @@ module Gram
10
10
  headers = raw_content.match(/---(.*)---/m)
11
11
  yaml = YAML.load($1.strip)
12
12
 
13
- title = yaml["title"]
14
- tagline = yaml["tagline"]
15
-
16
13
  content = raw_content.gsub(/---.*---/m, '').strip
17
14
 
18
- { title: title, tagline: tagline, body: content }
15
+ yaml.update({ 'body' => content })
19
16
  end
20
17
 
21
18
  end
@@ -0,0 +1,30 @@
1
+ module Gram
2
+ module Gem
3
+
4
+ ACTIONS = { create: {
5
+ description: "Creates a new gem with the given NAME",
6
+ arguments: %w(NAME [--rails]),
7
+ },
8
+ }
9
+
10
+ class << self
11
+
12
+ def banner
13
+ out = "Available actions:\n"
14
+ ACTIONS.each_pair do |action, metadata|
15
+ out << "\n\t#{action} #{metadata[:arguments].join(' ')}\t\t#{metadata[:description]}"
16
+ end
17
+ out
18
+ end
19
+
20
+ # ACTIONS
21
+
22
+ def create(name, *options)
23
+ puts "Gram::Gem generating gem scaffold for #{name}..."
24
+ Generator.new.generate(name, options)
25
+ puts "Generated on ./#{name} :)"
26
+ end
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,62 @@
1
+ require 'thor'
2
+ require 'active_support/inflector'
3
+
4
+ module Gram
5
+ module Gem
6
+ class Generator < Thor
7
+ include Thor::Actions
8
+
9
+ source_root File.dirname(__FILE__)
10
+
11
+ no_tasks do
12
+ def generate(name, options)
13
+ @rails = true if options.include?("--rails")
14
+ @underscored = name.underscore
15
+ @camelized = name.camelize
16
+
17
+ run "bundle gem #{@underscored}"
18
+
19
+ remove_file("#{@underscored}/Rakefile")
20
+ template('templates/Rakefile.tt', "#{@underscored}/Rakefile")
21
+
22
+ remove_file("#{@underscored}/.gitignore")
23
+ template('templates/gitignore.tt', "#{@underscored}/.gitignore")
24
+
25
+ template('templates/Readme.tt', "#{@underscored}/Readme.md")
26
+ template('templates/rvmrc.tt', "#{@underscored}/.rvmrc")
27
+
28
+ empty_directory "#{@underscored}/spec"
29
+ template('templates/spec/spec_helper.tt', "#{@underscored}/spec/spec_helper.rb")
30
+
31
+ inject_into_file "#{@underscored}/#{@underscored}.gemspec", :after => "s.rubyforge_project = \"#{@underscored}\"" do
32
+ runtime_dependencies = []
33
+ runtime_dependencies << " s.add_runtime_dependency 'activerecord', '~> 3.0.5'" if rails
34
+
35
+ development_dependencies = []
36
+ development_dependencies << " s.add_runtime_dependency 'sqlite3'" if rails
37
+ development_dependencies += [
38
+ " s.add_development_dependency 'rspec', '~> 2.5.0'",
39
+ " s.add_development_dependency 'yard'",
40
+ " s.add_development_dependency 'bluecloth'" ]
41
+
42
+ "\n\n" + runtime_dependencies.join("\n") << "\n\n"<< development_dependencies.join("\n")
43
+ end
44
+ end
45
+ end
46
+
47
+ private
48
+
49
+ def underscored
50
+ @underscored
51
+ end
52
+
53
+ def camelized
54
+ @camelized
55
+ end
56
+
57
+ def rails
58
+ @rails
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,47 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rspec/core/rake_task'
5
+ desc "Run <%= underscored %> specs"
6
+ RSpec::Core::RakeTask.new
7
+
8
+ require 'yard'
9
+ YARD::Rake::YardocTask.new(:docs) do |t|
10
+ t.files = ['lib/**/*.rb']
11
+ t.options = ['-m', 'markdown', '--no-private', '-r', 'Readme.md', '--title', '<%= camelized %> documentation']
12
+ end
13
+
14
+ site = 'doc'
15
+ source_branch = 'master'
16
+ deploy_branch = 'gh-pages'
17
+
18
+ desc "generate and deploy documentation website to github pages"
19
+ multitask :pages do
20
+ puts ">>> Deploying #{deploy_branch} branch to Github Pages <<<"
21
+ require 'git'
22
+ repo = Git.open('.')
23
+ puts "\n>>> Checking out #{deploy_branch} branch <<<\n"
24
+ repo.branch("#{deploy_branch}").checkout
25
+ (Dir["*"] - [site]).each { |f| rm_rf(f) }
26
+ Dir["#{site}/*"].each {|f| mv(f, "./")}
27
+ rm_rf(site)
28
+ puts "\n>>> Moving generated site files <<<\n"
29
+ Dir["**/*"].each {|f| repo.add(f) }
30
+ repo.status.deleted.each {|f, s| repo.remove(f)}
31
+ puts "\n>>> Commiting: Site updated at #{Time.now.utc} <<<\n"
32
+ message = ENV["MESSAGE"] || "Site updated at #{Time.now.utc}"
33
+ repo.commit(message)
34
+ puts "\n>>> Pushing generated site to #{deploy_branch} branch <<<\n"
35
+ repo.push
36
+ puts "\n>>> Github Pages deploy complete <<<\n"
37
+ repo.branch("#{source_branch}").checkout
38
+ end
39
+
40
+ task :doc => [:docs]
41
+
42
+ desc "Generate and open class diagram (needs Graphviz installed)"
43
+ task :graph do |t|
44
+ `bundle exec yard graph -d --full --no-private | dot -Tpng -o graph.png && open graph.png`
45
+ end
46
+
47
+ task :default => [:spec]
@@ -0,0 +1,38 @@
1
+ #<%= underscored %>
2
+
3
+ <%= camelized %> is a lightweight gem aimed at saving the world.
4
+
5
+ ##Install
6
+
7
+ $ gem install <%= underscored %>
8
+
9
+ Or in your Gemfile:
10
+
11
+ gem '<%= underscored %>'
12
+
13
+ ##Usage
14
+
15
+ (usage instructions)
16
+
17
+ ##Under the hood
18
+
19
+ Run the test suite by typing:
20
+
21
+ rake spec
22
+
23
+ You can also build the documentation with the following command:
24
+
25
+ rake docs
26
+
27
+ ## Note on Patches/Pull Requests
28
+
29
+ * Fork the project.
30
+ * Make your feature addition or bug fix.
31
+ * Add tests for it. This is important so I don't break it in a
32
+ future version unintentionally.
33
+ * Commit, do not mess with rakefile, version, or history. (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)
34
+ * Send us a pull request. Bonus points for topic branches.
35
+
36
+ ## Copyright
37
+
38
+ Copyright (c) 2011 Codegram. See LICENSE for details.
@@ -0,0 +1,6 @@
1
+ *.gem
2
+ .bundle
3
+ pkg/*
4
+ graph.png
5
+ .yardoc/*
6
+ doc/*
@@ -0,0 +1 @@
1
+ rvm --create use ruby-1.9.2@<%= underscored %>
@@ -0,0 +1,18 @@
1
+ require 'rspec'
2
+ require '<%= underscored %>'
3
+ <% if rails %>
4
+
5
+ ActiveRecord::Base.establish_connection(
6
+ :adapter => 'sqlite3',
7
+ :database => ':memory:'
8
+ )
9
+
10
+ ActiveRecord::Schema.define do
11
+ create_table :articles do |t|
12
+ t.string :name
13
+ t.integer :price
14
+
15
+ t.timestamps
16
+ end
17
+ end
18
+ <% end %>
@@ -1,3 +1,3 @@
1
1
  module Gram
2
- VERSION = '0.0.1'
2
+ VERSION = '0.1.0'
3
3
  end
@@ -11,6 +11,7 @@ module Gram
11
11
  ---
12
12
  title: My title
13
13
  tagline: My tagline
14
+ published: false
14
15
  ---
15
16
 
16
17
  #My post
@@ -19,9 +20,10 @@ Blah
19
20
  """
20
21
  File.stub(:read).with(file).and_return raw
21
22
 
22
- subject.parse(file).should == { title: 'My title',
23
- tagline: 'My tagline',
24
- body: "#My post\n#\nBlah"}
23
+ subject.parse(file).should == { 'title' => 'My title',
24
+ 'tagline' => 'My tagline',
25
+ 'published' => false,
26
+ 'body' => "#My post\n#\nBlah"}
25
27
  end
26
28
  end
27
29
 
@@ -7,11 +7,11 @@ module Gram
7
7
  File.stub(:exists?).and_return true
8
8
  end
9
9
 
10
- describe ".run" do
10
+ describe ".upload" do
11
11
  it 'parses the file' do
12
12
  subject::Parser.should_receive(:parse).with("my_post.md")
13
13
  expect {
14
- subject.run("my_post.md")
14
+ subject.upload("my_post.md")
15
15
  }.to raise_error(RestClient::InternalServerError)
16
16
  end
17
17
  it 'sends a post request' do
@@ -23,7 +23,33 @@ module Gram
23
23
 
24
24
  RestClient.should_receive(:post).with("http://codegram.com/api/posts", token: token, post: post).and_return response
25
25
 
26
- subject.run("my_post.md")
26
+ subject.upload("my_post.md")
27
+ end
28
+ end
29
+
30
+ describe ".download" do
31
+ it 'gets the posts' do
32
+ RestClient.stub(:get)
33
+ JSON.should_receive(:parse).and_return [ { "post" => {
34
+ "title" => "My title",
35
+ "tagline" => "My tagline",
36
+ "cached_slug" => "my-post",
37
+ "body" => "#Hello world"
38
+ } } ]
39
+
40
+ file = double(:file)
41
+ File.should_receive(:open).with('my-post.markdown', 'w').and_yield file
42
+ file.should_receive(:write).with """
43
+ ---
44
+ title: My title
45
+ tagline: My tagline
46
+ ---
47
+ """.strip
48
+ file.should_receive(:write).with "\n\n"
49
+ file.should_receive(:write).with "#Hello world"
50
+ file.should_receive(:write).with "\n"
51
+
52
+ subject.download
27
53
  end
28
54
  end
29
55
 
@@ -0,0 +1,96 @@
1
+ require 'spec_helper'
2
+ require 'fileutils'
3
+
4
+ require 'action_view'
5
+ require 'action_controller'
6
+ ActionView::Template::Handlers::ERB::ENCODING_FLAG = ActionView::ENCODING_FLAG
7
+
8
+ require 'generator_spec/test_case'
9
+
10
+ module Gram
11
+ module Gem
12
+ describe Generator do
13
+ include GeneratorSpec::TestCase
14
+ destination File.expand_path('../../../../tmp', __FILE__)
15
+ tests Generator
16
+
17
+ before(:each) do
18
+ prepare_destination
19
+ end
20
+
21
+ after(:each) do
22
+ FileUtils.rm_rf File.expand_path('../../../../tmp', __FILE__)
23
+ end
24
+
25
+ it 'is a Thor generator' do
26
+ Generator.ancestors.should include(Thor)
27
+ end
28
+
29
+ describe ".generate" do
30
+ it 'creates a new gem' do
31
+ FileUtils.chdir File.expand_path('../../../../tmp', __FILE__)
32
+ Generator.new.generate('my_gem', [])
33
+ destination_root.should have_structure {
34
+ directory "my_gem" do
35
+ file "Gemfile"
36
+ file "Rakefile"
37
+ file ".gitignore"
38
+ file ".rvmrc"
39
+ file "Readme.md"
40
+ file "my_gem.gemspec" do
41
+ contains "rspec"
42
+ contains "yard"
43
+ contains "bluecloth"
44
+ end
45
+ directory "lib" do
46
+ file "my_gem.rb"
47
+ directory "my_gem" do
48
+ file "version.rb"
49
+ end
50
+ end
51
+ directory "spec" do
52
+ file "spec_helper.rb"
53
+ end
54
+ end
55
+ }
56
+ end
57
+
58
+ context 'with --rails' do
59
+ it 'creates a new rails-ready gem' do
60
+ FileUtils.chdir File.expand_path('../../../../tmp', __FILE__)
61
+ Generator.new.generate('my_gem', ['--rails'])
62
+ destination_root.should have_structure {
63
+ directory "my_gem" do
64
+ file "Gemfile"
65
+ file "Rakefile"
66
+ file ".gitignore"
67
+ file ".rvmrc"
68
+ file "Readme.md"
69
+ file "my_gem.gemspec" do
70
+ contains "activerecord"
71
+ contains "sqlite3"
72
+
73
+ contains "rspec"
74
+ contains "yard"
75
+ contains "bluecloth"
76
+ end
77
+ directory "lib" do
78
+ file "my_gem.rb"
79
+ directory "my_gem" do
80
+ file "version.rb"
81
+ end
82
+ end
83
+ directory "spec" do
84
+ file "spec_helper.rb" do
85
+ contains "ActiveRecord"
86
+ end
87
+ end
88
+ end
89
+ }
90
+ end
91
+ end
92
+ end
93
+
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ module Gram
4
+ describe Gem do
5
+
6
+ describe ".create" do
7
+ it 'calls a gem generator' do
8
+ generator = mock(Gem::Generator)
9
+ Gem::Generator.should_receive(:new).and_return generator
10
+ generator.should_receive(:generate).with('my_gem', ['--rails'])
11
+
12
+ subject.create 'my_gem', '--rails'
13
+ end
14
+ end
15
+
16
+ end
17
+ end
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gram
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 0
8
- - 1
9
- version: 0.0.1
4
+ prerelease:
5
+ version: 0.1.0
10
6
  platform: ruby
11
7
  authors:
12
8
  - Josep M. Bach
@@ -16,7 +12,7 @@ autorequire:
16
12
  bindir: bin
17
13
  cert_chain: []
18
14
 
19
- date: 2011-02-23 00:00:00 +01:00
15
+ date: 2011-03-21 00:00:00 +01:00
20
16
  default_executable:
21
17
  dependencies:
22
18
  - !ruby/object:Gem::Dependency
@@ -27,41 +23,86 @@ dependencies:
27
23
  requirements:
28
24
  - - ">="
29
25
  - !ruby/object:Gem::Version
30
- segments:
31
- - 0
32
26
  version: "0"
33
27
  type: :runtime
34
28
  version_requirements: *id001
35
29
  - !ruby/object:Gem::Dependency
36
- name: bundler
30
+ name: thor
37
31
  prerelease: false
38
32
  requirement: &id002 !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: "0"
38
+ type: :runtime
39
+ version_requirements: *id002
40
+ - !ruby/object:Gem::Dependency
41
+ name: i18n
42
+ prerelease: false
43
+ requirement: &id003 !ruby/object:Gem::Requirement
44
+ none: false
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: "0"
49
+ type: :runtime
50
+ version_requirements: *id003
51
+ - !ruby/object:Gem::Dependency
52
+ name: activesupport
53
+ prerelease: false
54
+ requirement: &id004 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: "0"
60
+ type: :runtime
61
+ version_requirements: *id004
62
+ - !ruby/object:Gem::Dependency
63
+ name: bundler
64
+ prerelease: false
65
+ requirement: &id005 !ruby/object:Gem::Requirement
39
66
  none: false
40
67
  requirements:
41
68
  - - ~>
42
69
  - !ruby/object:Gem::Version
43
- segments:
44
- - 1
45
- - 0
46
- - 7
47
70
  version: 1.0.7
48
71
  type: :development
49
- version_requirements: *id002
72
+ version_requirements: *id005
50
73
  - !ruby/object:Gem::Dependency
51
74
  name: rspec
52
75
  prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
76
+ requirement: &id006 !ruby/object:Gem::Requirement
54
77
  none: false
55
78
  requirements:
56
79
  - - ~>
57
80
  - !ruby/object:Gem::Version
58
- segments:
59
- - 2
60
- - 5
61
- - 0
62
81
  version: 2.5.0
63
82
  type: :development
64
- version_requirements: *id003
83
+ version_requirements: *id006
84
+ - !ruby/object:Gem::Dependency
85
+ name: generator_spec
86
+ prerelease: false
87
+ requirement: &id007 !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ~>
91
+ - !ruby/object:Gem::Version
92
+ version: 0.8.1
93
+ type: :development
94
+ version_requirements: *id007
95
+ - !ruby/object:Gem::Dependency
96
+ name: activemodel
97
+ prerelease: false
98
+ requirement: &id008 !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: "0"
104
+ type: :development
105
+ version_requirements: *id008
65
106
  description: Internal client for Codegram administration
66
107
  email:
67
108
  - info@codegram.com
@@ -72,6 +113,7 @@ extensions: []
72
113
  extra_rdoc_files: []
73
114
 
74
115
  files:
116
+ - .gitignore
75
117
  - .rspec
76
118
  - .rvmrc
77
119
  - Gemfile
@@ -83,9 +125,18 @@ files:
83
125
  - lib/gram.rb
84
126
  - lib/gram/blog.rb
85
127
  - lib/gram/blog/parser.rb
128
+ - lib/gram/gem.rb
129
+ - lib/gram/gem/generator.rb
130
+ - lib/gram/gem/templates/Rakefile.tt
131
+ - lib/gram/gem/templates/Readme.tt
132
+ - lib/gram/gem/templates/gitignore.tt
133
+ - lib/gram/gem/templates/rvmrc.tt
134
+ - lib/gram/gem/templates/spec/spec_helper.tt
86
135
  - lib/gram/version.rb
87
136
  - spec/gram/blog/parser_spec.rb
88
137
  - spec/gram/blog_spec.rb
138
+ - spec/gram/gem/generator_spec.rb
139
+ - spec/gram/gem_spec.rb
89
140
  - spec/gram_spec.rb
90
141
  - spec/spec_helper.rb
91
142
  has_rdoc: true
@@ -102,26 +153,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
102
153
  requirements:
103
154
  - - ">="
104
155
  - !ruby/object:Gem::Version
105
- segments:
106
- - 0
107
156
  version: "0"
108
157
  required_rubygems_version: !ruby/object:Gem::Requirement
109
158
  none: false
110
159
  requirements:
111
160
  - - ">="
112
161
  - !ruby/object:Gem::Version
113
- segments:
114
- - 0
115
162
  version: "0"
116
163
  requirements: []
117
164
 
118
165
  rubyforge_project: gram
119
- rubygems_version: 1.3.7
166
+ rubygems_version: 1.5.2
120
167
  signing_key:
121
168
  specification_version: 3
122
169
  summary: Internal client for Codegram administration
123
170
  test_files:
124
171
  - spec/gram/blog/parser_spec.rb
125
172
  - spec/gram/blog_spec.rb
173
+ - spec/gram/gem/generator_spec.rb
174
+ - spec/gram/gem_spec.rb
126
175
  - spec/gram_spec.rb
127
176
  - spec/spec_helper.rb