Code Monkey home page Code Monkey logo

copycopter-server's People

Contributors

addynaik avatar cmavromoustakos avatar jferris avatar jmileham avatar michaeldauria avatar patricksrobertson avatar thoughtbot-travis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

copycopter-server's Issues

Use generated unobtrusive Javascript

We're not using the asset pipeline yet in this app, so just use the generated jQuery and unobtrusive Javascript (which is used for things like deleting blurbs or any DELETE link).

'server' and 'client' are too general as project names

Given that most users are going to fork this project, having a 'server' project in their organization is not clear. Granted they can rename the project but I feel we shouldn't have to require them to do this. I recommend changing the project names to 'copycopter.server' and 'copycopter.client'. Thoughts?

Pluralization translate fails

I'm writeing my app with :pl locale and I've got custom plural method (because I must have one) that look like

def slavic(n)
  if n == 1
    :one
  elsif [2, 3, 4].include?(n % 10) and ![12, 13, 14, 22, 23, 24].include?(n % 100)
    :few
  else
    :other
  end
end

{
  pl: {
    i18n: {
      plural: {
        keys: [:one, :few, :other],
        rule: ->(n){ slavic n }
      }
    }
  }
}

But when I use CopyCopter and try to translate with t MyModel.model_name.human count: 2 it return :other key instead of :few.

Screen slides right

As a user, when editing a copycopter key the editor slides to the right of the screen out of the container. This should not happen.

Add ability to create new blurb versions via JSON API

I'd like to be able to mix copycopter with some inline edit gem so that my clients can modify them inline on the copycopter client app.

I think that probably the best way to accomplish this is to ping copycopter with POST requests and GET back the updated text, but I don't see that there is an existing way to do this.

Link back to search results

Would be nice to have a link back to the search results from a blurb. Another alternative would be to have the blurb edit box just above the search results (all changed through ajax).

Layout is a little bit smashed

When I'm going to blurb edit form sometimes text field is floating on right outside the main frame and screen. It look ugly.
It looks that it happens if I don't have translation for this blurb yet.

Add a create screen where users can create translation keys from the web interface

Currently, with opening the API it leaves us open for the ability for a key to never get created. Since the api skips the whole load process of the I18N methods that create the key if it does not exist. It leads to situations where we deploy to production without having the proper keys and then have to scramble to add them via console.

Gemspec error while migrating to copycopter 2.0 with new server

Using Rails 2.3 with Ruby 1.8.7, Bundler version 1.1.3

When doing a rake deploy to a Heroku Bamboo stack, after Rake Db:migrate, I get the following error:

WARNING:  #<ArgumentError: Illformed requirement
["#<YAML::Syck::DefaultKey:0x2b11f8fbac68> 0.9.2"]>
# -*- encoding: utf-8 -*-


Gem::Specification.new do |s|
 s.name = %q{copycopter_client}
 s.version = "2.0.0"

 s.required_rubygems_version = Gem::Requirement.new(">= 0") if
s.respond_to? :required_rubygems_version=
 s.authors = ["thoughtbot"]
 s.date = %q{2012-03-16}
 s.email = %q{[email protected]}
 s.files = [".gitignore", ".rspec", ".travis.yml", "Appraisals",
"Gemfile", "Gemfile.lock", "MIT-LICENSE", "README.md", "Rakefile",
"copycopter_client.gemspec", "features/rails.feature",
"features/step_definitions/copycopter_server_steps.rb",
"features/step_definitions/rails_steps.rb", "features/support/env.rb",
"features/support/rails_server.rb", "gemfiles/2.3.gemfile",
"gemfiles/2.3.gemfile.lock", "gemfiles/3.0.gemfile",
"gemfiles/3.0.gemfile.lock", "gemfiles/3.1.gemfile",
"gemfiles/3.1.gemfile.lock", "init.rb", "lib/copycopter_client.rb",
"lib/copycopter_client/cache.rb", "lib/copycopter_client/client.rb",
"lib/copycopter_client/configuration.rb",
"lib/copycopter_client/errors.rb",
"lib/copycopter_client/i18n_backend.rb",
"lib/copycopter_client/poller.rb",
"lib/copycopter_client/prefixed_logger.rb",
"lib/copycopter_client/process_guard.rb",
"lib/copycopter_client/rails.rb", "lib/copycopter_client/railtie.rb",
"lib/copycopter_client/request_sync.rb",
"lib/copycopter_client/version.rb",
"lib/tasks/copycopter_client_tasks.rake",
"spec/copycopter_client/cache_spec.rb",
"spec/copycopter_client/client_spec.rb",
"spec/copycopter_client/configuration_spec.rb",
"spec/copycopter_client/i18n_backend_spec.rb",
"spec/copycopter_client/poller_spec.rb",
"spec/copycopter_client/prefixed_logger_spec.rb",
"spec/copycopter_client/process_guard_spec.rb",
"spec/copycopter_client/request_sync_spec.rb",
"spec/copycopter_client_spec.rb", "spec/spec_helper.rb",
"spec/support/client_spec_helpers.rb",
"spec/support/defines_constants.rb", "spec/support/fake_client.rb",
"spec/support/fake_copycopter_app.rb",
"spec/support/fake_html_safe_string.rb",
"spec/support/fake_logger.rb", "spec/support/fake_passenger.rb",
"spec/support/fake_resque_job.rb", "spec/support/fake_unicorn.rb",
"spec/support/middleware_stack.rb", "spec/support/writing_cache.rb",
"tmp/projects.json"]
 s.homepage = %q{http://github.com/copycopter/copycopter-ruby-client}
 s.require_paths = ["lib"]
 s.rubygems_version = %q{1.3.7}
 s.summary = %q{Client for the Copycopter copy management service}
 s.test_files = ["features/rails.feature",
"features/step_definitions/copycopter_server_steps.rb",
"features/step_definitions/rails_steps.rb", "features/support/env.rb",
"features/support/rails_server.rb",
"spec/copycopter_client/cache_spec.rb",
"spec/copycopter_client/client_spec.rb",
"spec/copycopter_client/configuration_spec.rb",
"spec/copycopter_client/i18n_backend_spec.rb",
"spec/copycopter_client/poller_spec.rb",
"spec/copycopter_client/prefixed_logger_spec.rb",
"spec/copycopter_client/process_guard_spec.rb",
"spec/copycopter_client/request_sync_spec.rb",
"spec/copycopter_client_spec.rb", "spec/spec_helper.rb",
"spec/support/client_spec_helpers.rb",
"spec/support/defines_constants.rb", "spec/support/fake_client.rb",
"spec/support/fake_copycopter_app.rb",
"spec/support/fake_html_safe_string.rb",
"spec/support/fake_logger.rb", "spec/support/fake_passenger.rb",
"spec/support/fake_resque_job.rb", "spec/support/fake_unicorn.rb",
"spec/support/middleware_stack.rb", "spec/support/writing_cache.rb"]

 if s.respond_to? :specification_version then
   current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
   s.specification_version = 3

   if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
     s.add_runtime_dependency(%q<i18n>, [">= 0.5.0"])
     s.add_runtime_dependency(%q<json>, [">= 0"])
     s.add_development_dependency(%q<appraisal>, ["~> 0.4"])
     s.add_development_dependency(%q<aruba>, ["~> 0.3.2"])
     s.add_development_dependency(%q<bourne>, [">= 0"])
     s.add_development_dependency(%q<cucumber>, ["~> 0.10.0"])
     s.add_development_dependency(%q<i18n>, [">= 0"])
     s.add_development_dependency(%q<rails>, ["~> 3.1.0"])
     s.add_development_dependency(%q<rake>,
["#<YAML::Syck::DefaultKey:0x2b11f8fbac68> 0.9.2"])
     s.add_development_dependency(%q<rspec>, ["~> 2.3"])
     s.add_development_dependency(%q<sham_rack>, [">= 0"])
     s.add_development_dependency(%q<sinatra>, [">= 0"])
     s.add_development_dependency(%q<sqlite3-ruby>, [">= 0"])
     s.add_development_dependency(%q<thin>, [">= 0"])
     s.add_development_dependency(%q<webmock>, [">= 0"])
     s.add_development_dependency(%q<yard>, [">= 0"])
   else
     s.add_dependency(%q<i18n>, [">= 0.5.0"])
     s.add_dependency(%q<json>, [">= 0"])
     s.add_dependency(%q<appraisal>, ["~> 0.4"])
     s.add_dependency(%q<aruba>, ["~> 0.3.2"])
     s.add_dependency(%q<bourne>, [">= 0"])
     s.add_dependency(%q<cucumber>, ["~> 0.10.0"])
     s.add_dependency(%q<i18n>, [">= 0"])
     s.add_dependency(%q<rails>, ["~> 3.1.0"])
     s.add_dependency(%q<rake>,
["#<YAML::Syck::DefaultKey:0x2b11f8fbac68> 0.9.2"])
     s.add_dependency(%q<rspec>, ["~> 2.3"])
     s.add_dependency(%q<sham_rack>, [">= 0"])
     s.add_dependency(%q<sinatra>, [">= 0"])
     s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
     s.add_dependency(%q<thin>, [">= 0"])
     s.add_dependency(%q<webmock>, [">= 0"])
     s.add_dependency(%q<yard>, [">= 0"])
   end
 else
   s.add_dependency(%q<i18n>, [">= 0.5.0"])
   s.add_dependency(%q<json>, [">= 0"])
   s.add_dependency(%q<appraisal>, ["~> 0.4"])
   s.add_dependency(%q<aruba>, ["~> 0.3.2"])
   s.add_dependency(%q<bourne>, [">= 0"])
   s.add_dependency(%q<cucumber>, ["~> 0.10.0"])
   s.add_dependency(%q<i18n>, [">= 0"])
   s.add_dependency(%q<rails>, ["~> 3.1.0"])
   s.add_dependency(%q<rake>,
["#<YAML::Syck::DefaultKey:0x2b11f8fbac68> 0.9.2"])
   s.add_dependency(%q<rspec>, ["~> 2.3"])
   s.add_dependency(%q<sham_rack>, [">= 0"])
   s.add_dependency(%q<sinatra>, [">= 0"])
   s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
   s.add_dependency(%q<thin>, [">= 0"])
   s.add_dependency(%q<webmock>, [">= 0"])
   s.add_dependency(%q<yard>, [">= 0"])
 end
end
WARNING:  Invalid .gemspec format in
'/app/.bundle/gems/ruby/1.8/specifications/copycopter_client-2.0.0.gemspec'
WARNING:  #<ArgumentError: Illformed requirement
["#<YAML::Syck::DefaultKey:0x2b11f8fbac68> 0.9.2"]>
# -*- encoding: utf-8 -*-

Gem::Specification.new do |s|
 s.name = %q{copycopter_client}
 s.version = "2.0.0"

 s.required_rubygems_version = Gem::Requirement.new(">= 0") if
s.respond_to? :required_rubygems_version=
 s.authors = ["thoughtbot"]
 s.date = %q{2012-03-16}
 s.email = %q{[email protected]}
 s.files = [".gitignore", ".rspec", ".travis.yml", "Appraisals",
"Gemfile", "Gemfile.lock", "MIT-LICENSE", "README.md", "Rakefile",
"copycopter_client.gemspec", "features/rails.feature",
"features/step_definitions/copycopter_server_steps.rb",
"features/step_definitions/rails_steps.rb", "features/support/env.rb",
"features/support/rails_server.rb", "gemfiles/2.3.gemfile",
"gemfiles/2.3.gemfile.lock", "gemfiles/3.0.gemfile",
"gemfiles/3.0.gemfile.lock", "gemfiles/3.1.gemfile",
"gemfiles/3.1.gemfile.lock", "init.rb", "lib/copycopter_client.rb",
"lib/copycopter_client/cache.rb", "lib/copycopter_client/client.rb",
"lib/copycopter_client/configuration.rb",
"lib/copycopter_client/errors.rb",
"lib/copycopter_client/i18n_backend.rb",
"lib/copycopter_client/poller.rb",
"lib/copycopter_client/prefixed_logger.rb",
"lib/copycopter_client/process_guard.rb",
"lib/copycopter_client/rails.rb", "lib/copycopter_client/railtie.rb",
"lib/copycopter_client/request_sync.rb",
"lib/copycopter_client/version.rb",
"lib/tasks/copycopter_client_tasks.rake",
"spec/copycopter_client/cache_spec.rb",
"spec/copycopter_client/client_spec.rb",
"spec/copycopter_client/configuration_spec.rb",
"spec/copycopter_client/i18n_backend_spec.rb",
"spec/copycopter_client/poller_spec.rb",
"spec/copycopter_client/prefixed_logger_spec.rb",
"spec/copycopter_client/process_guard_spec.rb",
"spec/copycopter_client/request_sync_spec.rb",
"spec/copycopter_client_spec.rb", "spec/spec_helper.rb",
"spec/support/client_spec_helpers.rb",
"spec/support/defines_constants.rb", "spec/support/fake_client.rb",
"spec/support/fake_copycopter_app.rb",
"spec/support/fake_html_safe_string.rb",
"spec/support/fake_logger.rb", "spec/support/fake_passenger.rb",
"spec/support/fake_resque_job.rb", "spec/support/fake_unicorn.rb",
"spec/support/middleware_stack.rb", "spec/support/writing_cache.rb",
"tmp/projects.json"]
 s.homepage = %q{http://github.com/copycopter/copycopter-ruby-client}
 s.require_paths = ["lib"]
 s.rubygems_version = %q{1.3.7}
 s.summary = %q{Client for the Copycopter copy management service}
 s.test_files = ["features/rails.feature",
"features/step_definitions/copycopter_server_steps.rb",
"features/step_definitions/rails_steps.rb", "features/support/env.rb",
"features/support/rails_server.rb",
"spec/copycopter_client/cache_spec.rb",
"spec/copycopter_client/client_spec.rb",
"spec/copycopter_client/configuration_spec.rb",
"spec/copycopter_client/i18n_backend_spec.rb",
"spec/copycopter_client/poller_spec.rb",
"spec/copycopter_client/prefixed_logger_spec.rb",
"spec/copycopter_client/process_guard_spec.rb",
"spec/copycopter_client/request_sync_spec.rb",
"spec/copycopter_client_spec.rb", "spec/spec_helper.rb",
"spec/support/client_spec_helpers.rb",
"spec/support/defines_constants.rb", "spec/support/fake_client.rb",
"spec/support/fake_copycopter_app.rb",
"spec/support/fake_html_safe_string.rb",
"spec/support/fake_logger.rb", "spec/support/fake_passenger.rb",
"spec/support/fake_resque_job.rb", "spec/support/fake_unicorn.rb",
"spec/support/middleware_stack.rb", "spec/support/writing_cache.rb"]

 if s.respond_to? :specification_version then
   current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
   s.specification_version = 3

   if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
     s.add_runtime_dependency(%q<i18n>, [">= 0.5.0"])
     s.add_runtime_dependency(%q<json>, [">= 0"])
     s.add_development_dependency(%q<appraisal>, ["~> 0.4"])
     s.add_development_dependency(%q<aruba>, ["~> 0.3.2"])
     s.add_development_dependency(%q<bourne>, [">= 0"])
     s.add_development_dependency(%q<cucumber>, ["~> 0.10.0"])
     s.add_development_dependency(%q<i18n>, [">= 0"])
     s.add_development_dependency(%q<rails>, ["~> 3.1.0"])
     s.add_development_dependency(%q<rake>,
["#<YAML::Syck::DefaultKey:0x2b11f8fbac68> 0.9.2"])
     s.add_development_dependency(%q<rspec>, ["~> 2.3"])
     s.add_development_dependency(%q<sham_rack>, [">= 0"])
     s.add_development_dependency(%q<sinatra>, [">= 0"])
     s.add_development_dependency(%q<sqlite3-ruby>, [">= 0"])
     s.add_development_dependency(%q<thin>, [">= 0"])
     s.add_development_dependency(%q<webmock>, [">= 0"])
     s.add_development_dependency(%q<yard>, [">= 0"])
   else
     s.add_dependency(%q<i18n>, [">= 0.5.0"])
     s.add_dependency(%q<json>, [">= 0"])
     s.add_dependency(%q<appraisal>, ["~> 0.4"])
     s.add_dependency(%q<aruba>, ["~> 0.3.2"])
     s.add_dependency(%q<bourne>, [">= 0"])
     s.add_dependency(%q<cucumber>, ["~> 0.10.0"])
     s.add_dependency(%q<i18n>, [">= 0"])
     s.add_dependency(%q<rails>, ["~> 3.1.0"])
     s.add_dependency(%q<rake>,
["#<YAML::Syck::DefaultKey:0x2b11f8fbac68> 0.9.2"])
     s.add_dependency(%q<rspec>, ["~> 2.3"])
     s.add_dependency(%q<sham_rack>, [">= 0"])
     s.add_dependency(%q<sinatra>, [">= 0"])
     s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
     s.add_dependency(%q<thin>, [">= 0"])
     s.add_dependency(%q<webmock>, [">= 0"])
     s.add_dependency(%q<yard>, [">= 0"])
   end
 else
   s.add_dependency(%q<i18n>, [">= 0.5.0"])
   s.add_dependency(%q<json>, [">= 0"])
   s.add_dependency(%q<appraisal>, ["~> 0.4"])
   s.add_dependency(%q<aruba>, ["~> 0.3.2"])
   s.add_dependency(%q<bourne>, [">= 0"])
   s.add_dependency(%q<cucumber>, ["~> 0.10.0"])
   s.add_dependency(%q<i18n>, [">= 0"])
   s.add_dependency(%q<rails>, ["~> 3.1.0"])
   s.add_dependency(%q<rake>,
["#<YAML::Syck::DefaultKey:0x2b11f8fbac68> 0.9.2"])
   s.add_dependency(%q<rspec>, ["~> 2.3"])
   s.add_dependency(%q<sham_rack>, [">= 0"])
   s.add_dependency(%q<sinatra>, [">= 0"])
   s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
   s.add_dependency(%q<thin>, [">= 0"])
   s.add_dependency(%q<webmock>, [">= 0"])
   s.add_dependency(%q<yard>, [">= 0"])
 end
end
WARNING:  Invalid .gemspec format in
'/app/.bundle/gems/ruby/1.8/specifications/copycopter_client-2.0.0.gemspec'

Make it work with Bundler 1.1

Developing Copycopter Server (TM) currently requires Bundler 1.0.

1.1 requires Syck and results in:

`dirname': can't convert nil into String (TypeError)

See all drafts

Is there a way to see what was saved as draft and is not yet published? Also any way to publish all?
Thanks!

Need to allow multiple users

There doesn't seem to be a way to add multiple users to a project. We need this for division of labor / collaborative editing.

changing passwords

Is it possible to change the username and password for an app once it's created?

Remove background worker

Should let people deploying the application use some sort of queuing system if they so choose (DelayedJob / Resque)

Default translations for widely-used keys

Have Copycopter set certain, widely-used, keys with defaults unless otherwise specified by the user/developer.

Example keys would be:

activerecord.errors.messages.empty
activerecord.errors.messages.less_than_or_equal_to

datetime.distance_in_words.about_x_years.one
datetime.distance_in_words.less_than_x_minutes.other

This would allow users/developers/translators to not have to worry about widely used translations if they don't have to.

I understand that this approach is debatable but I wanted to open up a dialog around the idea.

Thanks!

Edit as HTML as default

Any way to set "Edit as HTML" as the default. The extra <p> tags added seem to break some things.

EDIT: For now i'm using

  def prefer_html?
     #session[:html_preference] == 'true'
     true
  end

Thanks

Remove project from copycopter

Enabling user to remove project from copycopter. How could you remove project from copycopter if it is wrong fro any reason?

Fix DoubleRenderError

Started GET "/localizations/3447/versions/new" for 74.118.27.66 at 2012-03-15 10:17:49 -0700
Processing by VersionsController#new as HTML
Parameters: {"localization_id"=>"3447"}
Completed 500 Internal Server Error in 8ms

AbstractController::DoubleRenderError (Render and/or redirect were called multiple times in this action. Please note that you may only call render OR redirect, and at most once per action. Also note that neither redirect nor render terminate execution of the action, so if you want to exit an action after redirecting, you need to do something like "redirect_to(...) and return".):
app/controllers/versions_controller.rb:26:in `new'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.